This schedule is tentative and likely to be revised. |
Date | Topic | Slides | Code | Reading | Week 1 |
Lecture Videos |
Introductions, Program Design (ZOOM only, access link via canvas) |
|
Week 2 |
Lecture Videos Recitation Materials |
Value-Oriented Programming | Functions, Lists and Recursion |
|
Lists, Tuples, Nested Patterns |
|
Week 3 |
Lecture Videos Recitation Materials |
Datatypes and Trees |
|
Tue 1/30 | Trees and Binary Search |
|
BST Insert & Delete |
|
Week 4 |
Lecture Videos Recitation Materials |
Generics and Higher-order Functions |
|
Tue 2/6 | Higher-order Functions: Transform and Fold |
|
Abstract Types: Sets |
|
Week 5 |
Lecture Videos Recitation Materials |
Abstract Types II: Sets & Finite Maps |
|
Tue 2/13 | Typechecking / Options | Midterm 1 |
Prior exams: 24sp: 23fa: 23sp: 22fa: 22sp: 21fa: |
Week 6 |
Lecture Videos Recitation Materials |
Options, Unit, Commands | Mutable Data Structures, Abstract Stack Machine |
|
Mutable Queues |
|
Week 7 |
Lecture Videos Recitation Materials |
Iteration and Tail Recursion | Tue 2/27 | Closures and Objects |
|
No Class | No Class: Spring Break | No Class: Spring Break | No Class: Spring Break | Week 8 |
Lecture Videos Recitation Materials |
GUI Design: Gctx and Widgets |
|
GUI Design: Widgets, Layout, and Events |
|
GUI Design: Events, Notifiers, and Controllers |
|
Week 9 |
Lecture Videos Recitation Materials |
Transition to Java | Tue 3/19 | Java Basics: Classes, Interfaces | Midterm 2 |
Prior exams: 24sp: 23fa: 23sp: 22fa: 22sp: 21fa: |
Week 10 |
Lecture Videos Recitation Materials |
Static Methods, Java Arrays |
|
Resizable Arrays, Java ASM |
|
Subtyping and Inheritance |
|
Week 11 |
Lecture Videos Recitation Materials |
Java ASM, Dynamic Dispatch | Tue 4/2 | Generic Types and Collections |
|
Overriding, Equality | Week 12 |
Lecture Videos Recitation Materials |
Enums, Iteration | Tue 4/9 | Exceptions |
|
Java I/O | Week 13 |
Lecture Videos Recitation Materials |
I/O: Histogram Demo |
|
Tue 4/16 | Swing I: Drawing and Event Handling |
|
Thu 4/18 | Swing II: Inner Classes | Week 14 |
Lecture Videos |
Swing III: Layout and MoD |
|
Advanced Java |
|
Bonus lecture: Code is data | Week 15 |
Lecture Videos |
OCaml at Jane Street | Tue 4/30 | Semester Recap | Tues, 5/7 3-5pm | Final Exam |
Prior exams: 24sp: 23fa: 23sp: 22fa: 22sp: 21fa: 21sp: 20fa: |
---|