Schedule

This schedule is tentative and likely to be revised.

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