The class is now over --- congrats everyone on a great quarter!
I've collected all the course materials into one PDF
that you might find useful as a reference.
Source code for all of the algorithms discussed is available here.
The course staff are really excited to meet everyone and get started learning, designing, and analyzing algorithms this summer! We will post a finalized syllabus here soon. In the meantime, here is some general logistics info. Please do email me if you have other questions!
Worst and average case analysis. Recurrences and asymptotics. Efficient algorithms for sorting, searching, and selection. Data structures: binary search trees, heaps, hash tables. Algorithm design techniques: divide-and-conquer, dynamic programming, greedy algorithms, amortized analysis, randomization. Algorithms for fundamental graph problems: minimum-cost spanning tree, connected components, topological sort, and shortest paths. Possible additional topics: network flow, string searching.
Prerequisite: 106B or 106X; 103 or 103B; 109 or STATS 116.