Lecture Topics (tentative)
1/24 —
Stable matching I: Gale–Shapley algorithm
Reading: §1.1
1/26 —
Stable matching II: Analysis of Gale–Shapley
Reading: §1.1
1/28 —
Greedy algorithms I: Interval Scheduling
Reading: §4.1
1/31 —
Greedy algorithms II: Minimum Spanning Tree
Reading: §4.5
2/2 —
Greedy algorithms III: Huffman Codes and Data Compression
Reading: §4.8
2/4 —
Class Cancelled (Snow day)
2/7 —
Dynamic programming I: Weighted Interval Scheduling
Reading: §6.1
2/9 —
Dynamic programming II: Subset Sums and Knapsacks
Reading: §6.4
2/11 —
Dynamic programming III: RNA Secondary Structure
Reading: §6.5
2/14 —
Dynamic programming IV: Shortest Paths in a Graph
Reading: §6.8
2/16 —
Divide and Conquer I: Multiplying Integers
Reading: §5.5
2/18 —
Divide and Conquer II: Counting Inversions
Reading: §5.3
2/21 —
Review for Prelim 1
2/23 —
Divide and Conquer III: Closest Pair of Points in the Plane
Reading: §5.4
2/25 —
Network Flow I: Definition and Ford-Fulkerson Algorithm
Reading: §7.1
2/28 —
No class; February break
3/2 —
Network Flow II: Network Flow II: Max-Flow running time and Cut capacities
Reading: §7.2
3/4 —
Network Flow III: Max-Flow Min-Cut theorem
Reading: § 7.2
3/7 —
Network Flow IV: Reductions to Max-flow problem
Reading: §7.5
3/9 —
Network Flow V: More on Reductions to Max-flow problem
Reading: §7.5, 7.6
3/11 —
Network Flow VI: Applications to Min-Cuts
Reading: §7.11
3/14 —
NP-Completeness I: Introduction to hardness reductions, P and NP
Reading: §8.1, 8.3
3/16 —
NP-Completeness II: NP-complete problems, SAT as an NP-complete problem
Reading: §8.2, 8.4
3/18 —
NP-Completeness III: Independent Set
Reading: §8.2
3/21 —
NP-Completeness IV: Graph Coloring
Reading: §8.7
3/23 —
NP-Completeness V: Hamiltonian Cycle, Traveling Salesman
Reading: §8.5
3/25 —
NP-Completeness VI: Subset Sum
Reading: §8.8
3/28 —
Panorama of Complexity Classes
Reading: §8.9, 8.10
3/30 —
Computability Theory I: Turing Machine Definitions
Reading: Notes
4/1 —
Computability Theory II: Turing Machine Example
Reading: Notes
4/4, 4/6, 4/8 —
Spring break
4/11 —
Review for Prelim 2
4/13 —
Computability Theory III: Universal Turing Machine
Reading: Notes
4/15 —
Computability Theory IV: Diagonalization and Undecidability
Reading: Notes
4/18 —
Computability Theory V:Reductions and Undecidability
Reading: Notes
4/20 —
Computability Theory VI: More Reductions
Reading: Notes
4/22 —
The Cook-Levin Theorem
Reading: Notes
4/25 —
Approximation Algorithms I: Greedy algorithms
Reading: §11.1
4/27 —
Approximation Algorithms II: Linear programming
Reading: §11.6
4/29 —
Approximation Algorithms III: Set Cover
Reading: §11.3
5/2 —
Randomized Algorithms I: Introduction, Median Finding
Reading: §13.5
5/4 —
Randomized Algorithms II: Randomized Quick Sort
Reading: §13.5
5/6 —
Randomized Algorithms III: Primality Testing
Reading: Notes
5/9 —
Randomized Algorithms IV: Primality Testing
Reading: Notes