Lecture Notes

Although some of the lecture below were scribed during the 2005 version of this course, many of the scribed notes below are from previous versions of the course. These older notes were made available to the students.

Scribed notes were taken by the students and used with permission.

The instructor notes often span several lectures

LEC # TOPICS SCRIBE NOTES Instructor NOTES
1 Course Introduction
Fibonacci Heaps
Fibonacci Heaps (PDF) (Courtesy of David Andersen, Ioana Dumitriu, John Dunagan, and Akshay Patil.) (PDF 1)
(PDF 2)
2 MST
Persistent Data Structures
Persistent Data Structures (PDF) (Courtesy of Sommer Gentry and Eddie Kohler.) (PDF)
3 Splay Trees Splay Trees (PDF) (Courtesy of Xin Zhang.) (PDF)
4 Splay Trees (cont.)
Suffix Trees
Tries
Suffix Trees and Fibonacci Heaps (PDF) (PDF)
5 Suffix Trees (cont.)
Tries (cont.)
Dial's Algorithm
   
6 Dijkstra's Algorithm
Van Emde Boas Queues
Van Emde Boas Queues (This resource may not render correctly in a screen reader.PDF) (Courtesy of Abhi Shelat, Andrew Menard, and Akshay Patil.) (PDF)
7 Van Emde Boas Queues (cont.)
Hashing
  (PDF)
8 2-Level Hashing
Network Flows
Maximum Flows (PDF) (Courtesy of Alexandr Andoni.) (PDF)
9 Network Flows: Augmenting Paths, Maximum Augmenting Paths, Scaling    
10 Reductions between Flow Problems
Bipartite Matching
Shortest Augmenting Path
Blocking Flows
   
11 Blocking Flows (cont.)    
12 Min-Cost Flows Min-Cost Flow Algorithms (PDF) (Courtesy of Wendy Chang.) (PDF)
13 Min-Cost Flows (cont.)
Linear Programming
  (PDF)
14 Linear Programming (cont.)
Structure of Optima
Weak Duality
Duality (PDF) (Courtesy of Jay-Kumar Sundararajan.)  
15 Linear Programming (cont.)
Strong Duality
Duality(PDF) (Courtesy of Jay-Kumar Sundararajan.)  
16 Linear Programming (cont.)
Complementary Slackness
Algorithms: Simplex, Ellipsoid
Duality (PDF) (Courtesy of Jay-Kumar Sundararajan.)  
17 Linear Programming (cont.)
Algorithms: Interior Point
   
18 Approximation Algorithms
NP-hard problems
  (PDF)
19 4/3-Approximation for TSP    
20 Relaxations
Directed TSP
   
21 Randomized Rounding
Chernoff Bound
Fixed Parameter Tractability
Kernelization
  (PDF)
22 Online Algorithms (Ski Rental, Load Balancing, Paging) Lower Bounds for Competitive Ratios of Randomized
Online Algorithms (PDF) (Courtesy of Chun-Chieh Lin.)
(PDF)
23 Randomized Online Algorithms (Adversaries, Fiat's Marking Algorithm, Potential Functions, Yao's Minimax Principle) Lower Bounds for Competitive Ratios of Randomized
Online Algorithms (PDF) (Courtesy of Chun-Chieh Lin.)
 
24 K-Server Problem
Double-Coverage Algorithm
Computational Geometry Introduction (Orthogonal Range Search)
   
25 Sweep Algorithms (Convex Hull, Segment Intersection, Voronoi Diagrams) Sweep Line (PDF) (Courtesy of Matt Rasmussen.) (PDF)
26 Sweep Algorithms (Voronoi Diagrams)
Randomized Incremental Constructions
Backwards Analysis
Linear Programming in Fixed Dimension
   
27 (Optional Material) External Memory Algorithms   (PDF)
28 (Optional Material) Cache Oblivious Algorithms: Matrix Multiplication, Linked Lists, Median    
29 (Optional Material) Cache Oblivious Algorithms: Search
Streaming Model
   
29 (Optional Material) Parallel Algorithms
 
  (PDF)

Lecture notes from the 2004 version of this course.

LEC # TOPICS SCRIBE NOTES
1 Course Introduction
Fibonacci Heaps
(This resource may not render correctly in a screen reader.PDF) (Courtesy of David Andersen, Ioana Dumitriu, John Dunagan, and Akshay Patil.)
2 Persistent Data Structures
Suffix Trees
(PDF 1) (Courtesy of Sommer Gentry and Eddie Kohler.)
(PDF 2) (Courtesy of Jiawen Chen.)
3 Suffix Trees (cont.) (This resource may not render correctly in a screen reader.PDF)
4 Treaps  
  Splay Trees (PDF) (Courtesy of Naveen Sunkavally.)
5 Hashing: 2-Universal, Perfect Hashing
Fingerprinting
 
6 Fingerprinting (cont.)
Max Flows
(PDF 1) (Courtesy of Jiawen Chen.)
(PDF 2) (Courtesy of Alexandr Andoni.)
7 Max Flows (cont.)  
8 Max Flows (cont.)  
9 Max Flows (Max Flow of Min Cost)  
  Dynamic Trees
Preflow-push Algorithm
 
10 Min Cost Flow Algorithms
Linear Programming
(This resource may not render correctly in a screen reader.PDF 1) (Courtesy of Brian Dean and John Jannotti.)
11 Linear Programming (cont.)
Farkas Lemma
Duality
(This resource may not render correctly in a screen reader.PDF) (Courtesy of Vinod Vaikuntanathan.)
  Goldberg-Tarjan Min-cost Flow (This resource may not render correctly in a screen reader.PDF) (Courtesy of Mohammad Hajiaghayi and Vahab Mirrokni.)
12 Linear Programming: More Duality (Weak and Strong Duality)
Complementary Slackness Conditions
 
13 Linear Programming: Complementary Slackness Conditions (Same Scribes as Above)  
14 LP: Interior Points Algorithm
Approximation Algorithms: Constant, Relative Approximation
(This resource may not render correctly in a screen reader.PDF) (Courtesy of Jason Eisenberg.)
15 Approximation Algorithm: PAS, FPAS, Rounding, Enumeration  
16 Approximation Algorithm: Rounding, Relaxation (This resource may not render correctly in a screen reader.PDF) (Courtesy of Sachin Katti.)
17 Approximation Algorithm: LP Relaxation, Randomized Rounding (This resource may not render correctly in a screen reader.PDF) (Courtesy of Shannon McDonald.)
18 Fixed Parameter Tractability (This resource may not render correctly in a screen reader.PDF) (Courtesy of Shannon McDonald.)
19 Fixed Parameter Tractability - Treewidth
Online Algorithms
 
20 Online Algorithms (cont.): Paging, Randomization, Potential Functions  
21 Randomized Online Algorithms (Adversarial Models, Marking Algorithm)  
22 Lower Bounds for Randomized Online Algorithms
Geometry: Range Search
(This resource may not render correctly in a screen reader.PDF) (Courtesy of Nick Harvey.)
23 Convex Hulls
Voronoi Diagrams
 
24 Voronoi Diagrams (cont.)
Randomized Incremental Construction: Binary Space Partition
 
25 Backwards Analysis for RIC: Convex Hull, Linear Programming  
26 External Memory Algorithms  
27 Cache-oblivious Algorithms