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 26 Divide-conquer: The power of recursive thinking. Warmup example: MINMAX. Reading: Chapter 1-2. | Aug 28 Sorting and selection: the good, the bad and the ugly. Reading: Chapter 6-7,9. |
| Sep 2 Sorting: the good, the bad and the ugly (HW0). Reading: Chapter 6-7,9 | Sep 4 Selection in linear-time! Classic algorithm by Blum, Floyd, Pratt, Rivest and Tarjan. Reading: Section 9.3. Original paper. |
| Sep 9 Lower bounds: why is this algorithm optimal? MIN and SORTING: adversary and counting arguments.
| Sep 11 Asymptotics: how to compare algorithms Recurrences. Summation Reading: Chapter 3. See extra notes on moodle. |
| Sep 16 Asymptotics and Recurrences (Chapter 3) | Sep 18 Asymptotics: recursive (recurrence) vs iterative (summation). Reading: Chapter 3. Appendix A. |
| Sep 23 Master Theorem. Integer multiplication: Karatsuba's algorithm (see also Section 4.2). Reading: Section 4.5. | Sep 25 Lightbulb problem (HW1): Boolean constraint satisfaction.
|
| Sep 30 Probabilistic algorithms. Random walk on a line (HW1). Reading: Chapter 5. | Oct 2 Dynamic programming: Longest common subsequence. Edit distance. Reading: Chapter 15. (4ed: Chapter 14, Section 4 and Exercise 14-5) |
| Oct 7 Greedy algorithms: interval packing (activity scheduling) Reading: Chapter 16, class notes. (4ed: Chapter 15, 15.1 (activity selection)) | Oct 9 Greedy Set Cover: (ln n)-approximation algorithm Harmonic numbers. Integral approximation of divergent sum. Reading: Chapter 35. |
| Oct 14 Short break (no class). | Oct 16 Guest lecture: Kun Han. Huffman coding. Reading: Chapter 16. (4ed: Chapter 15, 15.3 (Huffman codes)) |
| Oct 21 JabberWocky Reading: Shor's notes. | Oct 23 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 28 Amortization. The union-find data structure.
| Oct 30 Midterm. |
| Nov 4 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 6 Graph algorithms. Topological sort. Strongly connected components. Reading: Chapter 22-25. Figure 20.7 (topological sorting), Figure 20.9 (strongly connected component)) |
| Nov 11 More graph algorithms. Shortest Paths (Bellman-Ford, Dijkstra, Floyd-Warshall). Greedy and Dynamic Programming strikes again. Reading: Chapter 24-25. | Nov 13 More graph algorithms. |
| Nov 18 Maximum Flow. Ford-Fulkerson: augmenting paths. Edmonds-Karp. Reading: Chapter 26. (4ed: Chapter 24, Figures 24.6 and 24.7) | Nov 20 Maximum Flow and Minimum Cut (continued). |
| Nov 25 | Nov 27 Thanksgiving break.
|
| Dec 2 NP-completeness. How to cope with hard problems. Reading: Chapter 34. | Dec 4 More NP-completeness. Reading: Chapter 34. |