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: Labor Day | Functions, Lists and Recursion | Lists, Tuples, Nested Patterns |
|
Week 3 Videos |
Datatypes and Trees |
|
Tue 9/14 | Trees and Binary Search |
|
BST Insert & Delete |
|
Week 4 Videos |
Generics and Higher-order Functions | Tue 9/21 | Higher-order Functions: Transform and Fold |
|
Abstract Types: Sets |
|
Week 5 Videos |
Abstract Types: Sets & Finite Maps |
|
Tue 9/28 | Typechecking | Midterm 1 |
Prior exams: 21fa: 21sp: 20fa: 20sp: 19fa: 19sp: |
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 10/12 | Closures and Objects / NO RECITATIONS THIS WEEK | No Class: Fall Break |
Week 8 Videos |
GUI Design: Gctx and Widgets |
|
GUI Design: Widgets, Layout, and Events |
|
GUI Design: Events, Notifiers, and Controllers |
|
Week 9 Videos |
Transition to Java | Tue 10/26 | Java Basics: Classes, Interfaces | Static Methods, Java Arrays |
|
Week 10 Videos |
Java ASM, Subtyping | Tue 11/2 | Java ASM, Dynamic Dispatch |
|
Midterm 2 |
Prior exams: 21fa: 21sp: 20fa: 19fa: 19sp: 18fa: |
Week 11 Videos |
Java ASM, Dynamic Dispatch, Generic Types | Generic Types and Collections |
|
Overriding, Equality |
Week 12 Videos |
Enums, Iteration | Tue 11/16 | Exceptions | Java I/O |
Week 13 Videos |
I/O: Histogram Demo |
|
Tue 11/23 | Bonus Lecture: Code _is_ data / NO RECITATIONS THIS WEEK |
|
No Class: Thanksgiving Break |
Week 14 Videos |
Swing I: Drawing and Event Handling |
|
Tue 11/30 | Swing II: Inner Classes, Layout, Reimplementing Paint |
|
Swing III: MoD, Adapters, Design Patterns |
Week 15 Videos |
Swing IV: Reimplementing Paint / Design Patterns / Lambdas / Streams |
|
Advanced Java: Concurrency, Hashing, Memory Management |
|
Semester Recap | Fri 12/10 | Fri 12/17 | Final Exam (see details on Piazza) |
Prior exams: 21fa: 21sp: 20fa: 20sp: 19fa: 19sp: |
---|