Course overview
The Design and Analysis of Algorithms course introduces covers topics that include applied theoretical tools and techniques for analysis of algorithms, such as recurrence relations, amortization and counting, computation and reasoning on the upper and lower asymptotic bounds of the performance of algorithms, and selecting appropriate algorithms that are expected to have higher performance in a given situation.
Participants in piloting
The course is mandatory for 2nd year students in the Bachelor of Science in Computer Science program. It is also an elective in the Bachelor of Science in Software Engineering and the Bachelor of Science in Information Technology programs. Approximately 50 students are enrolled in the course each academic year. This is an advanced level course. Participants of the course have been exposed to problem-based learning through earlier courses. They apply active learning for the design and analysis of algorithms related to their complexity time and space.
Use of ALIEN services and tools
Students were exposed to active learning in the ALIEN Problem-Based Learning Laboratory. During the course, students performed practical activities. They followed specific steps given by the teacher to solve specific exercises. The goal of the exercises was to develop understanding of sorting and searching concepts in the analysis of algorithms. Firstly, students performed manual sorting on a deck of cards. Students performed sorting by selecting the smallest card in the unsorted pack and moving the card to a second hand. The activity was concluded when all cards have been removed from the unsorted hand; at that time the second hand contained the card in sorted order. Time taken to sort all the cards was recorded.
The steps that students followed were:
- Get a hand of unsorted cards.
- Repeat step 3 and 5 until the unsorted hand is empty.
- Compare unsorted cards.
- Select the smallest unsorted card.
- Move this card to the sorted hand.
- Stop.