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
Trees and Binary Search
BST Insert & Delete
Week 4 Lecture Videos
Generics and Higher-order Functions
Tue 9/16
Higher-order Functions: Transform and Fold
Abstract Types: Sets
Week 5 Lecture Videos
Abstract Types II: Sets
Tue 9/23*
Finite maps and Typechecking
Midterm 1 Prior exams:
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
Closures and Objects
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
Tue 10/21
Interfaces, Static Methods
Arrays and Java ASM
Week 10 Lecture Videos
Java ASM, Subtyping and Extension
Java ASM, Dynamic Dispatch
Static members and Generic Types
Week 11 Lecture Videos
Collections, Overriding, Equality
Tue 11/4
Overriding Equality
Midterm 2 Prior exams:
25sp:      
24fa:      
24sp:      
23fa:      
Week 12 Lecture Videos
Iterators, Enums, Exceptions
Java I/O
I/O: Histogram Demo
Week 13 Lecture Videos
Swing I: Drawing and Event Handling
Tue 11/18
Swing II: Inner Classes and Layout
Thu 11/20
Swing III: MoD
Week 14 Lecture Videos
Swing IV: Reimplementing Paint / Advanced Java
Tue 11/25
Bonus Lecture: Code _is_ data
No Class: Thanksgiving Break
Week 15 Lecture Videos
MVC / Advanced Java I
Advanced Java II: Concurrency, Hashing
Guest Lecture TBA
Week 16 Lecture Videos
Semester Recap
Mon 12/8
TBA Final Exam Prior exams:
25sp:      
24fa:      
24sp:      
23fa: