Schedule

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
Recitation Materials
No Class: Labor Day
Functions, Lists and Recursion
Lists, Tuples, Nested Patterns  
Week 3 Lecture Videos
Recitation Materials
Datatypes and Trees    
Tue 9/10
Trees and Binary Search  
BST Insert & Delete  
Week 4 Lecture Videos
Recitation Materials
Generics and Higher-order Functions
Tue 9/17
Higher-order Functions: Transform and Fold  
Abstract Types: Sets  
Week 5 Lecture Videos
Recitation Materials
Abstract Types II: Sets & Finite Maps / Typechecking  
Tue 9/24
Typechecking
Midterm 1 Prior exams:
24fa:      
24sp:      
23fa:      
23sp:      
22fa:      
Week 6 Lecture Videos
Options / Records / Unit, Sequencing, Commands / Mutable State Aliasing
Mutable Data Structures, Abstract Stack Machine / NO RECITATIONS THIS WEEK
No Class: Fall Break
Week 7 Lecture Videos
Recitation Materials
ASM continued; Mutable Queues
Mutable Queues continued; Iteration and Tail Recursion
Iteration and Tail Recursion
Week 8 Lecture Videos
Recitation Materials
Closures and Objects; GUI Design: Gctx and Widgets    
Tue 10/15
GUI Design: Widgets, Layout, and Events          
GUI Design: Events, Notifiers, and Controllers      
Week 9 Lecture Videos
Recitation Materials
GUI Design: Events and Notifiers; Transition to Java
Java Basics: Classes, Interfaces
Thu 10/24
Static Methods, Java Arrays    
Week 10 Lecture Videos
Recitation Materials
Arrays Wrap-up / Debugger / Java ASM    
Java ASM, Dynamic Dispatch  
Thu 10/31
Java ASM, Dynamic Dispatch, Generic Types
Week 11 Lecture Videos
Recitation Materials
Generic Types and Collections      
Overriding, Equality
Enums, Iteration
Week 12 Lecture Videos
Recitation Materials
Exceptions    
Tue 11/12
Java I/O
Midterm 2 Prior exams:
24fa:      
24sp:      
23fa:      
23sp:      
22fa:      
Week 13 Lecture Videos
Recitation Materials
I/O: Histogram Demo      
Swing I: Drawing and Event Handling      
Thu 11/21
Swing II: Inner Classes and Layout  
Week 14 Lecture Videos
Swing III: MoD
Tue 11/26
Bonus Lecture: Code _is_ data / NO RECITATIONS THIS WEEK  
No Class: Thanksgiving Break
Week 15 Lecture Videos
Recitation Materials
Swing IV: Reimplementing Paint / Advanced Java    
MVC; Sustainability
Semester Recap
Week 16 Lecture Videos
Guest Lecture - Jane Street
Mon 12/9
Tue 12/17 12-2pm Final Exam Prior exams:
24fa:      
24sp:      
23fa:      
23sp:      
22fa:      
22sp:      
21fa: