PBL in Algorithm and Complexity course, KU

Course overview

The course is built upon existing skills in the mathematical analysis of algorithm complexity, including analysis of any algorithm in terms of time and space. The course deals with general techniques in algorithm design (such as divide and conquer, greedy and dynamic programming approaches) in the context of problem domains like a graph, sorting, and optimization problems. This course develops techniques used in the design and analysis of algorithms. The classic algorithms are discussed, emphasizing the problems that arise in computer applications. In the end, it also covers the introduction to NP-Completeness.

Participants in piloting 

The course is one of the mandatory courses for the undergraduate students of computer science, computer engineering and computational mathematics. Around 125 students were involved as active participants during the proceedings of the course. In the course students learnt about designing the pseudocode for problem solving in computer systems and analysing any pseudocode in terms of time and space with active participation in thorough discussion among classmates and instructor.

Use of ALIEN services and tools

Students were asked to develop an efficient approach (pseudocode) to solve a problem in the computer. The students were divided into a number of different groups. The solution of every group is thoroughly discussed and explained by the group members to the whole class. The instructor explains about the possible improvement /enhancement which can make the work more efficient with the valid reasonings. The same approach is implemented in analysing a problem in terms of time and space. The best cases scenarios and worst-case scenarios of any pseudocode is discussed among the students, and finally come to common understanding with feedback of the instructor.