| Lecture no. | Topics | Slides (PDF) | Slides-annotated (PDF) | Slides (PPT) | Reading - Comments |
|---|---|---|---|---|---|
| Lecture 1 (1/6) | Administrivia, Introduction | L1 | L1 | ||
| Lecture 2 (1/8) | Review of basic concepts | [GT] Sections 1.1, 1.2, 1.3, Chapter 2, Sections 3.1, 5.2.2 | |||
| Lecture 3 (1/13) | Divide and conquer, mergesort, counting intersections | [GT] Sections 8.1, 8.2, 11.1, 11.2, 11.3, 11.4 | |||
| Lecture 4 (1/15) | Divide and conquer (continued) | [GT] Sections 8.1, 8.2, 11.1, 11.2, 11.3, 11.4 | |||
| Lecture 5 (1/20) | Divide and conquer (continued) | [GT] Sections 8.1, 8.2, 11.1, 11.2, 11.3, 11.4 | |||
| Lecture 6 (1/22) | Divide and conquer (continued) | [GT] Sections 8.1, 8.2, 11.1, 11.2, 11.3, 11.4 | |||
| Lecture 7 (1/27) | Midterm 1 | ||||
| Lecture 8 (1/29) | Dynamic Programming: Introduction. Memoization, Rod cutting and 0/1 Knapsack problems | [GT] Chapter 12 | |||
| Lecture 9 (2/3) | Dynamic Programming: 0/1 Knapsack (cont.), Bellman-Ford, Interval Scheduling | [GT] Chapter 12 | |||
| Lecture 10 (2/5) | Dynamic Programming (cont.) | [GT] Chapter 12 | |||
| Lecture 11 (2/10) | Midterm 2 | ||||
| Lecture 12 (2/12) | Max flow, bipartite matching | [GT] Sections 16.1, 16.2, 16.3, 16.4 | |||
| Lecture 13 (2/17) | Max flow, bipartite matching, further examples | [GT] Sections 16.1, 16.2, 16.3, 16.4 | |||
| Lecture 14 (2/19) | Greedy method, Fractional Knapsack | [GT] Sections 10.1, 10.2 | |||
| Lecture 15 (2/24) | Minimum spanning trees | [GT] Sections 15.1, 15.2, 15.3 | |||
| Lecture 16 (2/26) | More problems on greedy | [GT] Sections 10.1, 10.2 | |||
| Lecture 17 (3/3) | Midterm 3 | ||||
| Lecture 18 (3/5) | NP-completeness, reductions | [GT] Chapter 17, NOT part of the final exam | |||
| Lecture 19 (3/10) | Recap | Dynamic Programming, Divide and Conquer | |||
| Lecture 20 (3/12) | Recap | Greedy, Maxflow, MSTs |