PBL in Algorithm Design and Analysis course, UM

Course overview

This course is a 4th semester, programme core course for Bachelor of Computer Science Programme at the Faculty of Computer Science and Information Technology, University of Malaya. The course introduces students to the analysis and design of computer algorithms. Students will learn basic design techniques, important classical algorithms and advanced data structures, and their implementation in modern programming environments. For the active learning session, one topic (sorting algorithms) is chosen to be conducted using the hands-on (kinestatic) and Buzzgroup approach to understanding the concept. The session will take 120 minutes to complete.

Participants in piloting 

This course is taken by all 2nd year students in the Bachelor of Computer Science Programme. The first session of the active learning for this course is conducted in Semester 2, Session 2019/20 to two tutorial groups (T1 and T2) that totaled to 80 students.

Timeframe

Spring 2020.

Use of ALIEN services and tools

The goal of this session is to learn and understand the sorting algorithm learned during lecture. This session is to ensure the learning of the algorithm is effective by supporting it with an additional active learning activity. In this session, students will work in groups and present what they have found about the algorithm to the class. Not only the student has to apply the algorithm that they have learned to a set of given input elements, they also need to classify the algorithm into several categories, as well as find out the advantages and limitations of the algorithm. This session uses the writable surface as the main tool for the activity.

Module session plan:

  1. The student will do a pre-test where the student will be asked several questions related to the sorting algorithm.
  2. Student activity (Buzzgroup method):
    • Students are grouped in a team of 4-5 people.
    • Each team is given several writable surfaces to use.
    • Each team will randomly get two algorithms to prepare. There will be two teams working on one algorithm.
    • They are then given 1 hour to find out about the algorithm based on the following:
      • Apply the algorithm to an input element.
      • Discuss the running time complexity for all possible conditions.
  3. Classify the algorithm into the following category:
    • In-place vs not in-place
    • Online vs ofline
    • Stable vs not stable
    • Adaptive vs non-adaptive
  4. Each team then have to present the algorithm. Since there are two teams for each algorithm, they will be checking each other’s presentation.
  5. The student will do a post-test where the students are asked the same set of questions as the pre-test.
  6. The student will answer reflective questions regarding the algorithm learned.