Lecture Topics (tentative)

1/23 — Stable matching I: Gale–Shapley algorithm

Reading: §1.1

1/25 — Stable matching II: Analysis of Gale–Shapley

Reading: §1.1


1/27 — Greedy algorithms I: Interval Scheduling

Reading: §4.1

1/30 — Greedy algorithms II: Minimum Spanning Tree

Reading: §4.5

2/1 — Greedy algorithms III: Huffman Codes and Data Compression

Reading: §4.8


2/3 — Dynamic programming I: Weighted Interval Scheduling

Reading: §6.1

2/6 — Dynamic programming II: Subset Sums and Knapsacks

Reading: §6.4

2/8 — Dynamic programming III: RNA Secondary Structure

Reading: §6.5

2/10 — Dynamic programming IV: Shortest Paths in a Graph

Reading: §6.8


2/13 — Divide and Conquer I: Multiplying Integers

Reading: §5.5

2/15 — Divide and Conquer II: Fast Fourier Transform I

Reading: §5.6

2/17 — Divide and Conquer II: Fast Fourier Transform II

Reading: §5.6

2/20 — Review for Prelim 1

2/22 — Divide and Conquer III: Closest Pair of Points in the Plane

Reading: §5.4


2/24 — Network Flow I: Definition and Ford-Fulkerson Algorithm

Reading: §7.1

2/27 — No class; February break

3/1 — Network Flow II: Network Flow II: Max-Flow running time and Cut capacities

Reading: §7.2

3/3 — Network Flow III: Max-Flow Min-Cut theorem

Reading: § 7.2

3/6 — Network Flow IV: Reductions to Max-flow problem

Reading: §7.5

3/8 — Network Flow V: More on Reductions to Max-flow problem

Reading: §7.5, 7.6

3/10 — Network Flow VI: Applications to Min-Cuts

Reading: §7.11


3/13 — NP-Completeness I: Introduction to hardness reductions, P and NP

Reading: §8.1, 8.3

3/15 — NP-Completeness II: NP-complete problems, SAT as an NP-complete problem

Reading: §8.2, 8.4

3/17 — NP-Completeness III: Independent Set, Vertex Cover, Set Cover

Reading: §8.2

3/20 — NP-Completeness IV: Hamiltonian Cycle, Traveling Salesman

Reading: §8.5

3/22 — NP-Completeness V: Subset Sum

Reading: §8.8

3/24 — Panorama of Complexity Classes

Reading: §8.9, 8.10


3/27 — Approximation Algorithms I: Greedy algorithms

Reading: § 11.1

3/29 — Approximation Algorithms II: Linear Programming

Reading: § 11.6

3/31 — Approximation Algorithms III: Set Cover

Reading: § 11.3

4/3, 4/5, 4/7 — Spring break

4/10 — Approximation Algorithms IV: Center Selection

Reading: § 11.2

4/12 — Approximation Algorithms V: Knapsack Problem

Reading: § 11.8


4/14 — Probability Review for Randomized Algorithms

Reading: lecture notes

4/17 — Review for Prelim 2

4/19 — Randomized Algorithms I: Minimum Cut

Reading: § 13.2

4/21 — Randomized Algorithms II: Median Finding

Reading: § 13.5

4/24 — Randomized Algorithms III: Max 3-SAT

Reading: § 13.4

4/26 — Randomized Algorithms IV: Hashing

Reading: §13.6

4/28 — Randomized Algorithms V: More on Hashing

Reading: 13.6, Notes


5/1 — Computability Theory I: Turing Machines

Reading: Notes

5/3 — Computability II: Turing Machine example

Reading: Notes

5/5 — Universal Turing Machine

Reading: Notes

5/8 — Diagonalization and the Halting Problem

Reading: Reading: Notes