Lecture recordings are available on Canvas. | |
Content Quizzes are available on Gradescope and are due Saturdays 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 | 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/28 | 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/4 | 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/11 | 12: Transition to Java, Java Basics: Classes, Interfaces | Mon 6/13 - Tue 6/14 | Midterm 1 |
Prior exams: 22sp: 21fa: 21su: 21sp: 20fa: 20su: 20sp: 19fa: |
13: Java Static Methods and Arrays |
|
14: Resizeable Arrays and Java ASM |
|
15: Java ASM, Subtyping |
|
Sat 6/18 | Juneteenth Observed (no classes) | 16: Static Types vs. Dynamic Classes, Generic Types and Collections, Overriding, Equality |
|
17: Enumerations and Iteration |
|
18: Exceptions |
|
Sat 6/25 | 19: I/O & Histogram Demo |
|
Bonus Lecture: Code _is_ data |
|
Semester Recap | Wed 6/29 - Thu 6/30 | Midterm 2 |
Prior exams: 22sp: 21fa: 21su: 21sp: 20fa: 20su: 20sp: 19fa: |
Sat 7/02 |
---|