Lecture Topics (tentative)

2/8 — Introduction     (Video; Notes)

Reading: §1.2

2/10 — Stable matching I: Gale–Shapley algorithm     (Video; Notes)

Reading: §1.1

2/12 — Stable matching II: Analysis of Gale-Shapley     (Video; Notes)

Reading: §1.1


2/15 — Greedy algorithms I: Interval Scheduling     (Video; Notes)

Reading: §4.1

2/17 — Greedy algorithms II: Minimum Spanning Tree     (Video; Notes)

Reading: §4.5 (Section 4.2 also recommended)

2/19 — Greedy algorithms III: Minimum Spanning Tree, Part 2     (Video; Notes)

Reading: §4.5, 4.6


2/22 — Dynamic programming I: Weighted Interval Scheduling     (Video; Notes)

Reading: §6.1

2/24 — Dynamic programming II: Subset Sums and Knapsacks     (Video; Notes)

Reading: §6.4

2/26 — Dynamic programming III: Shortest Paths     (Video; Notes)

Reading: §6.8

3/1 — Dynamic programming IV: RNA Secondary Structure     (Video; Notes)

Reading: §6.5


3/3 — Divide and Conquer I: Multiplying Integers     (Video; Notes)

Reading: §5.5

3/5 — Divide and Conquer II: Fast Fourier Transform     (Video; Notes)

Reading: §5.6

3/8 — Divide and Conquer III: Closest Pair of Points in the Plane     (Video; Notes)

Reading: §5.4


3/10 — Wellness day: no class

3/12 — Network Flow I: Definitions     (Video; Notes)

Reading: §7.1

3/15 — Network Flow II: Ford-Fulkerson     (Video; Notes)

Reading: §7.2

3/17 — Network Flow III: Push-Relabel     (Video; Notes)

Reading: §7.4

3/19 — Network Flow IV: Finish Push-Relabel     (Video; Notes)

Reading: §7.5

3/22 — Network Flow V: Bipartite Matching     (Video; Notes)

Reading: §7.5

3/24 — Network Flow VI: Baseball Elimination + Circulations     (Video; Notes)

Reading: §7.12, 7.7

3/26 — Network Flow VII: Airline Scheduling, Project Selection     (Video; Notes)

Reading: §7.9, 7.11

3/29 — NP-Completeness I: 3SAT, Independent Set, Vertex Cover, Clique     (Video; Notes)

Reading: §8.1, 8.2

3/31 — NP-Completeness II: Analyzing Reductions; Defining NP-Complete     (Video; Notes)

Reading: §8.3, 8.4

4/2 — NP-Completeness III: Set Cover and Set Packing     (Video; Notes)

Reading: None

4/5 — NP-Completeness III: Hamiltonian Cycle     (Video; Notes)

Reading: §8.5

4/7 — NP-Completeness IV: Three-Dimensional Matching     (Video; Notes)

Reading: §8.6

4/9 — NP-Completeness V: Subset Sum and Knapsack     (Video; Notes)

Reading: §8.8

4/12 — Prelim 2 Review     (Video; Notes)

Reading: None

4/14 — Computability I: Turing Machine Definitions     (Video; Notes)

Reading: Turing machine lecture notes (on Canvas), §1-2.

4/16 — Computability II: Writing Algorithms for Turing Machines     (Video; Notes)

Reading: Turing machine lecture notes, §3.

4/19 — Computability III: Universal Turing Machine     (Video; Notes)

Reading: Turing machine lecture notes, §4.

4/21 — Computability IV: Undecidable Problems     (Video; Notes)

Reading: Turing machine lecture notes, §5.

4/23 — Wellness day: no class

4/26 — Wellness day: no class

4/28 — Computability V: Reductions for proving undecidability     (Video; Notes)

Reading: Turing machine lecture notes, §6.

4/30 — Rice's Theorem; Greedy Vertex Cover Approximation     (Video; Notes)

Reading: Turing machine lecture notes, §7.

5/3 — Approximation Algorithms I: Dynamic Programming and Rounding     (Video; Notes)

Reading: §11.8.

5/5 — Approximation Algorithms II: Greedy Methods     (Video; Notes)

Reading: §11.1, 11.3.

5/7 — Approximation Algorithms III: Linear Programming     (Video; Notes)

Reading: §11.6.

5/10 — Randomized Algorithms I: Median Finding     (Video accidentally not recorded; Notes)

Reading: §13.5.

5/12 — Randomized Algorithms II: Primality Testing     (Video; Notes)

Reading: Lecture notes on randomized primality testing.

5/14 — Randomized Algorithms III: Global Minimum Cut     (Video; Notes)

Reading: §13.2.