Lecture notes
Notes will usually be posted the day before lecture.
Course outline
[pdf] |
Lecture 1 (Jan 10): course introduction [pdf] [one]
|
Lecture 2 (Jan 12): solving recurrence [pdf] [one]
|
Lecture 3 (Jan 17): divide and conquer [pdf] [one]
|
Lecture 4 (Jan 19): divide and conquer II [pdf] [one]
|
Lecture 5 (Jan 24): breadth first search [pdf] [one]
|
Lecture 6 (Jan 26): depth first search [pdf] [one]
|
Lecture 7 (Jan 31, Feb 2): directed graphs [pdf] [one]
|
Lecture 8 (Feb 7): greedy algorithms [pdf] [one]
|
Lecture 9 (Feb 9): single-source shortest paths [pdf] [one]
|
Lecture 10 (Feb 14): minimum spanning trees [pdf] [one]
|
Lecture 11 (Feb 16,28): dynamic programming I [pdf] [one]
|
Lecture 12 (Mar 2): dynamic programming II [pdf] [one]
|
Lecture 13 (Mar 7): dynamic programming on trees [pdf] [one]
|
Lecture 14 (Mar 7,14): dynamic programming on graphs [pdf] [one]
|
Lecture 15 (Mar 16,21): maximum flows and minimum cuts [pdf] [one]
|
Lecture 16 (Mar 23): applications of max-flows min-cuts [pdf] [one]
|
Lecture 17 (Mar 28): polynomial time reductions [pdf] [one]
|
Lecture 18 (Mar 30): NP-completeness [pdf] [one]
|
Lecture 19 (Apr 4): hard graph problems [pdf] [one]
|
Lecture 20 (Apr 6): hard partitioning problems [pdf] [one]
|