| Date | Meeting | Material covered | Relevant reading | ||
| 3/25 | Lecture 1 | Introduction to course; Java review | slides; code | ||
| 3/26 | Lab 1 | Implementing an array-based list | |||
| 3/27 | No class; sorry | ||||
| 3/30 | Lecture 2 | Java review; generics; ADTs; List ADT | slides; code | ||
| 4/1 | Lecture 3 | Automated testing; more OurArrayList implementation | slides; code | ||
| 4/2 | Lab 2 | Testing PrintQueue | |||
| 4/3 | Lecture 4 | More testing practice | slides; handout; code | ||
| 4/6 | Lecture 5 | Interfaces and linked lists | slides; code | ||
| 4/8 | Lecture 6 | Practice with list methods and testing them | slides; code | ||
| 4/9 | Lab 3 | Testing and writing list methods | |||
| 4/10 | Lecture 7 | Implementing remove in a linked list; iterators | slides; code | ||
| 4/13 | Lecture 8 | Running times; Big-O | slides | ||
| 4/15 | Lecture 9 | taste of amortized time; Stack and Queue ADTs | slides | ||
| 4/16 | Lab 4 | Timing data structures | |||
| 4/17 | Exam 1 | ||||
| 4/20 | Lecture 10 | StringBuilder; design problems | slides; handout | ||
| 4/22 | Lecture 11 | Going over Exam 1; Sorting: comparators, selection sort, insertion sort, bubble sort | slides | ||
| 4/23 | Lab 5 | Searching for treasure | |||
| 4/24 | Lecture 12 | Insertion sort, bubblesort, logarithms, mergesort | slides | ||
| 4/27 | Lecture 13 | Quicksort; searching lab discussion; Set, Map, and Priority Queue ADTs | slides1; slides2; handout | ||
| 4/29 | Lecture 14 | Inheritance; binary search; trees | slides | ||
| 4/30 | Lab 6 | Building the friendship graph | |||
| 5/1 | Lecture 15 | Binary search tree operations; tree traversals | slides1; slides2 | ||
| 5/4 | Lecture 16 | Finishing tree traversals; recursion: Towers of Hanoi and finding subsets of 1..n | slides; code | ||
| 5/6 | Lecture 17 | Parallelism; fork-join; precedence graphs | slides | ||
| 5/7 | Lab 7 | Fork-join to count prime numbers | |||
| 5/8 | Lecture 18 | More fork-join | slides | ||
| 5/11 | Flunk Day! | ||||
| 5/13 | Exam 2 | ||||
| 5/14 | Lab 8 | Finding common queries | |||
| 5/15 | Lecture 19 | Heaps | slides | ||
| 5/18 | Lecture 20 | Bucket/radix sort; practice design problems | slides; handout | ||
| 5/20 | Lecture 21 | Hashing; more design problem practice | slides | ||
| 5/21 | Lab 9 | Reductions in parallel | |||
| 5/22 | Lecture 22 | ||||
| 5/25 | No class | ||||
| 5/27 | Lecture 23 | Meet via Zoom; answering questions and doing your design problems | |||
| 5/28 | No lab | ||||
| 5/29 | Reading Day | ||||
| 5/30 | Reading Day | ||||