Schedule

Lecture recordings are available on Canvas.
Content Quizzes are available on Gradescope and are due Fridays at midnight.
Recitation Materials are available in this Google Drive.
Add the calendar of Homeworks, Exams, and Review sessions to your Google Calendar.

Date Topic Slides Code Reading
Introductions, Program Design    
Value-Oriented Programming
No Class: MLK Day
Functions, Lists and Recursion
Lists, Tuples, Nested Patterns  
Datatypes and Trees    
Tue 1/25
Trees and Binary Search  
BST Insert & Delete  
Generics and Higher-order Functions
Tue 2/1
Higher-order Functions: Transform and Fold  
Abstract Types: Sets  
Abstract Types: Finite Maps  
Tue 2/8
Typechecking
Midterm 1 Prior exams:
22sp:      
21fa:      
21sp:      
20fa:      
20sp:      
19fa:      
19sp:      
Options, Unit, Commands / Records
Mutable Data Structures, Abstract Stack Machine
Mutable Queues  
Iteration and Tail Recursion  
Tue 2/22
Closures and Objects  
GUI Design: Gctx and Widgets    
GUI Design: Widgets, Layout, and Events        
GUI Design: Events, Notifiers, and Controllers  
No Class
No Class: Spring Break
No Class: Spring Break
No Class: Spring Break
Transition to Java  
Tue 3/15
Java Basics: Classes, Interfaces    
Static Methods, Java Arrays      
Java ASM, Subtyping
Tue 3/22
Subtyping and Extension  
Midterm 2 Prior exams:
22sp:      
21fa:      
21sp:      
20fa:      
19fa:      
19sp:      
18fa:      
18sp:      
17fa:      
Java ASM, Dynamic Dispatch
Generic Types and Collections    
Overriding, Equality  
Enums, Iteration
Tue 4/5
Exceptions  
Java I/O  
I/O: Histogram Demo      
Tue 4/12
Swing I: Drawing and Event Handling      
Swing II: Inner Classes, Layout  
Fri 4/15
Swing III: MoD walkthrough, Paint Demo  
Mon 4/18
Swing IV: Paint Demo continued / Adapters and Design Patterns
Bonus Lecture: Code _is_ data  
Advanced Java: Concurrency, Hashing, Memory Management          
Semester Recap
Wed 4/27
Mon 5/9 9-11 AM Final Exam Prior exams:
22sp:      
21fa:        
21sp:      
20fa:      
20sp:      
19fa:      
19sp: