Lecture Notes

Lecture 0 Notes -- Coin Flipping, 1/15 and 1/20: PDF

Other Coin Flipping Notes: PDF

Notes 1, 1/25: PDF -- Algorithm Overview, Fibonacci

Notes 2, 1/27: PDF -- O notation, recurrences, mergesort

Notes 3, 2/1: PDF -- Graphs, DFS

Notes 4, 2/3: PDF -- BFS, Weighted graphs, Djikstra's

Notes 5, 2/8: PDF -- Minimum Spanning Trees

Notes 6, 2/10: PDF -- Union Find

Notes 7, 2/17: PDF -- Greedy Algorithms

Notes 8, 2/22: PDF -- Divide and Conquer

Notes 9, 2/24,3/3: PDF -- Dynamic programming (full)

Notes 10, 3/10: PDF -- Hashing + Bloom Filters

[If you want to see the survey article from long ago on Applications of Bloom Filters, here it is -- not required reading]

Notes 11, 3/15: PDF -- Fingerprinting

Notes 12, 3/22: PDF -- Document similarity

[If you want to see the slides for locality sensitive hashing, they can be found here -- not required. But I gave something like the class lecture as an intro to some work on computational biology done at the Broad Institute you might find interesting.]

Notes 13, 3/24: PDF -- Primality testing

Notes 14, 3/24: PDF -- RSA Cryptography

Notes 15, 3/29: PDF -- 2SAT

Notes 16, 4/5: PDF -- Linear Programming

Notes 17, 4/7: PDF -- Network Flow