Schedule
Note that the videos linked in the video section are from Claude Anderson's (older) version of the class. Content-wise, this class should be pretty similar (though I don't promise things will be exactly the same).
Details of due dates, exams, etc. are probably different. So use Claude's videos as a supplement to the in-class lectures, not a replacement.
| Session | Reading (optional)x | Topics | Materials | Videos |
| DUE | ||||
| DUE | ||||
|
1 Thu 04 Sep 2025 |
SchemeIntro YouTube video showing how to use trace in Racket |
Zoom 1
Intro-1 numbers Intro-2 symbols and strings Intro-3 lists pairs begin Intro-3b more lists Intro-4 defining procedures trace Intro-5 local variables recursive procedures |
||
| Assignment 0 DUE Thu 04 Sep 2025 11:59 pm | ||||
|
2 Fri 05 Sep 2025 |
TSPL Ch. 1, 2.1-2.2 |
lambda recursive procedures if, cond, case offline testing & submission |
Lambda |
Zoom 2
Second live demo Lambda the Magnificent |
| Assignment 1 DUE Fri 05 Sep 2025 11:59 pm | ||||
|
3 Mon 08 Sep 2025 |
TSPL Section 2.2-2.8 EOPL-1 2-29 |
course intro assorted scheme topics |
CourseIntro |
Zoom 3
cons_list_append write some recursive procedures Part left out in sections 2 and 3 |
| Assignment 2 DUE Mon 08 Sep 2025 11:59 pm | ||||
|
4 Tue 09 Sep 2025 |
TSPL sections 3.2, 4.1-4.4, 6.1-6.4 EOPL-1 67-74 |
let & and its many flavors insertion sort |
LetVariants |
Zoom 4
procedures with variable numbers of arguments map-apply procedures |
| Assignment 3 DUE Tue 09 Sep 2025 11:59 pm | ||||
|
5 Thu 11 Sep 2025 |
TSPL 5.1-5.4 EoPL Forward & Preface |
Map & Apply |
MapApply |
Zoom 5
andmap ormap some prob solutions |
| Assignment 4 DUE Thu 11 Sep 2025 11:59 pm | ||||
|
6 Fri 12 Sep 2025 |
EoPL Section 1.1 |
Procedures that produce procedures list mutation |
ProcedureProcedures |
Zoom 6 (kinda outdated, unfortunately)
vectors list sharing and mutation two more recursive procedures |
| Assignment 5 DUE Fri 12 Sep 2025 11:59 pm | ||||
|
7 Mon 15 Sep 2025 |
EoPL Section 1.2 1.2.1 Re-read TSPL 4.1-4.4 (you'll probably get more out of it on a second reading) |
BNF Grammar Specification s-lists |
GrammarsAndLanguages |
Zoom 7
largest-in-lists some prob solutions |
| Assignment 6a (problems 1-7) DUE Mon 15 Sep 2025 11:59 pm | ||||
|
8 Tue 16 Sep 2025 |
EoPL Section 1.2.2-1.2.4 |
Exam 1 specification s-list procedures |
ProgramsAboutSlists |
Zoom 8
|
| Assignment 6b (problems 8-11) DUE Tue 16 Sep 2025 11:59 pm | ||||
|
9 Thu 18 Sep 2025 |
EoPL Section 1.3, 1.4 TSPL Sections 2.9 and 3.5 (you can skip the parts that use define-syntax for now) |
compose case-lambda OO behavior |
OOP |
Zoom 9
compose and case lambda |
| Assignment 7a (problems 1-3) DUE Thu 18 Sep 2025 11:59 pm | ||||
|
10 Fri 19 Sep 2025 |
EoPL 2.1 |
procedural abstraction list-recur |
ProceduralAbstraction |
Zoom 10
|
| Assignment 7b (problems 4-6) DUE Fri 19 Sep 2025 11:59 pm | ||||
|
11 Mon 22 Sep 2025 |
EoPL 2.2 |
snoc and efficient rotate occurs-bound? |
OccursBound |
Zoom 12
|
| Assignment 8 DUE Mon 22 Sep 2025 11:59 pm | ||||
|
12 Tue 23 Sep 2025 |
Exam 1 topics, maybe some example problems |
Exam1Prep Teams recording of my discussion of Exam |
||
| Assignment 9 DUE Tue 23 Sep 2025 11:59 pm | ||||
|
13 Thu 25 Sep 2025 |
EoPL 2.3 |
abstract datatypes composite datatypes define datatype |
DatatypesParsing |
Zoom 15
|
| Assignment 10 DUE Thu 25 Sep 2025 11:59 pm | ||||
|
14 Fri 26 Sep 2025 |
EoPL 2.4 |
more on define datatype parsing LcExpressions global environments, local environments |
DatatypesParsing |
Zoom 16
|
| E&C Pre-work 1 DUE Fri 26 Sep 2025 11:59 pm | ||||
|
15 Mon 29 Sep 2025 |
Catch up on any reading assignments you're behind |
lambdas, procedures and closures environments and closures |
EnvironmentsAndClosures |
Zoom 17
|
| Exam 1 in E104 DUE Mon 29 Sep 2025 8:00 pm | ||||
|
16 Tue 30 Sep 2025 |
Class cancelled | |||
| E&C Pre-work 2 DUE Tue 30 Sep 2025 11:59 pm | ||||
|
17 Thu 02 Oct 2025 |
EoPL 2.5 |
environments and closure examples environment ADT specification |
EnvironmentsAndClosures2 |
Zoom 18
complex e and c example |
|
18 Fri 03 Oct 2025 |
EoPL 3.1, 3.2 |
A bit more E&C practice Environment ADT implementation |
EnvironmentsAndClosures3 |
Zoom 19
|
| Assignment 11 DUE Fri 03 Oct 2025 11:59 pm | ||||
|
19 Mon 06 Oct 2025 |
TSPL 5.7 (skip call/cc parts) |
Interpreter initial framework let, if, lambda |
AddLetIfLambda |
Zoom 20
|
| E&C Takehome Mini-Exam DUE Mon 06 Oct 2025 11:59 pm | ||||
|
20 Tue 07 Oct 2025 |
idea of syntax expansion template based expansions |
Macros1 Recorded Lecture |
||
| Assignment 13 DUE Tue 07 Oct 2025 11:59 pm | ||||
|
21 Mon 13 Oct 2025 |
macro variable capture expansion variables |
Macros2 |
||
|
22 Tue 14 Oct 2025 |
Macros 3 | |||
| Macros Assignment DUE Tue 14 Oct 2025 11:59 pm | ||||
| Macros2 Assignment DUE Wed 15 Oct 2025 11:59 pm | ||||
|
23 Thu 16 Oct 2025 |
Memoization Multiple return values in scheme |
Memoization |
Zoom 22
|
|
|
24 Fri 17 Oct 2025 |
EoPL 3.3, 3.4 | Continuations |
CPS -Buffalo Solves a CPS Problem Video |
Zoom 24
|
| Assignment 14 DUE Fri 17 Oct 2025 11:59 pm | ||||
|
25 Mon 20 Oct 2025 |
More CPS |
CPS |
||
|
26 Tue 21 Oct 2025 |
EoPL 3.5, 3.6 Skim EoPL 6.2, 6.3 |
Another CPS conversion example add letrec to interpreted language |
CPSMore2 |
Zoom 25
|
| Assignment 15 (small individual) DUE Tue 21 Oct 2025 11:59 pm | ||||
|
27 Thu 23 Oct 2025 |
EoPL 4.1-4.3 |
Exam Specification add set! to interpreter References apply-env-ref and implementations cells rib-cage approach to references memory model (basic idea, no details) Differences between set! and define. call/cc warm-up (if we have time) |
CPSFinal |
Zoom 26
|
| Assignment 16 DUE Thu 23 Oct 2025 11:59 pm | ||||
|
28 Fri 24 Oct 2025 |
interpreter in CPS form |
CPSDatatypesInterpreter |
Zoom 31
|
|
|
29 Mon 27 Oct 2025 |
EoPL 4.1-4.3 |
Receivers Escape Procedures def of call/cc call/cc examples |
CallCC1 |
Zoom 27
|
|
30 Tue 28 Oct 2025 |
EoPL 5.1, 5.2 | call/cc examples |
CallCC2 |
Zoom 28
|
| Exam 2 in E104 DUE Tue 28 Oct 2025 8:00 pm | ||||
|
31 Thu 30 Oct 2025 |
TSPL 3.3, 3.4 | call/cc examples |
CallCC3 |
Zoom 29
|
| Assignment 17 DUE Thu 30 Oct 2025 11:59 pm | ||||
|
32 Fri 31 Oct 2025 |
example fact with call/cc Add call/cc to interpreted language |
CPSDatatypesInterpreter |
Zoom 32
which procedures are substantial? Add call/cc to our interprerter factorial with call/cc |
|
|
33 Mon 03 Nov 2025 |
Call/cc problems | |||
|
34 Tue 04 Nov 2025 |
coroutines |
Coroutines |
Zoom 37
|
|
| Assignment 18 DUE Tue 04 Nov 2025 11:59 pm | ||||
|
35 Thu 06 Nov 2025 |
Type Checking |
Typing Video |
||
|
36 Fri 07 Nov 2025 |
Type Checking 2 |
ImplicitTyping Video |
||
|
37 Mon 10 Nov 2025 |
Skipped for Exam 2 | |||
| CallCC Assignment DUE Mon 10 Nov 2025 11:59 pm | ||||
|
38 Tue 11 Nov 2025 |
Implicit typing |
ImplicitTyping Video |
||
|
39 Thu 13 Nov 2025 |
imperative form |
ImperativeForm |
Zoom 34
|
|
| Typing Assignment DUE Thu 13 Nov 2025 11:59 pm | ||||
|
40 Fri 14 Nov 2025 |
exam prep |
ExamPreview |
||