Schedule (subject to adjustments)

Class Number Date Topics Reading HW Assigned HW Due
1 9/8 Introduction Skim CLRS 1-2, (DPV 0) HW 1
2 9/10 Asymptotic notation CLRS 3







3 9/15 Recurrences CLRS 4

4 9/17 Heapsort, Loop invariants CLRS 6


9/18


HW 2 HW 1
5 9/22 Lower bounds for sorting, Counting Sort, Radix Sort, Deterministic Selection CLRS 8.1-8.3, 9.1, 9.3

6 9/24 Randomized Analysis CLRS 5







7 9/29 Indicator Random Variables CLRS 5

8 10/1 Quicksort, Randomized Selection CLRS 7, 9.2


10/2


HW 3 HW 2
9 10/6 Dynamic Programming CLRS 15

10 10/8 Dynamic Programming CLRS 15







11 10/13 Dynamic Programming CLRS 15

12 10/15 Greedy Algorithms CLRS 16


10/16


HW 4 HW 3
13 10/20 Greedy Algorithms, Amortized Analysis CLRS 16, 17

14 10/22 Amortized Analysis CLRS 17



10/26


Midterm out 6PM HW 4
15 10/27 Graph Algorithms, BFS, DFS, Topological Sort CLRS 22.1-22.4   
16 10/29 Strongly Connected Components, Minimum Spanning Trees, Disjoint Sets CLRS 22.5, 23, 21



10/30

HW 5 Midterm due 9AM






17 11/5 Single-source shortest paths, relaxation, Bellman-Ford CLRS 24.1, 24.5







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


19 11/12 All pairs shortest paths CLRS 25


11/13


HW 6 HW 5
20 11/17 Maximum Flows CLRS 26.1-26.2

21 11/19 Linear Programming CLRS 29







22 11/24 NP-completeness CLRS 34


11/30



HW6
23 12/1 NP-completeness CLRS 34 HW 7
24 12/3 NP-completeness CLRS 34







25 12/8 Approximation Algorithms CLRS 35

26 12/10 Approximation Algorithms CLRS 35


12/11



HW 7

12/22 4:10-7PM Final


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