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 |
1 Mon 02 Dec 2024 |
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 Mon 02 Dec 2024 11:59 pm | ||||
2 Tue 03 Dec 2024 |
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 Tue 03 Dec 2024 11:59 pm | ||||
3 Thu 05 Dec 2024 |
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 Thu 05 Dec 2024 11:59 pm | ||||
4 Fri 06 Dec 2024 |
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 Fri 06 Dec 2024 11:59 pm | ||||
5 Mon 09 Dec 2024 |
TSPL 5.1-5.4 EoPL Forward & Preface |
Map & Apply |
MapApply |
Zoom 5
andmap ormap some prob solutions |
Assignment 4 DUE Mon 09 Dec 2024 11:59 pm | ||||
6 Tue 10 Dec 2024 |
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 Tue 10 Dec 2024 11:59 pm | ||||
7 Thu 12 Dec 2024 |
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 Thu 12 Dec 2024 11:59 pm | ||||
8 Fri 13 Dec 2024 |
EoPL Section 1.2.2-1.2.4 |
Exam 1 specification s-list procedures |
ProgramsAboutSlists |
Zoom 8
|
Assignment 6b (problems 8-11) DUE Fri 13 Dec 2024 11:59 pm | ||||
9 Mon 16 Dec 2024 |
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 Mon 16 Dec 2024 11:59 pm | ||||
10 Tue 17 Dec 2024 |
EoPL 2.1 |
procedural abstraction list-recur |
ProceduralAbstraction |
Zoom 10
|
Assignment 7b (problems 4-6) DUE Tue 17 Dec 2024 11:59 pm | ||||
11 Thu 19 Dec 2024 |
EoPL 2.2 |
snoc and efficient rotate occurs-bound? lexical depth and lexical address example |
OccursBound |
Zoom 12
|
Assignment 8 DUE Thu 19 Dec 2024 11:59 pm | ||||
12 Fri 20 Dec 2024 |
Exam 1 topics, maybe some example problems |
Exam1Prep Teams recording of my discussion of Exam |
||
Assignment 9 DUE Fri 20 Dec 2024 11:59 pm | ||||
13 Mon 06 Jan 2025 |
EoPL 2.3 |
abstract datatypes composite datatypes define datatype |
DatatypesParsing |
Zoom 15
|
Assignment 10 DUE Mon 06 Jan 2025 11:59 pm | ||||
14 Tue 07 Jan 2025 |
EoPL 2.4 |
more on define datatype parsing LcExpressions global environments, local environments |
DatatypesParsing |
Zoom 16
|
E&C Pre-work 1 DUE Tue 07 Jan 2025 11:59 pm | ||||
15 Thu 09 Jan 2025 |
Catch up on any reading assignments you're behind |
lambdas, procedures and closures environments and closures |
EnvironmentsAndClosures |
Zoom 17
|
Exam 1 DUE Thu 09 Jan 2025 11:59 pm | ||||
16 Fri 10 Jan 2025 |
Class cancelled | |||
E&C Pre-work 2 DUE Fri 10 Jan 2025 11:59 pm | ||||
17 Mon 13 Jan 2025 |
EoPL 2.5 |
environments and closure examples environment ADT specification |
EnvironmentsAndClosures2 |
Zoom 18
complex e and c example |
18 Tue 14 Jan 2025 |
EoPL 3.1, 3.2 |
A bit more E&C practice Environment ADT implementation |
EnvironmentsAndClosures3 |
Zoom 19
|
Assignment 11 DUE Tue 14 Jan 2025 11:59 pm | ||||
19 Thu 16 Jan 2025 |
TSPL 5.7 (skip call/cc parts) |
Interpreter initial framework let, if, lambda |
AddLetIfLambda |
Zoom 20
|
E&C Takehome Mini-Exam DUE Thu 16 Jan 2025 11:59 pm | ||||
20 Fri 17 Jan 2025 |
idea of syntax expansion template based expansions |
Macros1 Recorded Lecture |
||
Assignment 13 DUE Fri 17 Jan 2025 11:59 pm | ||||
21 Mon 20 Jan 2025 |
macro variable capture expansion variables |
Macros2 |
||
22 Tue 21 Jan 2025 |
Macros 3 | |||
Macros Assignment DUE Tue 21 Jan 2025 11:59 pm | ||||
23 Thu 23 Jan 2025 |
Memoization Multiple return values in scheme |
Memoization |
Zoom 22
|
|
24 Fri 24 Jan 2025 |
EoPL 3.3, 3.4 | Continuations |
CPS -Buffalo Solves a CPS Problem Video |
Zoom 24
|
Assignment 14 DUE Fri 24 Jan 2025 11:59 pm | ||||
25 Mon 27 Jan 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 Mon 27 Jan 2025 11:59 pm | ||||
26 Tue 28 Jan 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 Tue 28 Jan 2025 11:59 pm | ||||
27 Thu 30 Jan 2025 |
interpreter in CPS form |
CPSDatatypesInterpreter |
Zoom 31
|
|
28 Fri 31 Jan 2025 |
EoPL 4.1-4.3 |
Receivers Escape Procedures def of call/cc call/cc examples |
CallCC1 |
Zoom 27
|
Assignment 17 DUE Fri 31 Jan 2025 11:59 pm | ||||
29 Mon 03 Feb 2025 |
Cancelled for Exam 2 | |||
30 Tue 04 Feb 2025 |
EoPL 5.1, 5.2 | call/cc examples |
CallCC2 |
Zoom 28
|
Exam 2 DUE Tue 04 Feb 2025 11:59 pm | ||||
31 Thu 06 Feb 2025 |
TSPL 3.3, 3.4 | call/cc examples |
CallCC3 |
Zoom 29
|
32 Fri 07 Feb 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 10 Feb 2025 |
Garbage Collection 1 |
GarbageCollection1 Recorded lecture |
||
Assignment 18 DUE Mon 10 Feb 2025 11:59 pm | ||||
34 Tue 11 Feb 2025 |
Garbage Collection 2 |
GarbageCollection2 |
||
35 Thu 13 Feb 2025 |
TSPL Section 12.11 | engines |
Engines |
Zoom 35
|
Garbage Collection Assignment DUE Thu 13 Feb 2025 11:59 pm | ||||
36 Fri 14 Feb 2025 |
coroutines |
Coroutines |
Zoom 37
|
|
37 Mon 17 Feb 2025 |
Type Checking |
Typing Video |
||
CallCC Assignment DUE Mon 17 Feb 2025 11:59 pm | ||||
38 Tue 18 Feb 2025 |
Type Checking 2 |
ImplicitTyping Video |
||
39 Thu 20 Feb 2025 |
imperative form |
ImperativeForm |
Zoom 34
|
|
40 Fri 21 Feb 2025 |
exam prep |
ExamPreview |
||
Typing Assignment DUE Fri 21 Feb 2025 11:59 pm |