Algorithms: final assessment

This covers the whole course. Take it after the last module.

Final quiz

1. Which of these grows fastest as n becomes large?
2. Which sort is built around choosing a pivot?
3. What is the base case of a recursive function?
4. What defines a greedy algorithm?
5. Which problem property suggests dynamic programming?
6. What happens if binary search runs on an unsorted array?
7. What is merge sort's running time on input that is already sorted?
8. What does it mean for a sort to be stable?
9. How many subsets does a set of 6 items have?
10. Why can choosing items by value per kilogram fail for the 0/1 knapsack?
11. A directed graph has some negative edges and no negative cycle. Which algorithm finds distances from one start vertex?
12. Kahn's algorithm outputs only 3 of the 5 vertices. What does that show?
13. What does T(n) = 3T(n/2) + O(n) solve to?
14. After a full match in KMP, what should j become so that overlapping matches are found?
15. You need only the k-th smallest of n numbers. What is the average cost of quickselect?
16. About how many inner steps does Floyd–Warshall take on 10,000 vertices?
17. What does the C condition x & 1 == 0 actually evaluate?

Practical assessment: Build an exam timetable helper

Without using hints, write a program that reads a list of courses and exams, works out an order that respects every prerequisite, and fits as many exams as possible into one hall.

Final project

A delivery planner: Build a program that plans a day's deliveries: which parcels to load on a van with a weight limit, and the cheapest route to each customer.

How it is evaluated

To complete this course