## 1/21—Introduction

*Reading:* §1.2

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

*Reading:* §1.1

## 1/26—Greedy algorithms I: Interval scheduling

*Reading:* §4.1

## 1/28—Greedy algorithms II: Minimizing lateness

*Reading:* §4.2

## 1/29—*Homework 1 due*

## 1/30—Greedy algorithms III: Minimum Spanning Tree

*Reading:* §4.5–4.6,

## 2/02—Greedy algorithms IV: Union-find data structure

*Reading:* §4.6

## 2/04—Dynamic programming I: Weighted interval scheduling

*Reading:* §6.1

## 2/05—*Homework 2 due*

## 2/06—Dynamic programming II: Segmented least squares

*Reading:* §6.3

## 2/09—Dynamic programming III: Sequence alignment

*Reading:* §6.6

## 2/11—Dynamic programming IV: Knapsack

*Reading:* §6.4

## 2/12—*Homework 3 due*

## 2/13—Dynamic programming V: Bellman–Ford algorithm

*Reading:* §6.8

*(Feburary break)*

## 2/18—Divide & Conquer I: Closest pair of points

*Reading:* §5.4

## 2/20—Divide & Conquer II: Integer multiplication

*Reading:* §5.5

## 2/22—*Optional review session*

## 2/23—Divide & Conquer III: Randomized median finding

*Reading:* §13.5

## 2/24—*Prelim I*

## 2/25—Network flow I: Introduction

*Reading:* §7.1

## 2/27—Network flow II

*Reading:* §7.1

## 3/02—Network flow III

*Reading:* §7.5–7.6

## 3/04—Network flow IV

*Reading:* §7.7

## 3/05—*Homework 4 due*

## 3/06—Network flow V

*Reading:* §7.2

## 3/09—Network flow VI

*Reading:* §7.10

## 3/11—NP completeness I: Polynomial-time reductions

*Reading:* §8.1–8.2

## 3/12—*Homework 5 due*

## 3/13—NP completeness II: Reduction from 3-Sat to Independent Set

*Reading:* §8.3–8.4

## 3/16—NP completeness II: Max-Cut

## 3/18—NP completeness II: Traveling Salesperson

*Reading:* §8.5

## 3/20—NP completeness II: Knapsack

*Reading:* §8.8, (supplementary notes)

## 3/23—Turing Machines I: Definition and Examples

(supplementary notes, first 10 pages)

## 3/25—Turing Machines II: Universal Turing machine

(supplementary notes, first 10 pages)

## 3/27—Turing Machines III: Church–Turing thesis

(supplementary notes, first 10 pages)

## 4/06—Turing Machines IV: Halting problem is undecidable

(supplementary notes, first 10 pages)

## 4/08—*Review session for prelim 2*

## 4/10—Turing Machines V: Satisfiability is NP-complete

## 4/13—Approximation algorithms I: Introduction, Vertex Cover

*Reading:* §10.1

## 4/15—Approximation algorithms II: Greedy approximation for Set Cover, pricing method

*Reading:* §11.3

## 4/17—Approximation algorithms III: Knapsack approximation scheme

*Reading:* §11.8

## 4/20—Approximation algorithms IV: Linear program for Weighted Vertex Cover

*Reading:* §11.6

## 4/22—Approximation algorithms IV: Linear program for Max Coverage

## 4/24—Approximation algorithms V: Randomization and Local Search for Max Cut

*Reading:* §12.4. See also supplementary notes.

## 4/29—Nash Equilibria and Local Search

*Reading:* §12.7.

## 5/1—Best Expert algorithm

## 5/4—The Secretary Problem

## 4/29—Input-Output queuing via Stable Matching

*Reading:* §Epilogue