This page links to lecture notes.

All reading materials are from the course textbook:

Introduction to Algorithms - 3rd ed. (CLRS)

Date Lecture Reading
Jan 21 Lecture 1: Intro to Algorithms Ch. 1
Jan 23,26 Lecture 2: Insertion Sort Ch. 2.1-2.2
Jan 28 Lecture 3: Asymptotic Notation Ch. 3
Jan 30 Lecture 4: Merge Sort Ch. 2.3
Feb 2 Lecture 5: Master Theorem Ch. 4.5
Feb 4 Lecture 6: Recurrence Ch. 4.3-4.4
Feb 9,11 Lecture 7: Heapsort Ch. 6
Feb 13 Lecture 8: Quicksort Ch. 7
Feb 16,18 Lecture 9: Linear Sorting Ch. 8
Feb 20,23 Lecture 10: Probabilistic Analysis Ch. 5
Feb 25 Lecture 11: Hash Tables Ch. 11
Mar 13,16 Lecture 12: Dynamic Programming - Rod Cutting Ch. 15
Mar 18 Lecture 13: Dynamic Programming - LCS Ch. 15
Mar 20 Lecture 14: Greedy Algorithms - Activity Selection Ch. 16
Mar 23 Lecture 15: Graph Theory Appendix B.4
Mar 25 Lecture 16: Breadth-First Search Ch. 22.2
Mar 27 Lecture 17: Depth-First Search Ch. 22.3
Mar 30 Lecture 18: DFS Applications Ch. 22.4-22.5
Apr 1 Lecture 19: Minimum Spanning Trees - Kruskal Ch. 23.1
Apr 13 Lecture 20: Minimum Spanning Trees - Prim Ch. 23.2
Apr 15 Lecture 21: Shortest Path - Bellman-Ford Ch. 24.1-24.2
Apr 17 Lecture 22: Shortest Path - Dijkstra Ch. 24.3
Apr 17 Lecture 23: Shortest Path - Floyd-Warshall Ch. 25
Apr 20 Lecture 24: Maximal Flow Ch. 26.1
Apr 22 Lecture 25: Maximal Flow- Ford-Fulkerson Ch. 26.2
Apr 24 Lecture 26: NP Completeness Ch. 34.1-34.3
Apr 27 Lecture 27: NP Complete Problems Ch. 34.4
Apr 29 Lecture 28: More NP Complete Problems Ch. 34.5
May 4 Lecture 29: Approximation Algorithms Ch. 35.1-35.2