Course Info
Lectures
- Introduction (Mehr 3, 8)
- Analysis of Algorithms, Fibonacci Numbers [KT Ch2]
- Sample Problems: Largest Consecutive Subsequence, 3SUM
- Design by Induction (Mehr 10)
- Evaluating Polynomials, Finding Celebrity, Finding Min-Max [M Ch5]
- Divide and Conquer (Mehr 15, 17)
- Exponentiation, Computing Recurrences, Integer Multiplication, Closest Pair [KT
Ch5.1-5]
- Matrix Multiplication, Fast Fourier Transform [CLRS Ch4.2], [KT
Ch5.6]
- Greedy Algorithms (Mehr 22, 24)
- Coin Changing, Activity Selection, Knapsack [KT Ch4.1-2]
- Data Compression, Shannon-Fano, Huffman Codes [KT Ch4.8]
- Dynamic Programming (Mehr 29, Aban 1, 6)
- Computing Binomials, Weighted Interval Scheduling [KT Ch6.1-2]
- Matrix-Chain Multiplication, Knapsack, Independent Set on Trees
[CLRS Ch14.2], [KT Ch6.4]
- Largest Common Subsequence, Edit Distance, LIS [CLRS Ch14.4], [M Ch6.11]
- Graph Algorithms (Aban 8, 13, 15, 20)
- Graph Traversals: BFS and DFS, Applications [CLRS Ch20.1-5]
- Minimum Spanning Trees: Kruskal, Prim, and Boruvka [KT Ch4.4], [CLRS Ch21]
- Binomial Heaps, Fibonacci Heaps [CLRS 3e Ch19]
- All-Pairs Shortest Paths: Floyd-Warshal and Johnson [CLRS Ch23]
- Maximum Flow (Aban 27, 29)
- Max Flow and Min Cut, Ford-Fulkerson Algorithm [KT Ch7.1-2]
- Variants and Applications of Maximum Flow [KT Ch7.5-8]
- String Matching (Azar 4, 6)
- Knuth-Morris-Pratt Algorithm [CLRS Ch32]
- Rabin-Karp Algorithm, Fingerprint Method [CLRS Ch32]
- Linear Programming (Azar 11, 13)
- Definition and Applications [CLRS Ch29.1-2]
- Simplex Method [CLRS 3e Ch29.3, 5]
- NP-Completeness (Azar 18, 25, 27)
- Polynomial-Time Reduction [KT Ch8.1-2]
- Circuit SAT, NP-Hardness [KT Ch8.3-4]
- Sequencing, Partitioning, and Numerical Problems [KT Ch8.5,7,8]
- Backtracking (Dey 2, 4)
- n-Queens, Subset Sum, 3-Coloring [BB Ch6.6]
- Branch and Bound, Coloring, TSP, Game Trees, α-β Pruning [BB Ch6.6]
- Approximation Algorithms (Dey 9, 11)
- Vertex Cover, Max Cut [CLRS Ch35.1], [KT Ch12.4]
- TSP, Hardness of Approximation [CLRS Ch35.2], [KT Ch11.6]
References
- [CLRS] T. Cormen, C. Leiserson, R. Riverst, and C. Stein. Introduction to Algorithms. 4th
edition, MIT Press, 2022.
- [KT] J. Kleinberg and E. Tardos. Algorithm Design. Addison Wesley, 2005.
- [M] U. Manber. Introduction to Algorithms: A Creative Approach. Addison Wesley, 1989.
- [BB] G. Brassard and P. Bratley. Algorithmics: Theory and Practice. Prentice-Hall, 1988.
Resources