Schedule (subject to adjustments)

Class Number Date Topics Reading HW Assigned HW Due
1 9/3 Introduction, Strassen's Matrix Multiplication Skim CLRS 1-2

2 9/10 Asymptotic notation CLRS 3 HW 1
3 9/12 Recurrences CLRS 4

4 9/17 Heapsort, Loop invariants CLRS 6
5 9/19 Lower bounds for sorting, Counting Sort, Radix Sort CLRS 8.1-8.3, 9.1, 9.3 HW 2 HW 1

6 9/24 Deterministic Selection, Randomized Analysis CLRS 5
7 9/26 Indicator Random Variables CLRS 5

8 10/1 Quicksort, Randomized Selection CLRS 7, 9.2
9 10/3 Dynamic Programming CLRS 15 HW 3 HW 2

10 10/8 Dynamic Programming CLRS 15
11 10/10 Dynamic Programming CLRS 15

12 10/15 Greedy Algorithms CLRS 16
13 10/17 Greedy Algorithms, Amortized Analysis CLRS 16, 17 HW 4 (short) HW 3

14 10/22 Amortized Analysis CLRS17   
15 10/24 Graph Algorithms, BFS, DFS, Topological Sort CLRS 22.1-22.4   HW 4 (short)


10/28 Midterm out 9AM
16 10/29 Strongly Connected Components, Minimum Spanning Trees, Disjoint Sets CLRS 22.5, 23, 21
17 10/31 Single-source shortest paths, relaxation, Bellman-Ford CLRS24.1, 24.5 HW 5 Midterm due 5 PM

18 11/7 Shortest paths in dags, Dijkstra's algorithm CLRS 24.2-24.3

19 11/12 All pairs shortest paths CLRS 25
20 11/14 Maximum Flows CLRS 26.1-26.2 HW 6 HW 5

21 11/19 NP-completeness CLRS 34
22 11/21 NP-completeness CLRS 34

23 11/26 NP-completeness CLRS 34 HW 7 HW 6

24 12/3 Approximation Algorithms CLRS 35
25 12/5 Approximation Algorithms CLRS 35

12/8 HW 7

Thursday, Dec. 19, 4:10-7:00PM Final


CLRS = Introduction to Algorithms, 3rd edition, by Cormen, Leiserson, Rivest and Stein