Rough schedule for 332 Summer quarter

Week 1: Introduction; Stacks & Queues; Start Math Review; Algorithm & Asymptotic Analysis; Priority Queues

Week 2: More Priority Queues/Binary Heaps; Dictionaries; Binary Search Trees; AVL Trees

Week 3: Holiday; Memory Hierarchy; BTrees

Week 4: Hashing; Introduction to sorting; About the midterm

Week 5: Midterm; Comparison sorting; Beyond comparison sorting

Week 6: Introduction to graphs; Introduction to multithreading & fork-join parallelism; Analysis of Fork-Join Parallel Programs; Parallel Prefix

Week 7: Finish Parallel Prefix; Parallel Sorting; Amortized Analysis; Concurrency and Mutual Exclusion; Locks and Critical Sections

Week 8: Remaining Topics in Shared-Memory Concurrency; Topological Sort; Graph Traversals; Shortest Paths; Start MST

Week 9: Minimum Spanning Trees; A Few Words on NP; About the final; Final