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