PBL in Data structure and algorithm course, HUST

Course overview

The course provides basic knowledge of the principles, computational features, and complexity of basic algorithms and data structures as the basis for developing information processing systems. Students learn how to build information processing systems through the development of simple application programs. The data structure part includes array, list, stack, queue, some tree structure, graph. The algorithm section includes Recursive Algorithms, Sorting Algorithms, Search Algorithms, Graph Algorithms.

Participants in piloting 

This is a course conducted to 2nd year students. There were about 50 students took this course session.

Timeframe

Fall 2019.

Use of ALIEN services and tools

Module Objectives: Students can implement and use basic data structures such as stacks, queues, priority queues, lists, trees, and hash tables. Students must be able to design and implement programs that use data structures to develop information processing systems. Students understand and implement basic searching and sorting algorithms such as quicksort, heap sort, merge sort, hash table. Students must master basic algorithm building techniques such as recursion, division, and value to solve problems. Students must analyze complexity in asymptotic notation language for basic algorithm and data structure settings.

Teachers teach theory in class. Students both study in class while participating in the lab. Lab exercises are programmed on C language. Teaching assistants will guide students to practice in the lab according to the theoretical teaching schedule of lecturers. Students are assigned a project to work in groups with an implementation time of about 2-3 weeks. Each project will include a number of in-depth math problems in class, and there may be a few difficult problems that require a lot of time to solve. Students doing these exercises themselves are the best preparation for exams.

The key to success is practice. In this course, lecturer reviews data structures and algorithms in C program. Students learn how to apply your solutions to real problems. Students learn the concepts and experiments through lecturer and tutorials. For examples, lecturer teaches Sort algorithms, then teaching assistant guide students to code Sort algorithms. Finally, students have to write a report to compare the efficiency of the Sort algorithms on real datasets.

Evaluate the results: lab/exercise

  • Process score: weight 0.3.
  • Complete exercises (scoring exercises).
  • Complete big exercises (exercises).
  • Mid-term test.
  • Final exam (multiple choice and essay): weight 0.7.