- Course 1: Divide and Conquer, Sorting and Searching, and Randomized Algorithms
- Course 2: Graph Search, Shortest Paths, and Data Structures
- Course 3: Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
- Course 4: Shortest Paths Revisited, NP-Complete Problems and What To Do About Them
The files for each course follow the following convention.
pa*.py
are the programming assignment files. Assignment details are in the comments.tp*.pdf
are the optional theory problem writeups.