Lect. | Date | Topics | Reading List |
---|---|---|---|
1 |
Aug. 29 |
Graph
Algorithms: Breadth First Search, Topological Sort, Strongly connected components, Testing bipartiteness |
Big-oh
notation KT, Chapter 3 CLRS, Chapter 22 |
2 |
Aug. 31 |
Greedy Algorithms: Spanning
trees and shortest paths Kruskal's, Prim's, and Dijkstra's Algorithms Implementation via priority queues |
KT, Chapter 4 CLRS, Chapter 23, 24 Slides (MIT) |
3 |
Sep. 5 |
Dynamic
Programming: Shortest path algorithms Bellman's equations, Bellman-Ford algorithm Matrix multiplication, Floyd-Warshall algorithms |
KT, Chapter 6.8, 6.9 CLRS, Chapter 24, 25 Dynamic Prog. wiki |
4 |
Sep. 7 |
Space-efficient Dynamic
Programming: Floyd-Warshall, Smith-Waterman algorithms Hirschberg's implementation via Recursion |
KT, Chapter 6.6, 6.7 |
5 |
Sep. 12 |
Data Structures: Amortization,
Binary counting Self-adjusting data structures - I: List Update Move-to-Front and Competitive analysis |
Notes
(by Edelsbrunner) Original paper Lecture Notes |
6 |
Sep. 14 |
Search Trees: 2-4 Trees,
Red-Black Implementation Introduction to splaying |
Notes
(by Edelsbrunner) Notes (by Lars Arge) |
7 |
Sep. 19 |
Self-adjusting data structures -
II: Splay trees |
Notes
(by Edelsbrunner) Notes (by M. X. Goemans) |
8 | Sep. 21 | Data Structures for Disjoint Sets Analysis of Union find |
CLRS, Chapter 21 |
9 | Sep. 26 | Recursive search trees: van Emde Boas queues Randomization: Linearity of Expectation |
Lecture
notes (MIT) KT, Chapter 13 |
10 |
Sep. 28 |
Random
Search Trees, Quicksort |
CLRS, Chapter 5,7 KT, Chapter 13.3, 13.5 |
11 |
Oct. 3 |
Skip Lists Perfect Hashing |
Original
Paper CLRS, Chapter 11 |
12 |
Oct. 5 |
MIDTERM |
|
FALL
BREAK |
|||
13 |
Oct. 12 |
Universal Hashing |
KT, Chapter 13.6 Lecture Notes (Milterson) |
14 |
Oct. 17 |
Bloom
Filters Rabin-Karp Fingerprinting |
Original paper Scribe notes (MIT) |
15 |
Oct. 19 |
Divide
and Conquer: Integer multiplication Matrix Multiplication: Strassen's Algorithm |
KT, Chapter 5.5 CLRS, Chapter 28 |
16 |
Oct. 24 |
Polynomial multiplication by
evaluations Introduction to the Fourier Transform |
CLRS, Chapter 30 KT, Chapter 5.6 |
17 |
Oct. 26 |
The Fast Fourier Transform Algorithm Permutation networks |
CLRS, Chapter 30 |
18 |
Oct. 31 |
Network
Flows: The Max-Flow and Min-Cut Problems The Ford-Fulkerson Augmentation Algorithm The Max-flow Min-cut Theorem |
CLRS, Chapter 26 KT, Chapter 7 |
19 |
Nov. 2 |
The Edmonds-Karp Strongly
Polynomial Algorithm Scaling Algorithms |
KT, Chapter 7 Slides (Princeton) |
20 |
Nov. 7 |
Applications
of Max-Flow
and Min-Cut Bipartite Matchings, Disjoint Paths, Circulations Project Scheduling, Image Segmentation |
CLRS, Chapter 26 KT, Chapter 7 |
21 |
Nov. 9 |
Stable Matchings and the
Gale-Shapley algorithm Karger's Global Min-Cut algorithm |
KT, Chapter 1 |
22 |
Nov. 14 |
Linear
Programming: Expressing Problems as LPs The Dual Program Weak LP Duality |
CLRS, Chapter 29 Notes (CMU) |
23 |
Nov. 16 |
The
Standard form, Slack form
and Basis of a
LP The Simplex Algorithm Proof of Strong LP Duality |
CLRS, Chapter 29 Preprint Notes (by M. X. Goemans) |
24 |
Nov. 21 |
Applications of Linear
Programming and Duality Shortest paths and network flows revisited Flows with costs, Zero Sum Games |
CLRS, Chapter 29 |
THANKSGIVING |
|||
25 |
Nov. 28 |
NP-Completeness:
Easy and hard problems Cook-Levin Theorem |
CLRS, Chapter 34 KT, Chapter 8,9 |
26 |
Nov. 30 |
Poly-time Reductions,
NP-Completeness Proofs |
CLRS, Chapter 34 |
Dec. 17 |
FINAL
EXAM (2-5 PM) |