| Date | Description |
|---|---|
| June 20 |
Abstract data types (ADT); worst case running time; big O, big Omega, big Theta; rules of sums and products for big O MW 2.1-2.4.2 |
| June 22 |
Dictionary ADT; implementations by unsorted and sorted arrays and linked lists; review of binary search trees MW 4.3 |
| June 27 |
Quicksort implemented recursively and using a stack; AVL trees: proof of logarithmic height MW 7.7.1, MW 4.4 Quicksort handout |
| June 29 |
AVL trees MW 4.4 |
| July 6 |
Splay trees MW 4.5 |
| July 11 |
Hashing MW 5.1-5.5 |
| July 13 |
Universal classes of hash functions; priority queue ADT and binary heaps MW 6.1-6.3 Universal classes of hash functions |
| July 18 |
BuildHeap; heapsort MW 6.3.4, MW 7.5 |
| July 25 |
Mergesort; introduction to graphs MW 7.6, MW 9.1 |
| July 27 |
Introduction to fork-join parallelism DG 2-3.3 |
| August 1 |
ForkJoin Framework and analyses DG 3.4-4 |
| August 3 |
Parallel prefix, pack, and sort DG 5 |
| August 8 |
Topological sort, adjacency lists, unweighted shortest path MW 9.1-9.3.1 |
| August 10 |
Unweighted shortest path analysis, Dijkstra's algorithm MW 9.3.1-9.3.2 |
| August 15 |
Dijkstra's algorithm analysis, Kruskal's algorithm MW 9.3.2, 9.5.2 |