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. The history of algorithms, computability, and efficiency. The difference between a problem and an algorithm. Administrivia.
- 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: Sequence alignment
- [KT 4] Greedy Algorithms: Optimality principles, examples
- [KT 4] Greedy Algorithms: MSTs
- [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, classification of types of NP-hard problems.
- [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)
- [KT 11] Approximation Algorithms: LPs and Rounding.
- [KT 7] Network Flows: Max flows and Ford-Fulkerson
- [KT 7] Network Flows: Max flows and min cut
- Network Flows: Min-cost max flows
- [KT 7] Network flows: Applications
- Randomized Algorithms: Hashing
- [KT 13] Randomized Algorithms: Min cut
- [KT 13] Randomized Algorithms: Chernoff Bounds
- Randomized Algorithms: More examples
- War Story: Sorting out the genome
- [KT 12] Heuristic methods
- Parallel Algorithms
- Quantum Computing
- A whirlwind tour of what we didn’t cover.
- Wrap up.
Critical dates for homeworks/exams: these are tentative, but as requested, I’m giving them out here. Hopefully, changes to these dates will be minor.
- HW 1. OUT 9/10, IN 9/24
- HW 2. OUT 9/24, IN 10/5 (fall break starts the following day)
- HW 3. OUT 10/22, IN 10/29
- HW 4. OUT 10/29, IN 11/12
- HW 5. OUT 11/12, IN 11/26
- HW 6. OUT 11/26, IN 12/05
Midterm: Oct 17 (most likely a take-home handed out in class, to be turned in on Oct 19)
Final: TBA (there are some date constraints with students in the class). According to university guidelines, the final exam should be scheduled on Monday Dec 10 in class and I’ll likely do that. It’ll still be a take-home.