Course Links

Exercises

Resources

External

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