| This schedule is tentative and likely to be revised. |
| Date | Topic | Slides | Code | Reading | Week 1 |
Lecture Videos |
Introductions, Program Design | Value-Oriented Programming | Week 2 |
Lecture Videos |
No Class: MLK Day | Functions, Lists, Recursion | Lists, Tuples, Nested Patterns | Week 3 |
Lecture Videos |
Datatypes and Trees | Tue 1/27 | Code check in after HW submission | Trees and Binary Search | BST Insert & Delete | Week 4 |
Lecture Videos |
Generics and Higher-order Functions I | Tue 2/3 | Higher-order Functions II: Transform and Fold | Abstract Types I: Sets | Week 5 |
Lecture Videos |
Abstract Types II: Finite Maps | Tue 2/10* | Typechecking | Options / Records / Unit, Sequencing, Commands | Week 6 |
Lecture Videos |
Midterm 1 |
Prior exams: 25fa: 25sp: 24fa: 24sp: 23fa: |
Mutable Data Structures, Abstract Stack Machine | Mutable Queues | Week 7 |
Lecture Videos |
Iteration and Tail Recursion | Tue 2/24 | Code check in after HW submission | Closures and Objects | GUI Design: Gctx and Widgets | Week 8 |
Lecture Videos |
GUI Design: Widgets, Layout, and Events | GUI Design: Events, Notifiers, and Controllers | No Class: Spring Break | No Class: Spring Break | No Class: Spring Break | No Class: Spring Break | Week 9 |
Lecture Videos |
Transition to Java | Tue 3/17 | Interfaces, Static Methods | Static Fields, Debugger, Java Arrays | Week 10 |
Lecture Videos |
Java Arrays continued, Resizable Arrays | Tue 3/24 | Code check in after HW submission | Java ASM and Subtyping | Java ASM, Dynamic Dispatch | Week 11 |
Lecture Videos |
Midterm 2 |
Prior exams: 25fa: 25sp: 24fa: 24sp: 23fa: |
Static members, Generic Types | Collections, Overriding, Equality | Week 12 |
Lecture Videos |
Equality, Iterators | Tue 4/7 | Enums, Exceptions | Exceptions continued, Java I/O | Week 13 |
Lecture Videos |
Java I/O: Histogram Demo | Swing I: Drawing and Event Handling | Thu 4/16 | Swing II: Inner Classes and Layout | Week 14 |
Lecture Videos |
Swing III: MoD | Tue 4/21 | Bonus Lecture: Code is data | Swing IV: Reimplementing Paint / MVC | Week 15 |
Lecture Videos |
Advanced Java: Concurrency / Hashing | Semester Recap | Wed 4/29 | Code check in after HW submission | Date and time TBA | Final Exam |
Prior exams: 25fa: 25sp: 24fa: 24sp: 23fa: |
|---|