Lectures

Below are links to the lecture slides.
# SLIDES READINGS DEMOS
1 Introduction
(course resources)    
Preface
2 Stable Matching
(Gale–Shapley)    
Chapter 1 Gale–Shapley
3 Algorithm Analysis
(big O notation)    
Chapter 2 binary search
4 Greedy Algorithms I
(basic techniques)    
Chapter 4 interval scheduling
interval partitioning
5 Greedy Algorithms II
(shortest paths and MSTs)    
Chapter 4 Dijkstra
Prim, Kruskal, Borůvka
Edmonds branching
6 Divide and Conquer I
(sorting and selection)    
Chapter 5 merging
quickselect
7 Divide and Conquer II
(multiplication and FFT)    
Chapter 5
8 Dynamic Programming I
(basic techniques)    
Chapter 6
9 Dynamic Programming II
(edit distance, Bellman–Ford)    
Chapter 6
10 Duality Warmup
(longest increasing subsequence)    
11 Network Flow I
(maximum flow theory)    
Chapter 7 Ford–Fulkerson
12 Network Flow II
(maximum flow applications)    
Chapter 7
13 Intractablity I
(poly-time reductions)    
Chapter 8
14 Intractablity II
(P vs. NP, NP-completeness)    
Chapter 8
15 Intractablity III
(coping with intractability)    
Chapter 8 independent set
vertex cover

Readings. All readings refer to Algorithm Design by Jon Kleinberg and Éva Tardos unless otherwise specified.

Advice. The slides are intended for the lecture presentations; for reference, read the indicated sections from Algorithm Design. An effective strategy is to skim the textbook before the lecture, then read it thoroughly soon afterwards. We recommend annotating the slides during lecture.

iClicker policy. Using an iClicker during lecture counts towards the participation component of your course grade. Using a classmate’s iClicker during lecture (or allowing someone else to use your iClicker during lecture) is prohibited.

Errata. Extra credit will be awarded for identifying any errata in the lectures slides and emailing the instructor.