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