| Date | Reading | Topic | Lab | Reading Exercises Due |
| 9/2 | - | - | Set up Project 1 | - |
| 9/3 | Notes | Introduction Going over the Syllabus Python Review | - | - |
| 9/4 | - | - | Set Up Project 1 | - |
| 9/5 | Notes | Review of Object Oriented Programming in Python | - | - |
| 9/8 | Notes | Review of Object Oriented Programming in Python Testing and Debugging Project 1 due before the start of lecture | - | - |
| 9/9 | - | - | Project 2 | - |
| 9/10 | 2.1, 2.16 | Basic Data Structures | - | - |
| 9/11 | - | - | Project 2 | - |
| 9/12 | 2.2 - 2.6 | Link Lists | - | 2.1 - 2.4 |
| 9/15 | 2.7 - 2.10 | Double Link Lists Project 2 due before the start of lecture | - | - |
| 9/16 | - | - | Project 3 | - |
| 9/17 | Notes | Skip Lists | - | - |
| 9/18 | - | - | Project 3 | - |
| 9/19 | 3.1 - 3.3 | Basic data structures: stacks | - | 2.6 - 2.9 |
| 9/22 | 3.1 - 3.3 | Basic data structures: stacks | - | - |
| 9/23 | - | - | Project 3 | - |
| 9/24 | 3.4 - 3.6 | Basic data structures: Queues | - | - |
| 9/25 | - | - | Project 3 | - |
| 9/26 | 3.4 - 3.6 | Basic data structures: Queues | - | 3.1, 3.3 |
| 9/29 | Notes | Variations of stacks and queues Project 3 due before the start of lecture | - | - |
| 9/30 | - | - | Project 4 | - |
| 10/1 | 4.1 - 4.3 | Recursion | - | - |
| 10/2 | - | - | Project 4 | - |
| 10/3 | - | Test # 1 Preparation Lecture | - | 3.4, 3.6 |
| 10/6 | - | Test # 1 | - | - |
| 10/7 | - | - | No labs (Nobel) | - |
| 10/8 | - | No class (Nobel) | - | - |
| 10/9 | - | - | No labs | - |
| 10/10 | 4.1 - 4.3 | Recursion | - | 4.8, 4.9 |
| 10/13 | Notes | Backtracking | - | - |
| 10/14 | - | - | Project 4 | - |
| 10/15 | Notes | Backtracking | - | - |
| 10/16 | - | - | Project 4 | - |
| 10/17 | 5.1 - 5.3 | Selection sort Running time analysis Project 4 due before the start of lecture | - | 5.2, 5.4 |
| 10/20 | - | No class (Fall Break) | - | - |
| 10/21 | - | - | No lab (Fall Break) | - |
| 10/22 | - | No class (Fall Break) | - | - |
| 10/23 | - | - | No lab (Fall Break) | - |
| 10/24 | - | No class (Fall Break) | - | - |
| 10/27 | 5.4 - 5.5 | Insertion sort Running time analysis | - | - |
| 10/28 | - | - | Project 5 | - |
| 10/29 | 5.10 - 5.11 | Merge sort | - | - |
| 10/30 | - | - | Project 5 | - |
| 10/31 | 5.10 - 5.11 5.8 - 5.9 | Merge sort Quick sort | - | 5.8, 5.10 |
| 11/3 | 5.8 - 5.9 | Quicksort | - | - |
| 11/4 | - | - | Project 5 | - |
| 11/5 | 4.6, 4.7 | Runtime analysis | - | - |
| 11/6 | - | - | Project 5 | - |
| 11/7 | 15.1 - 15.3 | Dynamic programing vs Memoization | - | 15.1, 15.3 |
| 11/10 | 15.1 - 15.3 | Dynamic programing vs Memoization Project 5 due before the start of lecture | - | - |
| 11/11 | - | - | Project 6 | - |
| 11/12 | - | No class (Advising Day) | - | - |
| 11/13 | - | - | Project 6 | - |
| 11/14 | 15.4, 15.5 | Dynamic programing vs Memoization | - | 15.6, 15.7 |
| 11/17 | 15.6 | LCS | - | - |
| 11/18 | - | - | Project 6 | - |
| 11/19 | 15.6 | LCS | - | - |
| 11/20 | - | - | Project 6 | - |
| 11/21 | - | Test # 2 preparation lecture | - | 18.1 - 18.3 |
| 11/24 | - | Test # 2 Project 6 due before the start of lecture | - | - |
| 11/25 | - | - | No labs | - |
| 11/26 | - | No class (Thanksgiving) | - | - |
| 11/27 | - | - | No labs (Thankgiving) | - |
| 11/28 | - | No class (Thanksgiving) | - | - |
| 12/1 | 18.1 - 18.3 | Object Oriented Programming in Python | - | - |
| 12/2 | - | - | Project 7 | - |
| 12/3 | 18.1 - 18.3 | Object Oriented Programming in Python | - | - |
| 12/4 | - | - | Project 7 | - |
| 12/5 | 18.1 - 18.3 | Object Oriented Programming in Python | - | 19.1 - 19.3 |
| 12/8 | notes | Polymorphism | - | - |
| 12/9 | - | - | Project 7 | - |
| 12/10 | notes | Java Generics | - | - |
| 12/11 | - | - | Project 7 | - |
| 12/12 | 19.5, 19.10 | Test 3 preparation lecture | - | 19.5, 19.10, 19.11 |
| 12/15 | - | Test # 3 Project 7 is due by midnight (no late projects will be accepted!!!!) | - | |