Schedule (Tentative)


Lecture
Date
Topics
Reading
in CLRS

HW out
HW due
1
9/2
Introduction, Insertion Sort, Asymptotics
Ch. 1,2
HW 0

2
9/4
Divide and Conquer, Merge Sort, Recursion
Ch. 2,3

HW 0
3
9/9
Recurrences, Solution methods, Master theorem
Ch. 4 HW 1
4
9/11
Recurrence examples, More D&C, Strassen's MM algorithm Ch. 4, 28.2

5
9/16
Randomized algorithms Ch. 5


6
9/18
Quicksort Ch. 7

7
9/23
Order statistics
Ch. 9
HW 2 HW 1
8
9/25
Comparison lower bounds; Counting sort, Radix sort Ch. 8

9
9/30
Priority queues, Heaps, Heapsort
Ch. 6

10
10/2
Binary search trees
Ch 12


11
10/7
2-3-4 trees, B-trees, Red-black trees Ch. 18, 13
HW 3 HW 2
12
10/9
Augmenting data structures Ch 14


13
10/14
Greedy algorithms Ch. 16

14
10/16
Dynamic programming Ch. 15

15 10/21
Graphs, Breadth-first search, Dijkstra's algorithm Ch. 22.1-2,  24.3
HW 3

10/23
Midterm
HW 4
16
10/28
Depth-first search, strongly connected components, topological order Ch. 22.3-5


17
10/30
Minimum spanning trees, Disjoint sets
Ch. 23, 21


18
11/6
Shortest paths with negative weights Ch. 24
HW 5 HW 4
19
11/11
All-pairs shortest paths, transitive closure and MM Ch. 25

20
11/13
Network flow, bipartite matching
Ch. 26.1-3


21
11/18
Linear programming models
Ch. 29.1-2,4


21
11/20
NP-completeness
Ch. 34
HW 6 HW 5
23
11/25
NP-completeness Ch. 34


24
12/2
NP-completeness Ch. 34


25
12/4
Approximation algorithms
Ch. 35

HW 6

12/16
Final 4:10 - 7:00