# Lecture Topics

This schedule is tentative, subject to change

## 8/30 — Introduction and Stable matching I: Gale–Shapley algorithm

*Reading:* §1.1

## 9/2 —
** Labor Day, no class **

## 9/4 — Stable matching II: Analysis of Gale–Shapley

*Reading:* §1.1

## 9/6 — Greedy algorithms I: Interval Scheduling

*Reading:* §4.1 (suggested reading: §4.2)

## 9/9 — Greedy algorithms II: Minimum Spanning Tree

*Reading:* §4.5

## 9/11 — Greedy algorithms III: Huffman Codes and Data Compression

*Reading:* §4.8

## 9/13 — Dynamic programming I: Weighted Interval Scheduling,

*Reading:* §6.1

## 9/16 — Dynamic programming II: Segmented Least Squares

*Reading:* §6.3

## 9/18 — Dynamic programming III: Sequence Alignment

*Reading:* §6.6

## 9/20 — Dynamic programming IV: Shortest path in a graph I

*Reading:* §6.8

## 9/23 — Dynamic programming V: Shortest path in a graph II

*Reading:* §6.8

## 9/25 — Divide and Conquer I: Multiplying Integers

*Reading:* §5.5

## 9/27 — Divide and Conquer II ; Randomized Algorithms I: Median Finding

*Reading:* §13.5

**Tuesday, Oct 8th**11:59pm

**no late days**

## 9/30 — Randomized Algorithms II: Hashing: A randomized dictionary

*Reading:* §13.6

## 10/2 — Randomized Algorithms III: Universal Hashing II

*Reading:* §13.6

## 10/4 — Divide and Conquer III: Fast Fourier Transform

*Reading:* §5.6

## 10/7 — Randomized Algorithms IV: Prime testing

*Reading:* Supplementary Notes

## 10/9 — Randomized Algorithms IV: Prime testing continued.

*Reading:* Supplementary Notes

## 10/11 — Network Flow I: Definition and Ford-Fulkerson Algorithm

*Reading:* §7.1

## 10/14 —
** Fall Break, no class **

## 10/16 — Review for Prelim 1

## 10/18 — Network Flow II: Max-Flow running time and Cut capacities

*Reading:* §7.2

## 10/21 — Network Flow III: Max-Flow=Min-Cut and an Application

*Reading:*§7.2, 7.5

## 10/23 — Network Flow IV: More Applications to Max-Flow

*Reading:*§7.5, 7.6

## 10/25 — Network Flow V: Applications to Min-Cuts

*Reading:*§7.11 Problem Set 6 due Thursday, Oct 31st 11:59pm

## 10/28 — NP-Completeness I: Introduction to Hardness Reductions, P and NP, and First Reductions

*Reading:*§8.1, 8.3

## 10/30 — NP-Completeness II: NP, NP-complete, SAT as an NP-complete problem

*Reading:*§8.2, 8.4

## 11/1 — NP-Completeness III: Independent set is NP-complete

*Reading:*§8.2 Problem Set 7 due Thursday, Nov 7th 11:59pm

**no late days**

## 11/4 — NP-Completeness IV: Graph Coloring

*Reading:*§8.7

## 11/6 — NP-Completeness V: Sequencing problems

*Reading:*§8.5

## 11/8 — NP, co-NP, and other complexity classes:

*Reading:*§8.9

## 11/11 — Review for Prelim 2

## 11/13 — Computability Theory I: SJava, a simple model of computation and the Halting Problem

*Reading:*Lecture Notes on Computability §1-5

## 11/15 — Computability Theory II: Undecidability via reduction

*Reading:*Lecture Notes on Computability §7 Problem Set 8 due Thursday, Nov 21st 11:59pm

## 11/18 — Computability Theory III: Diagonalization and Undecidability of the Halting Problem

*Reading:*Lecture Notes on Computability §6

## 11/20 — Computability Theory IV: Turing Machines

*Reading:*Lecture Notes on Computability §10

## 11/22 — Approximation Algorithms I: Greedy Algorithms

*Reading:* Introduction to Chapter §11,
Notes for Greedy Approximation Algorithms for Knapsack and see also §6.4 and 8.8

## 11/25 — Approximation Algorithms II: Using Linear Programming

*Reading:* §11.6

## 11/27,29 —
** Thanksgiving break, no class **

## 12/2 — Class cancelled due to weather

## 12/4 — Approximation Algorithms III: Set Cover

*Reading:*§ 11.3

## 12/6 — Approximation Algorithms IV: Center Selection

*Reading:*§11.2

## 12/9 — Online Algorithms and Algorithms with Selfish Users

*Reading: Online Matching Notes and §12.7*