Optional:
Jeff Erickson, "Algorithms", 1st edition, 2019.
link.
(Course outcomes) Upon the completion of this course, students will be able to:
| Aug 29 Divide-conquer: The power of recursive thinking. Warmup example: MINMAX. Reading: Chapter 1-2. | Aug 31 Sorting and selection: the good, the bad and the ugly. Reading: Chapter 6-7,9. |
| Sep 5 Sorting: the good, the bad and the ugly (HW0). Reading: Chapter 6-7,9 | Sep 7 Selection in linear-time! Classic algorithm by Blum, Floyd, Pratt, Rivest and Tarjan. Reading: Section 9.3. Original paper. |
| Sep 12 Lower bounds: why is this algorithm optimal? MIN and SORTING: adversary and counting arguments.
| Sep 14 Asymptotics: how to compare algorithms Recurrences. Summation Reading: Chapter 3. See extra notes on moodle. |
| Sep 19 No class. Makeup class: Mon 9/25. Asymptotics and Recurrences (Chapter 3) | Sep 21 Asymptotics: recursive (recurrence) vs iterative (summation). Reading: Chapter 3. Appendix A. |
| Sep 26 Master Theorem. Integer multiplication: Karatsuba's algorithm (see also Section 4.2). Reading: Section 4.5. | Sep 28 Lightbulb problem (HW1) Quiz 1. |
| Oct 3 Probabilistic algorithms. Random walk on a line (HW1). Reading: Chapter 5. | Oct 5 Dynamic programming: Longest common subsequence. Reading: Chapter 15. (4ed: Chapter 14, Section 4 (LCS)) |
| Oct 10 Short break (no class). | Oct 14 Dynamic programming. Edit distance. Reading: Chapter 15. (4ed: Chapter 14, Exercise 14-5 (edit distance)) |
| Oct 17 More Dynamic programming. Reading: Chapter 15. (4ed: Chapter 14) | Oct 19 Greedy algorithms: activity scheduling. Reading: Chapter 16, class notes. (4ed: Chapter 15, 15.1 (activity selection)) Quiz 2. |
| Oct 24 Compression: Huffman coding. Reading: Chapter 16. (4ed: Chapter 15, 15.3 (Huffman codes)) | Oct 26 Compression: JabberWocky (Lempel-Ziv). Reading: class notes. Also see notes (P. Shor). |
| Oct 31 Back to Dynamic Programming: Hidden Markov Model (HW2). Reading: Chapter 15. (4ed: Chapter 14) | Nov 2 Midterm. |
| Nov 7 Amortized analysis. Accounting method. Potential function. Reading: Chapter 17. (4ed: Chapter 16) | Nov 9 Amortization. Splay trees. (Omitted: Union Find). Reading: notes. Chapter 21. See also notes from the following sources: CMU, Erickson, Stanford, Goemans, Mount. |
| Nov 14 Graph algorithms. Breadth and Depth First Searches (BFS and DFS). Topological sort. Strongly connected components. Reading: Chapter 22-25. (4ed: Chapter 20, Figure 20.3 (BFS), Figure 20.4 (DFS), Figure 20.7 (topological sorting), Figure 20.9 (strongly connected component)) | Nov 16 Maximum-Flow. Ford-Fulkerson: augmenting paths. Reading: Chapter 26. (4ed: Chapter 24, Figure 24.6) |
| Nov 21 Optional Test. | Nov 23 Thanksgiving break.
|
| Nov 28 Maximum Flow Minimum Cut (Edmonds-Karp) Reading: Chapter 26. (4ed: Chapter 24, Figure 24.7) | Nov 30 Graph algorithms. Shortest Paths (Bellman-Ford, Dijkstra, Floyd-Warshall). Greedy and Dynamic Programming strikes again. Reading: Chapter 24-25. (4ed: Chapter 22, Figure 22.4 (Bellman-Ford), Figure 22.6 (Dijkstra)) (4ed: Chapter 23, Figure 23.1 (matrix multiplication), Figure 23.4 (Floyd-Warshall)) |
| Dec 5 NP-completeness. SAT, MAXCUT. Reading: Chapter 34. | Dec 7 More NP-completeness. Reading: Chapter 34. |