Tentative Schedule
| Week | Day | Topics | Reading | Recordings |
|---|---|---|---|---|
| 1 | 1 | Introduction and OO Review | 1.1-1.5, Skim A1-A7 | Lecture 1 |
| 2 | UML, Arrays, and Memory | A8-9, B1 | Lecture 2 | |
| 3 | Exception Handling I | 1.6-1.7, A11-12 | Lecture 3 | |
| 2 | 1 | Exception Handling II | Lecture 4 | |
| 2 | Files and Directories | Lecture 5 | ||
| 3 | Binary Files and Object I/O | Lecture 6 | ||
| 4 | JavaFX Basics | JavaFX | Lecture 7 | |
| 3 | 1 | Event Handling and Inner Classes | slides | Lecture 8 |
| 2 | JavaFX and Event Handling | Event Handling | Lecture 9 | |
| 3 | FXML Markup Language | Reading slides | Lecture 10 | |
| 4 | Functional Programming I | Lecture 11 | ||
| 4 | 1 | Functional Programming II | slides | Lecture 12 |
| 2 | Algorithm Efficiency and Big-O | Lecture 13 | ||
| 3 | Exercise: Preparing for Midterm Exam I | Lecture 14 | ||
| 4 | Generics | Lecture 15 | ||
| 5 | 1 | Array Lists I | 2.1 | |
| 2 | Array Lists II | 2.2-2.4 | Lecture 17 | |
| 3 | Review | |||
| 4 | Midterm Exam I | |||
| 6 | 1 | Linked Lists I | 2.5 | Lecture 18 |
| 2 | Linked Lists II | 2.6 | Lecture 19 | |
| 3 | Iterators | 2.7-2.10 | Lecture 20 | |
| 4 | Testing | 3 | Lecture 21 | |
| 7 | 1 | Catch-Up | Lecture 22 | |
| 2 | Stacks and Queues | 4.1-4.7 | Lecture 23 | |
| 3 | Circular Queues | Lecture 24 | ||
| 4 | More Iterators | Lecture 25 | ||
| 8 | 1 | Binary Search | 5.3 | Lecture 26 |
| 2 | Recursion I | 5.1-5.2 | Lecture 27 | |
| 3 | Recursion II | 5.3-5.6 | Lecture 28 | |
| 4 | Binary Trees and Binary Search Trees | 6.1, 6.3 | Lecture 29 | |
| 9 | 1 | Binary Search Trees | 6.5 | Lecture 30 |
| 2 | Trees and Tree Traversals | 6.2, 6.4 | ||
| 3 | Exercised: Preparing for Midterm Exam II | |||
| 4 | Catch Up | |||
| 10 | 1 | Catch Up | ||
| 2 | Review | |||
| 3 | Practice Exam | |||
| 4 | Midterm Exam II | |||
| 11 | 1 | Sets and Maps | 7.1-7.2 | |
| 2 | Hash Tables | 7.3-7.4 | ||
| 3 | Hashing and Collision Handling | 7.5-7.6 | ||
| 4 | More Collision Handling | |||
| 12 | 1 | Selection and Insertion Sort | 8.1-8.3 | |
| 2 | Shell and Merge Sort | 8.4-8.6 | ||
| 3 | TimSort and QuickSort | 8.7-8.9 | ||
| 4 | Class Exercise | |||
| 13 | 1 | Asymptotic Time Complexity revisited | ||
| 2 | Asymptotic Space Complexity | |||
| 3 | No class (Happy Thanksgiving) | |||
| 14 | 1 | Tree Rotations | 9.1 | |
| 2 | AVL Trees | 9.2 | ||
| 3 | More Trees | |||
| 4 | Deep and Shallow Copies | |||
| 15 | 1 | How to Pick a Data Structure | ||
| 2 | Exercise: Choosing a Data Structure | |||
| 3 | Exercise: Final Exam Study Prep | |||
| 4 | Review | |||
| 16 | Common Final Exam | |||