The prerequisites for the class are cs55/math55 and cs62/cs70. Exceptions will be made for students who have taken an advanced math course and cs52/cs60, but not cs70.
The lectures are on Mondays and Wednesdays from 2:45-4:00 in Millikan 134.
The textbook is Introduction to Algorithms, 2nd Edition by Cormen, Leiserson, Rivest, and Stein. It should be available at Huntley bookstore. Note that you will not need the CD that comes packaged with some versions of this book.
| Week | Date | In class | Reading | Assignment due |
|---|---|---|---|---|
| 1 | (Wed) 1/23 | introduction administrivia review sample.tex, sample.pdf | ||
| 2 | (Mon) 1/28 | insertion sort loop invariants asymptotics | 2.1-2 3.1-2 | ps1 |
| (Wed) 1/30 | divide & conquer technique mergesort solving recurrences | 2.3, 4.1-2 | ps2a | |
| 3 | (Mon) 2/4 | more on solving recurrences quicksort | 4.3-4, 7.1-4 | ps2b |
| (Wed) 2/6 | bounding problems matrix multiplication linear time sorting, order statistics | 8, 9, 28.2 | ps3a | |
| 4 | (Mon) 2/11 | data structures heaps and heapsort | 10, 6 | ps3b |
| (Wed) 2/13 | amortized analysis | 17 | ps4a | |
| 5 | (Mon) 2/18 | binary search trees balanced binary search trees red-black trees | 12, 13 | ps4b |
| (Wed) 2/20 | disjoint sets using: linked lists,
forests, union-by-rank, path compression | 21 | ps5a | |
| 6 | (Mon) 2/25 | mergeable heaps using: linked lists, heaps, binomial heaps | 19 | ps5b |
| (Wed) 2/27 | review | ps6a | ||
| 7 | (Mon) 3/3 | greedy algorithms | 16 | midterm |
| (Wed) 3/5 | dynamic programming | 15 | ps7a | |
| 8 | (Mon) 3/10 | dynamic programming | 15 | ps7b |
| (Wed) 3/12 | | |||
| (Fri) 3/14 | | |||
| (Mon) 3/17 | ||||
| (Wed) 3/19 | ||||
| 9 | (Mon) 3/24 | bfs, dfs, topological sort, strongly connected components | 22 | |
| (Wed) 3/26 | minimum spanning trees | 23 | ps8a | |
| 10 | (Mon) 3/31 | single source shortest paths: Bellman-Ford, Dijkstra's | 24 | ps8b |
| (Wed) 4/2 | all pairs shortest paths: Floyd-Warshall, Johnson's | 25 | ps9a | |
| 11 | (Mon) 4/7 | network flow Ford-Fulkerson | 26 | ps9b |
| (Wed) 4/9 | review | ps10a | ||
| 12 | (Mon) 4/14 | network flow min-cut max-flow, Edmunds-Karp | 26 | midterm |
| (Wed) 4/16 | linear programming | 29 | ps11a | |
| 13 | (Mon) 4/21 |
linear programming, integer linear programming introduction to computational complexity | 34.1-4 | ps11b |
| (Wed) 4/23 | P, NP, NPC polynomial time reductions NPC reductions | 34.5 | ||
| 14 | (Mon) 4/28 | NPC reductions | 34.5 | ps12b |
| (Wed) 4/30 | approximation algorithms wrap-up, evaluations | 35.1-2 | ps13a | |
| 15 | (Mon) 5/5 | review | ps13b | |
| (Wed) 5/7 | class cancelled for HMC CS presentations | |||
The take-home final must be turned in by 5PM on Wednesday 5/14.