| Lect. | Date | Topics | Reading List |
|---|---|---|---|
1 |
Aug. 28 |
Graph
Algorithms: Breadth First Search, Topological Sort, Strongly connected components, Testing bipartiteness |
Big-oh
notation KT, Chapter 3 CLRS, Chapter 22 DPV, Chapter 3,4 |
2 |
Aug. 30 |
Greedy
Algorithms: Shortest paths: Dijkstra's Algorithm Implementation via priority queues |
KT, Chapter 4 CLRS, Chapter 23, 24 DPV, Chapter 5 |
| 3 |
Sep. 4 |
Spanning
trees, Cut and cycle properties Kruskal's and Prim's Algorithms |
KT,
Chapter 4 DPV, Chapter 5 |
| 4 |
Sep. 6 |
Data
Structures: Union-find implementations Amortization, Binary counting |
Notes
(by Edelsbrunner) CLRS, Chapter 21 |
| 5 |
Sep. 11 |
Analysis of union-find with path compression | DPV, Chapter 5 |
| 6 |
Sep. 13 |
Search Trees: 2-4 Trees,
Amortized analysis of reorder Lossless Data Compression: Huffman Encoding |
Notes
(by Edelsbrunner) DPV, Chapter 5 |
| 7 |
Sep. 18 |
Kraft's inequality, Optimal
code-length and Entropy Move-to-Front Coding and Competitive analysis |
Original
paper Wikipedia entry |
8 |
Sep. 20 |
Dynamic
Programming: Memoization, Weighted Interval Seheduling, Integer Knapsack |
KT, Chapter 6, DPV, Chapter 6 Dynamic Prog. wiki |
9 |
Sep. 25 |
Shortest path algorithms: Bellman's equations, Bellman-Ford algorithm Matrix multiplication, Floyd-Warshall algorithms |
KT, Chapter 6.8, 6.9 CLRS, Chapter 24, 25 DPV, Chapter 6 |
| 10 |
Sep. 27 |
Space-efficient Dynamic
Programming: Floyd-Warshall, Smith-Waterman algorithms Hirschberg's implementation via Recursion |
KT, Chapter 6.6, 6.7 |
11 |
Oct. 2 |
Randomization: Linearity of Expectation Random Search Trees, Quicksort |
Lecture
notes (MIT) KT, Chapter 13 CLRS, Chapter 5,7 |
| 12 |
Oct. 4 |
MIDTERM
(Lec. 1-10) |
|
| FALL
BREAK |
|||
| 13 |
Oct. 11 |
Skip Lists Perfect Hashing |
Original
Paper CLRS, Chapter 11 |
14 |
Oct. 16 |
Universal Hashing Bloom Filters |
KT, Chapter 13.6 Lecture Notes (Milterson) Original paper |
15 |
Oct. 18 |
Rabin-Karp
Fingerprinting Divide and Conquer: Recurrence Relations, Counting inversions, Closest pair of points |
Scribe
notes (MIT) KT, Chapter 5.5 CLRS, Chapter 28 DPV, Chapter 2 |
16 |
Oct. 23 |
Polynomial
multiplication by
evaluations Introduction to the Fourier Transform The Fast Fourier Transform Algorithm |
CLRS, Chapter 30 KT, Chapter 5.6 DPV, Chapter 2 |
17 |
Oct. 25 |
FFT and Signal Processing,
Permutation networks Network Flows: The Max-Flow and Min-Cut Problems The Ford-Fulkerson Augmentation Algorithm |
CLRS, Chapter 26 KT, Chapter 7 DPV, Chapter 7 |
| 18 |
Oct. 30 |
The Max-flow Min-cut Theorem Capacity scaling and Edmonds-Karp Algorithms |
KT, Chapter 7 |
19 |
Nov. 1 |
Applications
of Max-Flow
and Min-Cut: Bipartite Matchings and Hall's Theorem, Disjoint Paths and Menger's Theorem |
CLRS, Chapter 26 KT, Chapter 7 |
| 20 |
Nov. 6 |
Circulations with Demands, Project Scheduling, Image Segmentation |
KT, Chapter 7 |
21 |
Nov. 8 |
Linear
Programming: Expressing Problems as LPs The Dual Program Weak and Strong LP Duality |
CLRS, Chapter 29 Notes (CMU) |
22 |
Nov. 13 |
The Simplex Algorithm Applications of Linear Programming and Duality Shortest paths and network flows revisited |
CLRS, Chapter 29 DPV, Chapter 7 Notes (M. X. Goemans) |
23 |
Nov. 15 |
Flows
with costs, Zero Sum Games NP-Completeness: Easy and hard problems Cook-Levin Theorem, Poly-time Reductions |
CLRS, Chapter 34 KT, Chapter 8,9 DPV, Chapter 7,8 |
| 24 |
Nov. 20 |
NP-Completeness
Proofs: TSP, Subset Sum, Independent Set, Vertex Cover |
KT, Chapter 8,9 DPV, Chapter 8 |
| THANKSGIVING |
|||
25 |
Nov. 27 |
Coping
with NP-Completeness: Approximation Algorithms: Knapsack, Vertex Cover Connection to Linear Programming |
KT, Chapter 11 |
| 26 |
Nov. 29 |
Efficient
algorithms for special graphs Fixed parameter tractability |
KT, Chapter 10 |
| Dec. 11 |
FINAL
EXAM (7-10 PM) |