| Moon's day | Woden's day | Thor's day | Frigga's day | 
|---|
| 
| Jan 13 |  | Prolegomena. General introductionSlides
 |  |  
 |  | 
| Jan 15 |  | Algorithms and correctnessSlides
 |  |  
 |  |  | 
| Jan 17 |  | Algorithms and correctness; algorithms and efficiencySlides
 |  |  
 |  | 
|  | 
| Jan 22 |  | Algorithms and efficiencySlides
 |  |  
 |  | 
| Jan 23 |  | Writing invariants |  |  
 |  | 
| Jan 24 |  | Algorithms and efficiency |  |  
 |  | 
| 
| Jan 27 |  | Abstract data typesSlides
 |  |  Implementing ADTs assigned
 |  |  | 
| Jan 30 |  | Basic data structures |  |  
 |  | 
| Jan 31 |  | Data structures; programming practicesSlides
 |  |  
 |  | 
| 
| Feb 3 |  | Case studies. Counting sortSlides
 Book excerpt
 |  |  Implementing ADTs due; linear sorting assigned
 |  |  |  | 
| Feb 7 |  | Disjoint sets and array forestsSlides
 |  |  
 |  | 
| 
| Feb 10 |  | Priority queues and heapsSlides
 |  |  Linear sorting due; heaps assigned
 |  | 
| Feb 12 |  | Priority queues and heaps |  |  Bit vectors assigned
 |  | 
| Feb 13 |  | N-sets and Bit vectors |  |  
 |  | 
| Feb 14 |  | Graphs. Concepts and implementationSlides
 |  |  
 |  | 
|  | 
| Feb 19 |  | TraversalSlides
 |  |  Heaps due
 |  |  | 
| Feb 21 |  | Minimum spanning treesSlides
 |  |  MST assigned
 |  | 
| 
| Feb 24 |  | Minimum spanning tree |  |  
 |  | 
| Feb 26 |  | Single source shortest pathsSlides
 |  |  MST due; SSSP assigned
 |  | 
| Feb 27 |  | Applied graph traversal |  |  
 |  | 
| Feb 28 |  | Single source shortest paths |  |  
 |  | 
|  |  | 
| Mar 6 |  | Basic binary search trees, pt 1 |  |  
 |  | 
| Mar 7 |  | Binary search trees. BST introSlides
 |  |  SSSP due; BST rotations assigned
 |  | 
|  |  |  |  | 
| 
| Mar 17 |  | Balanced BST problem; AVL treesSlides
 |  |  
 |  | 
| Mar 19 |  | AVL trees |  |  BST rotations due; AVL trees asigned
 |  | 
| Mar 20 |  | From BSTs to sorted arrays |  |  
 |  |  | 
| 
| Mar 24 |  | Left-leaning red-black treesSlides
 |  |  AVL trees due
 |  |  | 
| Mar 27 |  | Painting AVL trees red and black |  |  
 |  | 
| Mar 28 |  | Dynamic programming. IntroductionSlides
 |  |  Trad RB trees due
 |  | 
|  |  |  | 
| Apr 4 |  | Optimal BSTsSlides
 |  |  Optimal BSTs assigned
 |  | 
|  |  |  | 
| Apr 11 |  | Hash tables. Introduction and separate chainingSlides
 |  |  Optimal BSTs due
 |  | 
| 
| Apr 14 |  | Open addressingSlides
 |  |  Open addressing assigned
 |  |  |  |  | 
| 
| Apr 21 |  | Perfect hashingSlides
 |  |  Open addressing due; perfect hashing assigned
 |  | 
| Apr 23 |  | Hash table performanceSlides
 |  |  
 |  |  | 
| Apr 25 |  | Strings. Sorting stringsSlides
 |  |  
 |  | 
| 
| Apr 28 |  | TriesSlides
 |  |  Perfect hashing due; tries assigned
 |  | 
| Apr 30 |  | Regular expressionsSlides
 |  |  
 |  |  |  |