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