Schedule

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: