Lecture Topics (tentative)

1/27—Introduction

Reading: §1.2

1/29—Stable matching: Gale–Shapley algorithm

Reading: §1.1


2/01—Greedy algorithms I: Interval scheduling

Reading: §4.1

2/03—Greedy algorithms II: Minimizing lateness

Reading: §4.2

2/4—Homework 1 due (on data structures and stable matching)

2/05—Greedy algorithms III: Minimum Spanning Tree

Reading: §4.5–4.6,


2/08—Dynamic programming I: Weighted interval scheduling

Reading: §6.1 and §6.2

2/10—Dynamic programming II: Segmented Least Squares

Reading: §6.3

2/11—Homework 2 due (on greedy algorithms)

2/12—Dynamic programming III: Sequence Alignment

Reading: §6.6

2/15—Fall Break

2/17—Dynamic programming IV: Shortest Path in Graphs

Reading: §6.8


2/19—Divide and Conquer I: Integer Multiplication

Reading: §5.5 and §5.2

2/22—Divide and Conquer II: Sequence Alignment in Linear Space

Reading: §6.7

2/23—Homework 3 due (on dynamic programming)

2/24—Divide and Conquer III: Randomized Median Finding

Reading: §13.5

2/26—More on Randomized Algorithms

Reading: §13.1 and §13.3

2/29—Review for Prelim 1

3/1—Prelim 1 at 7:30 pm


3/2—Network Flows I: Introduction

Reading: §7.1

3/4—Network Flows II: Flows and Cuts

Reading: §7.2

3/7—Network Flows III: Applications

Reading: §7.5 and §7.6

3/9—Network Flows IV: Applications II

Reading: §7.7

3/10—Homework 4 due (on divide and conquer and randomized algorithms)

3/11—Network Flows V: Min Cut Applications

Reading: §7.10


3/14—NP-Completeness I: Polynomial Time Reductions

Reading: §8.1

3/16—NP-Completeness II: More reductions: The hardness of 3-SAT

Reading: Supplementary Notes

3/17—Homework 5 due (on max flows and min cuts)

3/18—NP-Completeness of 3-SAT, and proving problems NP-complete

Reading: §8.2-4

3/21—NP-Completeness IV: Traveling Salesperson Problem

Reading: §8.5

3/23—NP-Completeness V: Knapsack Problem

Reading: Supplementary Notes , and §8.7

3/24—Homework 6 due (on NP-completeness and Reductions)

3/25—NP and co-NP and crypto security

Reading: §8.8

3/28-4/1—Spring Break

4/4—NP-Completeness VI: Partition Problems: 3D Matching

Reading: §8.5


4/6—Turing Machines I: Definition and Examples

Reading: supplementary notes Sections 1-2.

4/7—Homework 7 due (on NP-completeness and Reductions)

4/8—Turing Machines II: Some Reductions

Reading: supplementary notes Section 3.

4/11—Turing Machines III: Universal Turing Machines

Reading: supplementary notes Section 4.


4/13—Review for Prelim 2

4/14—Prelim 2 at 7:30 pm


4/15—Turing Machines IV: Undecidability

Reading: supplementary notes

4/17—Turing Machines V: SAT is NP-complete


4/20—Approximation I: Introduction, Greedy algorithm: online matching and Knapsack

Reading: Introduction to Chapter 11, and Supplementary Notes

4/21—Homework 8 due (on Turing Machines)

4/22—Approximation II: Greedy algorithm, Center Selection

Reading: §11.2

4/25—Approximation III: Using Dynamic Programming, Knapsack

Reading: §11.8

4/27—Approximation IV: Pricing methods: Set Cover

Reading: §11.3

4/29—Online learning

Reading: Supplementary Notes

5/1—Homework 9 due (on Approximation Algorithms)

5/2—Approximation V: Using Linear Programming

Reading: §11.6

5/4—Online Algorithm II: Online selection: the secretary problem

Reading: Supplementary Notes

5/6— Nash Equilibria and Local Search

Reading: §12.7

5/8—Homework 10 due (on Approximation Algorithms)

5/9— Power of Randomization: Prime testing

Reading: Supplementary Notes

5/11— Input-Output queuing via Stable Matching

Reading: Epilogue