CSL356: Lecture Notes


  • July 24: Introduction
  • July 26: Indroduction to Graphs, BFS
  • July 27: DFS, Connectivity, Topological ordering
  • July 31: Greedy Algorithms (Interval Scheduling, Fractional Knapsack)
  • August 3: Greedy Algorithms (Fractional Knapsack, Job Scheduling)
  • August 7: Greedy Algorithms (Job Scheduling, Minimum Spanning Tree)
  • August 9: Greedy Algorithms (Minimum Spanning Tree, Prim's/Kruskal's Algorithm)
  • August 14: Greedy Algorithms (Dijkstra's Algorithm, Huffman Coding)
  • August 16: Greedy Algorithms (Huffman Coding, Approximation algorithm for Set Cover)
  • August 17: Greedy Algorithms (Approximation algorithms for Set Cover and Minimum Makespan)
  • August 23: Divide and Conquer (Closest pair of points on a plane)
  • August 24: Divide and Conquer (Finding k^th smallest number in unsorted array)
  • August 28: Divide and Conquer (Fast Fourier Transform)
  • August 30: Divide and Conquer (Fast Fourier Transform, Randomized Median Finding)
  • August 31: Problem Session

  • Minor-I: (September 3)

  • September 6: Dynamic Programming (Longest increasing sequence, Longest Common Subsequence)
  • September 7: Dynamic Programming (Longest Common Subsequence, Memoization, Matrix chain Multiplication)
  • September 11: Dynamic Programming (All pairs shortest path, Subset sum)
  • September 13: Dynamic Programming (Travelling Salesman Problem, Viterbi's Algorithm)
  • September 14: Dynamic Programming (Travelling Salesman Problem, Viterbi's Algorithm), Network Flows introduction.
  • September 18: Network Flow (Ford Fulkerson Algorithm).
  • September 20: Network Flow (Ford Fulkerson Algorithm, Max-flow-min-cut Theorem, Faster max-flow).
  • September 25: Network Flow (Ford-Fulkerson on network with irrational capacities, Edmonds-Karp Algorithm).
  • September 27: Network Flow (Edmonds-Karp algorithm, Bipartite Matching, Hall's Theorem).
  • September 28: Network Flow (Hall's Theorem, Team elimination).
  • October 03: Network Flow (Team elimination, Feasible circulation, Survey design).
  • October 04: Network Flow (Survey design, Edge-disjoint paths, Image segmentation)
  • October 05: Network Flow (Image Segmentation, Project Selection, Summary)

  • Minor-II: (October 8)

  • October 11: Computational Intractability (Introduction, Polynomial-time reduction, Vertex-cover Vs Independent Set)
  • October 12: Computational Intractability (Polynomial time reductions: Set cover, Vertex cover, SAT, 3-SAT)
  • October 16: Computational Intractability (NP)
  • October 18: Computational Intractability (NP, NP-complete, Cook-Levin Theorem, NP-hard)
  • October 19: Computational Intractability (NP-complete problems: TSP, Hamiltonian-cycle, Hamiltonian Path)
  • October 30: Computational Intractability (NP-complete problems: k-Coloring, Scheduling, Many-one reduction)
  • November 1: Computational Intractability (NP-complete problems: 3-D Matching, Subset-sum)
  • November 2: Computational Intractability (Introduction to Computational Complexity Classes)
  • November 3: Linear Programming (Introduction)
  • November 6: Linear Programming (Applications, Standard form, Slack form)
  • November 8: Linear Programming (Simplex algorithm)
  • November 9: Linear Programming (Simplex algorithm)
  • November 15: Linear Programming (Approximation algorithms using LP)
  • November 16: Review of selected topics

  • Major Exam: November 22.