Cormen, Leiserson, Rivest, Stein. Introduction to Algorithms. 4ed, MIT Press. (CLRS)
Jeff Erickson, "Algorithms", 1st edition, 2019.
link. (JeffE)
(Course outcomes) Upon the completion of this course, students will be able to:
| Aug 25 Divide-conquer: The power of recursive thinking. Warmup example: MINMAX. Reading: Chapter 1-2. | Aug 27 Sorting and selection: the good, the bad and the ugly. Reading: Chapter 6-7,9. |
| Sep 1 Sorting: the good, the bad and the ugly (HW0). Reading: Chapter 6-7,9 | Sep 3 Selection in linear-time! Classic algorithm by Blum, Floyd, Pratt, Rivest and Tarjan. Reading: Section 9.3. Original paper. |
| Sep 8 Lower bounds: why is this algorithm optimal? MIN and SORTING: adversary and counting arguments.
| Sep 10 Asymptotics: how to compare algorithms Recurrences. Summation Reading: Chapter 3. See extra notes on moodle. |
| Sep 15 Asymptotics and Recurrences (Chapter 3) | Sep 17 Asymptotics: recursive (recurrence) vs iterative (summation). Reading: Chapter 3. Appendix A. |
| Sep 22 Master Theorem. Integer multiplication: Karatsuba's algorithm (see also Section 4.2). Reading: Section 4.5. | Sep 24 Lightbulb problem (HW1): Boolean constraint satisfaction.
|
| Sep 29 Probabilistic algorithms. Random walk on a line (HW1). Reading: Chapter 5. | Oct 1 Dynamic programming: Longest common subsequence. Edit distance. Reading: Chapter 15. (4ed: Chapter 14, Section 4 and Exercise 14-5) |
| Oct 6 Greedy algorithms: interval packing (activity scheduling) Reading: Chapter 16, class notes. (4ed: Chapter 15, 15.1 (activity selection)) | Oct 8 Greedy Set Cover: (ln n)-approximation algorithm Harmonic numbers. Integral approximation of divergent sum. Reading: Chapter 35. |
| Oct 13 Short break (no class). | Oct 15 Huffman coding. Reading: Chapter 16. (4ed: Chapter 15, 15.3 (Huffman codes)) |
| Oct 20 JabberWocky Reading: Shor's notes. | Oct 22 Amortized analysis. Accounting method. Potential function. Sleator-Tarjan's Splay trees. Reading: Chapter 17. (4ed: Chapter 16) notes. Chapter 21. See also: CMU, Erickson, Stanford, Goemans, Mount. |
| Oct 27 Amortization. The union-find data structure.
| Oct 29 Midterm. |
| Nov 3 Graph algorithms. Breadth and Depth First Searches (BFS and DFS). Reading: Chapter 22-25. (4ed: Chapter 20, Figure 20.3 (BFS), Figure 20.4 (DFS). | Nov 5 Graph algorithms. Topological sort. Strongly connected components. Reading: Chapter 22-25. Figure 20.7 (topological sorting), Figure 20.9 (strongly connected component)) |
| Nov 10 More graph algorithms. Shortest Paths (Bellman-Ford, Dijkstra, Floyd-Warshall). Greedy and Dynamic Programming strikes again. Reading: Chapter 24-25. | Nov 12 Maximum Flow. Ford-Fulkerson: augmenting paths. Edmonds-Karp. Reading: Chapter 26. (4ed: Chapter 24, Figures 24.6 and 24.7) |
| Nov 17 NP-completeness. How to cope with hard problems. Reading: Chapter 34. | Nov 19 More NP-completeness. Reading: Chapter 34. |
| Nov 24 Quantum algorithms. | Nov 26 Thanksgiving break.
|
| Dec 1 Quantum algorithms. | Dec 3 Quantum algorithms. |