Schedule (subject to adjustments)

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







3 9/13 Recurrences CLRS 4

4 9/15 Heapsort, Loop invariants CLRS 6


9/16


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

6 9/22 Randomized Analysis CLRS 5







7 9/27 Indicator Random Variables CLRS 5


9/30


HW 3 HW 2
8 10/4 Quicksort, Randomized Selection CLRS 7, 9.2

9 10/6 Dynamic Programming CLRS 15







10 10/11 Dynamic Programming CLRS 15

11 10/13 Dynamic Programming CLRS 15


10/14


HW 4 HW 3
12 10/18 Greedy Algorithms CLRS 16

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







14 10/25 Amortized Analysis CLRS 17
15 10/27 Graph Algorithms, BFS, DFS, Topological Sort CLRS 22.1-22.4   

10/28


HW 4

10/31


Midterm out 9AM
16 11/1 Strongly Connected Components, Minimum Spanning Trees, Disjoint Sets CLRS 22.5, 23, 21








17 11/3 Single-source shortest paths, relaxation, Bellman-Ford CLRS 24.1, 24.5 HW 5
Midterm due 2:30PM
18 11/10 Shortest paths in dags, Dijkstra's algorithm
CLRS 24.2-24.3


11/11


HW 6 HW 5
19 11/15 All pairs shortest paths CLRS 25

20 11/17 Maximum Flows CLRS 26.1-26.2





21 11/22 NP- completeness CLRS 34







22 11/29 NP-completeness CLRS 34 HW 7
HW 6
23 12/1 NP-completeness CLRS 34

11/30




24 12/6 Approximation Algorithms CLRS 35

25 12/8 Approximation Algorithms CLRS 35


12/13



HW 7

tba Final


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