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