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