Schedule (Tentative)


Lecture
Date
Topics
Reading
in CLRS

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

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

HW 0
3
9/11
Recurrences, Solution methods, More D&C
Ch. 4 HW 1
4
9/13
Randomized algorithms Ch. 5


5
9/18
Quicksort Ch. 7

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

8
9/27
Priority queues, Heaps, Heapsort
Ch. 6

9
10/2
Binary search trees
Ch 12


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


12
10/11
Greedy algorithms Ch. 16

13
10/16
Dynamic programming Ch. 15

14 10/18
Graphs, Breadth-first search, Dijkstra's algorithm Ch. 22.1-2,  24.3 HW 4 HW 3

10/23
Midterm in class



15
10/25
Depth-first search, strongly connected components, topological order Ch. 22.3-5


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


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

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


20
11/15
Linear programming models
Ch. 29.1-2,4


21
11/20
NP-completeness
Ch. 34
HW 6 HW 5
22
11/27
NP-completeness Ch. 34


23
11/29
NP-completeness Ch. 34


24
12/4
Approximation algorithms
Ch. 35

HW 6

12/6
Final in class