You are on page 1of 2

LEC #

TOPICS

READINGS

Introduction and document distance L1 L2 Introduction and document distance More document distance, mergesort CLRS, chapters 1-3 CLRS, sections 11.1-11.2

Binary search trees L3 Airplane scheduling, binary search trees CLRS, chapter 10 and sections 12.112.3 CLRS, sections 13.1 and 13.2 for a different approach (red-black trees)

L4

Balanced binary search trees

Hashing L5 L6 L7 Sorting L8 L9 L10 L11 Sorting I: heaps Sorting II: heaps Sorting III: lower bounds, linear-time sorting Sorting IV: stable sorting, radix sort CLRS, sections 2.1-2.3 and 6.1-6.2 CLRS, sections 6.1-6.4 CLRS, sections 8.1-8.4 Hashing I: chaining, hash functions Hashing II: table doubling, Karp-Rabin Hashing III: open addressing CLRS, chapter 17 and section 32.2 CLRS, section 11.4 (and 11.3.3 and 11.5 if interested)

Searching L12 Searching I: graph search, representations, and applications Searching II: breadth-first search and depth-first search Searching III: topological sort and NPcompleteness CLRS, sections 22.1-22.3 and B.4

L13

CLRS, sections 22.2-22.3 CLRS, sections 22.4 and 34.1-34.3 (at a high level)

L14

Shortest paths L15 L16 L17 L18 Shortest paths I: intro Shortest paths II: Bellman-Ford Shortest paths III: Dijkstra Shortest paths IV: Dijkstra speedups CLRS, sections 24.2-24.3 Wagner, Dorothea, and CLRS, chapter 24 (intro)

Thomas Willhalm. "Speed-Up Techniques for Shortest-Path Computations." InLecture Notes in Computer Science: Proceedings of the 24th Annual Symposium on Theoretical Aspects of Computer Science. Berlin / Heidelberg: Springer, 2007. ISBN: 9783540709176. Read up to section 3.2. Dynamic programming L19 Dynamic programming I: memoization, Fibonacci, Crazy Eights, guessing Dynamic programming II: longest common subsequence, parent pointers Dynamic programming III: text justification, parenthesization, knapsack, pseudopolynomial time, Tetris training For fun, see papers on piano fingering and polyphonic piano fingering via DP: Parncutt, Richard, et al. "An Ergonomic Model of Keyboard Fingering for Melodic Fragments." Music Perception 14, no. 4 (1997): 341-382. Al Kasimi, Alia, Eric Nichols, and Christopher Raphael. "A Simple Algorithm for Automatic Generation of Polyphonic Piano Fingerings." In Proceedings of the 8th International Conference on Music Information Retrieval, 2007, pp. 355-356. For fun, watch the Metamorphosis of the Cube video, which illustrates a folding DP. CLRS, chapter 15

L20

L21

L22

Dynamic programming IV: piano fingering, structural DP (trees), vertex cover, dominating set, and beyond

Numerics L23 L24 Numerics I Numerics II

Beyond 6.006

L25

Beyond 6.006: follow-on classes, geometric folding algorithms

You might also like