#  Date  Topics Covered  References 
0  Aug 8  Organizational meeting  
1  Aug 10  Introduction: Data Structures and Algorithms Google Search problem (Top k problem) 

Basic Data Structures  
2  Aug 17  List ADT, Stack ADT  Weiss: Chapter 3.13.3 
3  Aug 22  Queue ADT Binary MinHeap 
Weiss: 3.4 Weiss: 6.16.3 
4  Aug 24  Binary MinHeap (contd.) Application: Least k problem 
Weiss: 6.16.3 Weiss: 6.4.1 
5  Aug 29  Binary Search Tree  Weiss: 4.3 
6  Aug 31  Binary Search Tree (contd.) AVLTrees 
Weiss: 4.3, 4.4 
7  Sept 5  AVLTrees  Insert using Rotations  Weiss: 4.4 
Divide and Conquer Algorithms  
8  Sept 7  Merge Sort , QuickSort  Weiss: 7.6, 7.7 KT 5.1 
9  Sept 12  QuickSort, Selection Problem  Weiss: 7.6, 7.7 
10  Sept 14  Closest Pair Problem  KT 5.4, Weiss: 10.2.2 
Greedy Algorithms  
11  Sept 19  Interval Scheduling  KT 4.1 
12  Sept 21  Dijkstra's Algorithm  KT 4.4 
Dynamic Programming  
13  Sept 26  Fibonacci Numbers  Weiss 10.3.1 
14  Sept 28  Matrix chain Multiplication Principles of Dynamic Programming 
Weiss 10.3.2 Cormen et al(CLRS) book Chpt 15.2,15.3 (additional material) 
15  Oct 3  Weighted Interval Scheduling Principles of Dynamic Programming Knapsack problem 
KT 6.1, 6.2, 6.4 
Oct 5  Midterm review  
Oct 7  MIDTERM EXAM  
Graph Algorithms  
16  Oct 10  Graph Traversals Depth First Search, Breadth First Search 
KT 3.1, 3.2, 3.3 Weiss 4.6, 9.6, 9.3.1 
17  Oct 17  Shortest paths  Weiss 9.3 
18  Oct 19  Minimum Spanning Tree  Weiss 9.5 
Lower bounds and NPcompleteness  
19  Oct 24  Comparison based Lower bounds Lower bounds using adversary arguments 
Michiel Smid lecture notes (Section 1.1)
Jeffe Erickson lecture notes 
20  Oct 26  Lower bounds using reductions  Jeffe Erickson lecture notes (Sections Q4 and Q5) 
21  Oct 31  Polynomial time reductions On P, NP and NPcomplete 
Avrim Blum's lecture KT 8.1,8.2 
22  Nov 2  On P, NP and NPcompleteness  Avrim Blum's lecture KT 8.3,8.4 
23  Nov 7  Overview of Complexity Classes Undecidibility  Halting Problem 
Lecture Notes on Halting Problem 
Advanced Algorithms and Data Structures  
24  Nov 9  Vertex Cover  Parametrized Algorithm, 2approx algo.  KT 10.1 Lecture Notes on Approximation (Section K2, K5) 
25  Nov 14  Approximation Algorithms Set Cover, Hitting Set, Euclidean TSP 
Lecture Notes on Approximation (Section K2, K3, K4, K6, K7) 
26  Nov 16  Randomized QuickSort and Selection Randomized Matrix Multiplication Verification 
KT 13.5 Frievald's Algorithm 
27  Nov 21  Randomized Skip List  Weiss 10.4 