Topics covered may include the following:

- Review: fundamental data structures, asymptotic notation, solving recurrences, Sorting and order statistics: heapsort and priority queues, randomised quicksort and its average case analysis, decision tree lower bounds, linear-time selection
- Divide-and-conquer: binary search, quicksort, mergesort, polynomial multiplication, arithmetic with large numbers
- Dynamic Programming: matrix chain product, scheduling, knapsack problems, longest common subsequence, some graph algorithms
- Greedy methods: activity selection, some graph algorithms
- Amortisation: the accounting method, e.g., in Graham's Scan convex hull algorithm
- Graph algorithms: depth-first search, breadth-first search, biconnectivity and strong connectivity, topological sort, minimum spanning trees, shortest paths
- Theory of NP-completeness

- T.H. Cormen, C.E. Leiserson, R.L. Rivest, "Introduction to Algorithms", 2nd edition, McGraw-Hill and The MIT Press, 2001.
- Jeff Edmonds. notes: "How to Think about Algorithms"