This schedule is tentative and likely to be revised. |
Date | Topic | Slides | Code | Reading | 1: Introductions, Program Design, and Value-Oriented Programming |
|
2: Lists, Pattern Matching, and Recursion |
|
3: Tuples, Nested Patterns, Datatypes, and Trees |
|
4: Trees and Binary Search Trees |
|
Sat 5/27 | Memorial Day Observed (no classes) | 5: Generics and Higher-order Functions: Transform and Fold |
|
6: Abstract Types: Sets |
|
7: Abstract Types: Finite Maps, Typechecking |
|
Sat 6/3 | 8: Options, Programming with mutable data structures |
|
9: Mutable Data Structures, Abstract Stack Machine, Reference Equality, and Mutable Queues |
|
10: Iteration and Tail Recursion |
|
11: Closures and Objects, Review |
|
Sat 6/10 | 12: Transition to Java, Java Basics: Classes, Interfaces | Mon 6/12 - Tue 6/13 | Midterm 1 |
Prior exams: 22su: 22sp: 21fa: 21su: 21sp: 20fa: 20su: |
13: Java Static Methods and Arrays |
|
14: Resizeable Arrays and Java ASM |
|
15: Java ASM, Subtyping |
|
Sat 6/17 | Juneteenth Observed (no classes) | 16: Static Types vs. Dynamic Classes, Generic Types and Collections, Overriding, Equality | 17: Enumerations and Iteration | 18: Exceptions | Sat 6/24 | 19: I/O & Histogram Demo | Bonus Lecture: Code _is_ data | Semester Recap | Wed 6/28 - Thu 6/29 | Midterm 2 |
Prior exams: 22su: 22sp: 21fa: 21su: 21sp: 20fa: 20su: |
Sat 7/01 |
---|