Back to my teaching page
Syllabus (Approx):
Section I: Divide & Conquer, Sorting, and order statistics,
Fast Fourier Transform and polynomial multiplication,
randomized sorting and selection, closest pair-of-points algorithms.
Section II:
Dynamic programming: Edit distance and other examples.
Greedy algorithms: Huffman codes and other examples.
Section III:
Graph algorithms: DFS, topological sorting, shortest path algorithms, maximum flow.
Other/optional topics: NP-completeness
References:
1. Introduction to Algorithms: Cormen, Leiserson, Rivest and Stein
2.
Online lecture notes by Jeff Erickson
3. Algorithms by Dasgupta, Papadimitrou and Vazirani
4. Algorithm Design: Kleinberg and Tardos
5. The Algorithm Design Manual by Steven Skiena