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.