This is an archived course. A more recent version may be available at ocw.mit.edu.

 

Calendar

LEC # TOPICS KEY DATES
1 Dynamic optimality: binary search trees, analytic bounds, splay trees, geometric view, greedy algorithm  
2 Dynamic optimality: independent rectangle, Wilber, and Signed Greedy lower bounds; key-independent optimality; O(lg lg n)-competitive Tango trees  
3 Geometric data structures: orthogonal range queries, range trees, fractional cascading  
4 Geometric data structures: stabbing queries, interval trees, segment trees, priority search trees, windowing Assignment 1 due
5 Geometric data structures: kinetic data structures and ray shooting (1) Assignment 2 due
6 Geometric data structures: ray shooting (2), partition trees  
7 Strings: suffix tree, suffix array, document retrieval Assignment 3 due
8 Strings: level ancestor, static LCA (part 1)  
9

Strings: static LCA (part 2)

Integers: van Emde Boas, y-fast trees

Assignment 4 due
10 Integers: fusion trees  
11 Integers: predecessor lower bound via round elimination Assignment 5 due
12 Integers: sorting in linear time for w = O(lg2+εn), priority queues  
13 Integers: tree decompositions, marked ancestor upper bound, decremental connectivity in trees Assignment 6 due
14 Dictionaries: FKS and cuckoo hashing Project proposal due
15 Dictionaries: deterministic dictionaries Assignment 7 due
16 Dynamic graphs: dynamic trees (link-cut trees)  
17 Dynamic graphs: overview, Euler tour trees, dynamic connectivity in O(lg2 n) Assignment 8 due
18 Dynamic graphs: Ω(lg n) lower bound for dynamic connectivity  
19 Temporal data structures: persistence, retroactivity Assignment 9 due
20 External memory / cache-oblivious: models, B-trees  
21 External memory / cache-oblivious: ordered-file maintenance, list labeling, order queries, priority queues  
22 Succinct data structures: rank, select, tries  
23 Succinct data structures: compact suffix arrays and trees  
24-26 Student presentations Project paper due