| Syllabus | 
	
	 | Lecture 1 and  
2 (by Arup Guha on 23/08 and 25/08)  
		 
	      | 
	
	 | Lecture 3  (01/09)  
		 
		  | Adjacency matrix, adjacency list |  
		  Depth-first search in undirected graphs
		    - Procedures explore(G,v) and dfs(G)
 
		    - DFS search tree/forest
 
		    - Types of edges (tree and back edges)
 
		    - Connected components in undirected graphs
 
		    - Previsit and postvisit orderings
 
		     
		   |  
		  
		 
	      | 
	
	
	 | Lecture 4  (06/09)  
		 
		  Depth-first search in directed graphs
		    	
		    - Types of edges (tree, forward, back, and cross edges)
 
		     
		   |  
		  | Topological sorting |  
		  | Strongly connected components |  
		 
	      | 
	
	 | Lecture 5  (08/09)  
		 
		  | Algorithm for finding strongly connected components
		   (variant in DPV book)  |  
		  | Breadth first search |  
		 
	      | 
	
	
	 | Lecture 6  (13/09)  
		 
		  | Algorithm for finding strongly connected components
		   (variant in CLRS book)  |  
		  | Dijkstra's algorithm |  
		 
	      | 
	
	
	 | Lecture 7  (15/09) 
		 
		  | Analysis of Dijkstra's algorithm (array and heap 
implementations of priority queue) |  
		  | Bellman-Ford algorithm |  
		 
	      | 
	
	 | Lecture 8  (20/09)  
		 
		  | Finding shortest paths in DAGs with negative edge 
weights |  
		  | Kruskal' algorithm, cut property |  
	 	 
		 | 
	
	 | Lectrure 9  (22/09)  
		 
		  | Data structure for disjoint sets, union by rank |  
		  | Overview of path compression |  
		 
	      | 
	
	 | Lecture 10  (27/09)  
		 
		  | Prim's algorithm |  
		  | Approximation algorithm for set cover |  
		 
	      | 
	
         | Lecture 11  (29/09)  
                 
                  | Randomized algorithm for min-cut based on Kruskal's algorithm
 |  
                  | Randomized algorithm for min-cut based on edge contraction |  
                 
              | 
        
	 | Lecture 12  (04/10)  
		 
	      | 
	
	 | Lecture 13  (11/10)  
		 
		  | Reading assignment: Huffman encoding and Horn formulas |  
		  | Shortest paths in DAGs |  
		  | Longest increasing subsequences |  
		  | Knapsack with repetition |  
		 
	      | 
	
 
	 | Lecture 14  (13/10)  
		 
		  | Reading assignment: edit distance, chain matrix 
multiplication and independent sets in trees |  
		  | Knapsack without repetition |  
		  | Shortest reliable paths |  
		  | All-pairs shortest paths, Floyd-Warshall algorithm |  
		 
	      | 
	
	 | Lecture 15  (18/10)  
		 
		| Reading assignment: sections 7.1 and 7.2 in DPV book |  
		| Dynamic programming algorithm for traveling salesman problem |  
		| Flow networks (section 26.1 in CLRS book) |  
		 
	      | 
	
	 | Lecture 16  (20/10)  
		 
		| Ford-Fulkerson method |  
		| Residual networks |  
		| Augmenting paths |  
		| Cuts of flow networks |  
		 
	      | 
	
	 | Lecture 17 (25/10)  
		 
		| Max-flow min-cut theorem |  
		| Analysis of Ford-Fulkerson method |  
		 
	      | 
	
	 | Lecture 18 (27/10)  
		 
		| Analysis of Edmonds-Karp algorithm |  
		 
	      | 
	
	 | Lecture 19 (01/11)  
		 
                | Introduction to linear programming |  
		 
              | 
        
         | Lecture 20 (01/11)  
                 
                | Reduction of max-flow to linear programming |  
                | Bipartite matching |  
		| Duality |  
		 
              | 
        
	 | Lecture 21 (08/11)  
                 
                | Overview of the simplex method |  
                 
              | 
        
	 | Lecture 22 (10/11)  
                 
              | 
        
	 | Lecture 23 (15/11) 
		 
		| Solution of the DP problems on the second exam |  
		| Dealing with NP-completeness, backtracking |  
		 
	      | 
	
	 | Lecture 24 (17/11) 
		 
		| Branch-and-bound |  
		| Approximation algorithm, approximation ratio |  
		| Approximation algorithm for vertex cover |  
	
         | Lecture 24 (22/11) 
                 
                | Approximation algorithm for clustering |  
                | Approximation algorithm for metric TSP |  
        
         | Lecture 24 (24/11) 
                 
                | Solution to LP problem on second exam |  
                | Approximation for knapsack without repetition |  
        
 
 
  |   
 |    |