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