Note: The final exam will be based on material taught from Lectures 17
(Topics : Complexity classes, Lower Bounds, Streaming, Sublinear, Cache Oblivious Algo.)

You can collect your Assignment 3 from the TA (Pradeesha Ashok, Room 112) between 10:30-12:30
on Friday, Dec 5th morning

Lecture Schedule

# Date Topics Covered References
0 Aug 7 Organizational meeting
Linear time Order Statistics
CLRS 9.3
    Greedy Algorithms  
1 Aug 14 Interval Scheduling KT 4.1
2 Aug 16 Dijkstra's Algorithm
Minimum Spanning Tree
KT 4.4, 4.5
CLRS 23, 24.3
    Dynamic Programming  
3 Aug 21 Matrix chain Multiplication CLRS 15.2, 15.3
4 Aug 23 Weighted Interval Scheduleing
Knapsack problem
KT 6.1,6.2,6.4
5 Aug 28 Single source : Bellman-Ford
All pair Shortest paths
KT 6.8,6.10,CLRS 24.1
CLRS 25.1,25.2,25.3
    Maximum Flows  
6 Aug 30 Ford Fulkerson Algorithm KT 7.1, 7.2, CLRS 26.1, 26.2
7 Sep 4 Max Flow - Min Cut Theorem KT 7.1, 7.2, CLRS 26.1, 26.2
8 Sep 6 Applications of Max-Flow KT 7.5-7.10, CLRS 26.3
    Randomized Algorithms  
9 Sept 11 Checking Equality of polynomials
Checking Matrix Multiplication
Wikipedia ref. on polynomial testing
Wikipedia ref. on Matrix Multiplication
KT 13.2
10 Sep 18 Linearity of expectation, Randomized Selection
Quicksort, Hashing (part I)
KT 13.5, 13.6
11 Sept 20 Binomial Random Variables, Markov Inequality
Chebyshev Inequality, Lazy Median Algorithm
Karger's Min-Cut Algorithm
Lecture Notes
Pages 7-13 of Lecture Notes
Section 3.3 of Randomized Algorithms book
by Motwani and Raghavan
Karger's Algorithm
    Linear Programming based Algorithms  
12 Sept 25 Introduction to Linear Programming
Polynomial time algorithms using LP: Max Flow, Line Fitting
Max Weight Perfect Matching in bipartite graphs
CLRS 29.1, 29.2, pgs 1-3 of Lecture Notes
13 Sept 27 Introduction to Approximation Algorithms
2-Approximation for Vertex Cover using Linear Programming
Introduction to LP Duality
CLRS 29.4, Section 1 and 3 of Lecture Notes
14 Oct 4 Max Flow = Min Cut by LP duality Lecture Notes
15 Oct 9 Max Flow = Min Cut by LP duality (Contd.) Lecture Notes
16 Oct 11 Set Cover - greedy algorithm and randomized rounding KT Section 11.3, Section 1 of Lecture Notes
    Complexity Classes and Lower Bounds  
17 Oct 18 Introduction to complexity classes
Classes P,NP, NP-Complete
Reductions, Cook-Levin Theorem and its proof
CLRS 34.1 to 34.3
18 Oct 23 Reduction between NP-Complete problems CLRS 34.4, 34.5
Lecture Notes
19 Oct 25 NP-hardness of ZERO-ONE-EQUATION,
Decision tree model. Lower bound for dictionary problem
and sorting in decision tree model
Lower bound for finding max using adversarial argument
CLRS 34.4, 34.5
Lecture Notes for Reductions
Lecture Notes for Lower Bounds
    Streaming, Sublinear and Cache-Oblivious algo.  
20 Nov 6 Data Streaming algorithms for reservoir sampling,
frequent item, and number of distinct elements.
Scribe Notes(by Arshed Nabeel)
Lecture Notes
Lecture Notes
21 Nov 13 More data streaming algorithms
Count-min sketch and analysis of frequency estimation
AMS sketch for F_2 estimation.
Scribe Notes(by Puneet Pahuja)
Lecture Notes
Lecture Notes(Section 2.2)
22 Nov 15 Sublinear algorithms
Analysis of sampling. Testing monotonicity.
Testing connectedness of graph in adjacency list representation.
Lecture Notes
23 Nov 20 Cache-oblivious algorithms. External memory model
Cache-aware algorithms and B-trees. Cache-oblivious algorithms.
Analysis of scanning and static cache-oblivious search tree.
Paper introducing Cache-oblivious model
Paper on Cache-oblivious search trees

CLRS : Introduction to Algorithms, Cormen et al

KT : Algorithm Design, Kleinberg and Tardos