This schedule is tentative and likely to be revised. |
Date | Topic | Slides | Code | Reading | Week 1 |
Videos |
Introductions, Program Design |
|
Value-Oriented Programming | Week 2 |
Videos |
No Class: MLK Day | Functions, Lists and Recursion - (Dr. Weirich lectures) | Lists, Tuples, Nested Patterns - (Dr. Weirich lectures) |
|
Week 3 |
Videos |
Datatypes and Trees |
|
Tue 1/24 | Trees and Binary Search |
|
BST Insert & Delete |
|
Week 4 |
Videos |
Generics and Higher-order Functions | Tue 1/31 | Higher-order Functions: Transform and Fold |
|
Abstract Types: Sets |
|
Week 5 |
Videos |
Abstract Types: Finite Maps |
|
Tue 2/7 | Typechecking | Midterm 1 |
Prior exams: 23sp: 22fa: 22sp: 21fa: 21sp: |
Week 6 |
Videos |
Options, Unit, Commands / Records / Mutable State Aliasing | Mutable Data Structures, Abstract Stack Machine |
|
Mutable Queues |
|
Week 7 |
Videos |
Iteration and Tail Recursion |
|
Tue 2/21 | Closures and Objects |
|
GUI Design: Gctx and Widgets |
|
Week 8 |
Videos |
GUI Design: Widgets and Events |
|
GUI Design: Notifiers, Controllers, and Buttons |
|
Bonus Lecture: Code _is_ data |
|
No Class: Spring Break | No Class: Spring Break | No Class: Spring Break | Week 9 |
Videos |
Transition to Java | Tue 3/14 | Java Basics: Classes, Interfaces | Static Methods, Java Arrays |
|
Week 10 |
Videos |
Java ASM, Subtyping |
|
Tue 3/21 | Subtyping and Extension, Java ASM |
|
Midterm 2 |
Prior exams: 23sp: 22fa: 19sp (recommended): 19fa (recommended): 18sp (recommended): 18fa (recommended): |
Week 11 |
Videos |
Java ASM, Dynamic Dispatch, Generic Types | Generic Types and Collections |
|
Overriding, Equality | Week 12 |
Videos |
Enums, Iteration | Tue 4/4 | Exceptions | Java I/O | Week 13 |
Videos |
I/O: Histogram Demo | Tue 4/11 | Swing I: Drawing and Event Handling | Swing II: Inner Classes, Layout, Reimplementing Paint | Week 14 |
Videos |
Swing III: MoD, Adapters, Design Patterns | Tue 4/18 | Swing IV: Reimplementing Paint / Design Patterns / Lambdas / Streams | Guest Lecture | Week 15 |
Videos |
Advanced Java: Concurrency, Hashing, Memory Management | Semester Recap | Wed 4/26 | TBD | Final Exam |
Prior exams: 22fa: 22sp: 21fa: 21sp: 20fa: 20sp: |
---|