Lecture Outline
This is a lecture outline for the class. When appropriate, I will reference chapters and sections from the textbook (KT 3 refers to Chapter 3). This outline is subject to minor changes, but I expect that the top level topics will be covered in the corresponding order.
- Introduction. Administrivia. Pancake Sorting and genome rearrangement, as an example of the idea of abstractions and algorithms.
- Analysing recurrence relations (see Quicklinks)
- [KT 5] Divide & Conquer/Recursion: Mergesort, closest pair, integer multiplication
- [KT 5] Divide & Conquer/Recursion: FFTs
- [KT 6] Dynamic Programming: Interval scheduling, curve fitting, subset-sum.
- [KT 6] Dynamic Programming: Shortest Paths
- [KT 4] Greedy Algorithms: Optimality principles, examples
- [KT 4] Greedy Algorithms: MSTs
- [KT 7] Network Flows: Max flows, Ford-Fulkerson and min-cuts
- [KT 7] Network Flows: Faster algorithms
- Network Flows: Variations on a theme
- [KT 7] Network flows: Applications
- [KT 8] NP-hardness: P vs NP. “Trust, but verify”. The Cook-Levin theorem & CIRCUIT-SAT
- [KT 8] NP-hardness: Recap, 3SAT is NP-Complete. Reduction from Independent Set to Vertex Cover
- [KT 8] CLIQUE, Independent Set, Set Cover, and others
- [KT 11] Approximation Algorithms: Definitions, Vertex Cover.
- Approximation Algorithms: Vertex Cover 2-approx, Interval scheduling, Set Cover
- [KT 11] Approximation Algorithms: Dynamic programming and PTASs (Knapsack, and a cameo by TSP)
- Randomized Algorithms: Hashing
- [KT 13] Randomized Algorithms: Min cut
- Randomized algorithms: Algebraic fingerprinting
- [KT 13] Randomized Algorithms: Chernoff Bounds
- Randomized Algorithms: More examples
- [KT 12] Heuristic methods
- Zero Knowledge
- Quantum Computing
- Wrap up.
Dates for homeworks/exams: to be announced soon.