This page links to lecture notes.

All reading materials are from the course textbook:

Introduction to Algorithms - 3rd ed. (CLRS)

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