Data Structures: final assessment
This covers the whole course. Take it after the last module.
Final quiz
Practical assessment: Build a task scheduler
Without using hints, write a program that keeps a set of tasks, each with a name and a priority, and always runs the most urgent one next.
- A binary heap in an array gives the most urgent task in O(log n)
- A hash table finds a task by its name, to report whether it is waiting
- Tasks with equal priority run in the order they were added
- Running with no tasks, and adding a name that is already waiting, give clear messages
- The program compiles with no warnings under -Wall -Wextra, and frees all its memory
Final project
A city route planner: Build a program that reads a map of cities and roads, and finds the route with the fewest roads between any two cities.
How it is evaluated
- Correctness: the program does what every requirement says, including on empty and one-item cases
- Choice of structure: each operation uses a structure that makes it fast, and you can say why
- Memory safety: there are no leaks, overruns or use after free
- Clarity: small functions with clear names, each doing one job
To complete this course
- Score at least 70% on the final quiz
- Solve the beginner and intermediate exercises in every lesson
- Finish the final project and check it against the evaluation criteria