Lecture notes
Notes will usually be posted the day before lecture.
course outline
[pdf] 
Lecture 1 (May 11): course introduction [pdf] [one] [pptx] [pdf]

Lecture 2 (May 14): solving recurrence [pdf] [one] [pptx] [pdf]

Lecture 3 (May 19): divide and conquer [pdf] [one] [pptx] [pdf]

Lecture 4 (May 21): divide and conquer II [pdf] [one] [pptx] [pdf]

Lecture 5 (May 26): breadth first search [pdf] [one] [pptx] [pdf]

Lecture 6 (May 28): depth first search [pdf] [one] [pptx] [pdf]

Lecture 7 (June 2, June 4, June 9): directed graphs [pdf] [one] [pptx] [pdf]

Lecture 8 (June 11): greedy algorithms [pdf] [one] [pptx] [pdf]

Lecture 9 (June 16): Huffman coding [pdf] [one] [pptx] [pdf]

Lecture 10 (June 18): single source shortest paths [pdf] [one] [pptx] [pdf]

Lecture 11 (June 23): dynamic programming I [pdf] [one] [pptx] [pdf]
