The following schedule is subject to change based on the progress of the class.
| Date | Topic | Assignment Out |
|---|---|---|
| 9/7 | Introduction | |
| 9/9 | Java Syntax 101; Memory models & arrays | |
| 9/12 | OOP pt. 1: classes | |
| 9/14 | OOP pt. 2: interfaces & inheritance; scope | A2 |
| 9/16 | OOP pt. 3: generics (ArrayLists) | |
| 9/19 | Maps (python alias: Dictionaries) | |
| 9/21 | HashTable implementation | A3 |
| 9/23 | HashMaps, Sets, etc. | |
| 9/26 | Exceptions & Testing | |
| 9/28 | Stacks & Queues & Deques, oh my! | A4 |
| 9/30 | Implementation | |
| 10/3 | Recursion | |
| 10/5 | Wrapping up recursion | A5 |
| 10/7 | Sequence operations: split and append | |
| Fall Break | ||
| 10/12 | Lists & iterators | |
| 10/14 | Insert and remove | Midterm |
| 10/17 | Midterm review | A6 |
| 10/19 | Copying lists | |
| 10/21 | Choosing the right data structure | |
| 10/24 | Sorting pt. 1: Algorithms | |
| 10/26 | Sorting pt. 2: on specific data structures | A7 |
| 10/28 | Builtin sort on collections | |
| 10/31 | Trees | |
| 11/2 | Binary trees | A8 |
| 11/4 | Traversal | |
| 11/7 | Binary Search Trees | |
| 11/9 | TreeMap, TreeSet, etc. | A9 |
| 11/11 | Data Structure “mashups” | |
| 11/14 | Graphs | |
| 11/16 | Third-party packages: guava |
FP1 |
| 11/18 | Adjacency Matrices, Edge Matrices, Linked structures | |
| 11/21 | Special topic: Graphics in Java | |
| Thanksgiving Break | ||
| 11/28 | Traversal | |
| 11/30 | Shortest path | FP2 |
| 12/2 | Maxflow / mincut | |
| 12/5 | TBD | |
| 12/7 | TBD | |
| 12/9 | Semester review | (Mastery / Catch Up) |
| 12/12 | Final Project Demonstration Day | |
| Final Exams | ||