| Date | Meeting | Material covered | Relevant reading |
| 1/5 | Lecture 1 | Introductions and review; Begin War game | notes |
| 1/7 | Lecture 2 | Using Unix/emacs; toString and shuffling in War game | notes |
| 1/8 | Lab 1 | Accessing Euclid, using Unix, Java practice | |
| 1/9 | Lecture 3 | HW and lab debrief; more practice: compareValueTo and using it | notes |
| 1/12 | Lecture 4 | List ADT; begin array-based implementation | Sections 3.2 and 5.2; notes |
| 1/14 | Lecture 5 | Finish array-based list; testing | Section 2.2; notes |
| 1/15 | Lab 2 | Testing w/ OurList | |
| 1/16 | Lecture 6 | Testing | notes |
| 1/19 | Lecture 7 | Implementing and testing remove and removeAll; begin running times | notes |
| 1/21 | Lecture 8 | Running times and O-notation; linked lists | notes |
| 1/22 | Lab 3 | Implementing linked list methods | |
| 1/23 | Lecture 9 | Lab debrief; removing from linked list; comparative running times | Sections 3.3-3.4; notes |
| 1/26 | Lecture 10 | HW4 debrief (test cases); writing removeDups | |
| 1/28 | Exam 1 | ||
| 1/29 | Lab 4 | GUIs | |
| 1/30 | Lecture 11 | Iterators; Queues | Sections 5.3-5.5 and Chapter 7; calculator code |
| 2/2 | Lecture 12 | Queues in Java; Stacks | Chapter 6; story time |
| 2/4 | Lecture 13 | More iterators; Scanner; binary search | Section 9.5; code |
| 2/5 | Lab 5 | Bouncing ball (animation) | |
| 2/6 | Lecture 14 | Running time for binary search; Sorting: Selection sort, Insertion sort, Bubble sort, Merge sort | Sections 9.1, 9.2.1-9.2.2, 9.2.4 |
| 2/9 | Lecture 15 | Quicksort; Comparable and comparators; begin trees | Sections 9.2.3, 9.3, and 10.1 |
| 2/11 | Lecture 16 | Binary search trees | Sections 10.1, 10.3, 10.4, 11.1-11.3 |
| 2/12 | Lab 6 | RPN Calculator | |
| 2/13 | Lecture 17 | AVL trees; Set ADT | Section 11.4 |
| 2/16 | Lecture 18 | Map ADT | Section 12.1Your design problems |
| 2/18 | Exam 2 | ||
| 2/19 | Lab 7 | Timing data structures | |
| 2/20 | Lecture 19 | Lab discussion; Tree traversals | Section 10.2.2 |
| 2/23 | Lecture 20 | Priority Queue ADT and heaps | Section 10.5 |
| 2/25 | Lecture 21 | Bucket and radix sorting; begin hashing (closed addressing) | Sections 12.2-12.3 |
| 2/26 | Lab 8 | Analyzing Friends networks (Graphs) | |
| 2/27 | Lecture 22 | Open addressing; Multimap; Begin graphs | Sections 12.4-12.5 and 13.1-13.2 |
| 3/2 | Lecture 23 | Graph representations and traversals | Sections 13.2-13.3 |
| 3/4 | Lecture 24 | ||
| 3/5 | Lab 9 | ||
| 3/6 | No class | ||
| 3/9 | Lecture 26 | ||
| 3/11 | Reading Day | ||