Lectures are held Mondays, Wednesdays, and Fridays in SIG 134. Recordings will be posted for those who need to miss class, but the course is not designed to be experienced remotely. It is strongly recommended that you attend in person whenever possible.
This page should always accurately reflect the past, but future dates and topics are subject to change.
Monday, June 29 - Lecture 04: Local bindings; Options
Wednesday, July 1 - Lecture 05: Records; Variants; Pattern matching
Friday, July 3 - Independence Day - No Class
Monday, July 6 - Lecture 06: Nested Patterns; Tail Recursion
📖 Reading Notes
Monday, July 20 - Lecture 12: Implementing Languages
Wednesday, July 22 - Lecture 13: Parsing; Trefoil Variables
🧑🏫 Slides
💻 Code
📽️ Recording
Friday, July 24 - Lecture 14: Trefoil Conditions and Bindings
🧑🏫 Slides
💻 Code
📽️ Recording
Monday, July 27 - Lecture 15: Trefoil Lists
🧑🏫 Slides
💻 Code
📽️ Recording
Wednesday, July 29 - Lecture 16: Trefoil Functions
🧑🏫 Slides
💻 Code
📽️ Recording
Friday, July 31 - Lecture 17: Trefoil First-class Functions
🧑🏫 Slides
💻 Code
📽️ Recording
Monday, August 3 - Lecture 18: Intro to Racket
🧑🏫 Slides
💻 Code
📽️ Recording
Wednesday, August 5 - Lecture 19: Variables; Scope; Pairs
🧑🏫 Slides
💻 Code
📽️ Recording
Friday, August 7 - Lecture 20: Thunks; Promises; Streams
🧑🏫 Slides
💻 Code
📽️ Recording
Monday, August 10 - Lecture 21: Variant Types, Two Ways
🧑🏫 Slides
💻 Code
📽️ Recording
Wednesday, August 12 - Lecture 22: Static v. Dynamic Typing
🧑🏫 Slides
💻 Code
📽️ Recording
Friday, August 14 - Lecture 23: Trefoil in Racket
🧑🏫 Slides
💻 Code
📽️ Recording
Monday, August 17 - Lecture 24: Racket OOP; Subclassing; Dynamic Dispatch
🧑🏫 Slides
💻 Code
📽️ Recording
Wednesday, August 19 - Lecture 25: Multiple Inheritance; Mixins
🧑🏫 Slides
💻 Code
📽️ Recording
Friday, August 21 - Lecture 26: Victory Lap
🧑🏫 Slides
💻 Code
📽️ Recording