Algorithms (CS 6161) - Spring 2022
Instructor: Mohammad Mahmoody
Syllabus
You can find the syllabus here. There, you can find all the information about course's goals, plans, logistics, grading policy, etc.
Lectures
Below you can find the content of each class, toegether with the suggested readings. After each class, the recorded videos of that class will be available
here and the slides will be uploaded here.
The tentative schedule for the full semester is here.
- Class 27: Review.
- Class 26: Machine Learning II.
Reading: Chapter 2 of this book by Shalev-Shwartz and Ben-David
- Class 25: RSA, Machine Learning I.
Reading: Chapter 31.7 of CLRS and Chapter 1 of this book by Shalev-Shwartz and Ben-David.
- Class 24: Private Key encryption and Diffie-Hellman.
Reading: this lecture note by Boaz Barak.
- Class 23: Approximation II & Randomized Algorithms.
Reading: Chapter 35 of CLRS, and this lecture note by Jin-Yi Cai.
- Class 22: Approximation Algorithms.
Reading: Chapter 35 of CLRS.
- Class 21: Search to Decision Reduction, Starting Approximation Algorithms.
Reading: Chapter 34 of CLRS.
- Class 20: Proving Cook-Levin, NP-Complete Reductions .
Reading: Chapter 34 of CLRS.
- Class 19: Complexity Classes P, NP, NP-hardness and Karp Reductions.
Reading: Chapter 34 of CLRS.
- Class 18: Algorithms for Linear programming, Zero-Sum Games and the Min-Max Theorem .
Reading: These notes by Tim Roughgarden.
- Class 17: Max matching and liniear programming .
Reading: Chapters 26.3 and 29 of CLRS.
- Class 16: Finishing Maximum Flow and Mininum Cut.
Reading: Chapter 26 (parts 1,2) of CLRS.
- Class 15: Floyd-Warshall all pairs shortest paths. Starting Max flow.
Reading: Chapter 25 (part 2) of CLRS.
- Class 14: Bellman-Ford (single source) shortest paths.
Reading: Chapter 24 (parts 1,2).
- Class 13: Graph Traversal: BFS, Dijkstra's single source shortest paths.
Reading: Chapter 24.3 of CLRS.
- Class 12: Minimum Spanning Trees: Prim, Graph Traversal: DFS.
Reading: Chapter 22 of CLRS.
- Class 11: Minimum Spanning Trees: Kruskal.
Reading: Chapter 23 of CLRS.
- Class 10: Greedy Algorithms & Graphs.
Reading: Sections 16.1 and 16.2, B.4 of CLRS.
- Class 9: Dynamic Programmming.
Reading: Chapter 15 of CLRS.
- Class 8: Universal Hashing, A full construction.
Reading: Chapter 11 of CLRS.
- Class 7: Red-Black Trees. Starting Hashing.
Reading: Chapter 13 of CLRS.
- Class 6: Binary search trees.
Reading: Chapter 12 of CLRS.
- Class 5: Stack, queue, and heap (sort).
Reading: Chapters 10 and 6 of CLRS.
- Class 4: Quicksort, basics of probability.
Reading: Chapter 7 and Appendix C of CLRS. Optional (suggested, but not mandatory) reading: Chapter 5 of CLRS.
- Class 3: Matrix multiplication, Master theorem.
Reading: Chapter 4 of CLRS.
- Class 2: Insertion sort and merge sort.
Reading: Chapter 2 of CLRS.
- Class 1: A bird's view, and foundations.
Reading: Chapters 1 and 3 of CLRS.