8/29 
Logistics 

Course Introduction and Logistics 
8/29 
Lecture 
L0 
Introduction to Racket and Dr. Racket (video) (Slides) 
8/31 
Lecture 
L1 
Forms and Callsites and Definitions and the Environment (Slides) 
9/5 
Lecture 
L2 
(Kris gone at ICFP '23)  Racket Practice Exercises 
9/7 
Lecture 
L3 
Textual Reduction and Case Splitting and Lists Intro (Slides) 
L0 – L3 
Reading 
R0 
SICP sections 1 through 1.1.5 (stop before 1.1.6) 
9/8 
Project 
P1 
TicTacToe  Released (Due on 9/21) 
9/12 
Lecture 
L4 
Recursion over Lists 
9/12 
Reading 
R1 
SICP sections 1.1.6 and 1.2 up to 1.2.3 
9/14 
Lecture 
L5 
Lambdas (Slides) 
9/19 
Lecture 
L6 
Cons Diagrams and Boxes (Slides) 
9/21 
Lecture 
L7 
Mapping Over Lists (Slides) 
9/21 
Project 
P1 
PROJECT 1 DEADLINE 
L5 – L7 
Reading 
R2 
SICP section 1.3 and 2.1 
9/26 
Lecture 
L8 
Quasiquoting and Pattern Matching (Slides) 
9/28 
Lecture 
L9 
Tail Calls and Tail Recursion (Slides) 
9/28 
Project 
P2 
Transitive Closure  Released 
L9 
Reading 
R3 
SICP sections 2.2 and 2.3 
10/3 
Lecture 
L10 
Practicing Tail Recursion (no slides) and Folding over Lists (Slides) 
10/5 
Lecture 
L11 
Interpreting IfArith (Code) and Natural Deduction for IfArith (Slides) 
10/10 


Fall Break 
10/12 
Lecture 
L12 
ClosureCreating Interpreters 
10/12 
Project 
P2 
PROJECT 2 DEADLINE 
10/17 
Lecture 
L13 
Lambda Calculus Introduction (Slides) 
10/17 
Project 
P3 
Scheme Interpreter  Released 
10/19 
Lecture 
L14 
Lambda Calculus: Reductions and Substitution (Slides) 
10/24 
Lecture 
L15 
(Virtual) Review for Midterm 1 
10/26 
Exam 
M1 
Midterm 1 (in class, 20%) 
10/31 
Lecture 
L16 
Reduction Strategies: Call by Value and Call by Name (Slides) 
11/2 
Lecture 
L17 
(on ZoomKris at IEEE Cluster '23) Church Numerals 
11/2 
Project 
P3 
PROJECT 3 DEADLINE 
11/7 
Lecture 
L18 
Church Encoding (Slides) 
11/7 
Project 
P4 
Church Encoder  Released 
11/9 
Lecture 
L19 
Fixed Points, Y/U combinators and Continuations (Slides) 
11/14 
Lecture 
L20 
Continuations, Exceptions, and Control Operators (Slides) 
11/16 
Lecture 
L21 
SimplyTyped Lambda Calculus (Slides) 
11/21 


Thanksgiving Break (Tu) 
11/23 


Thanksgiving Break (Th) 
11/28 
Lecture 
L22 
STLC Review, polymorphism, and type inference 
11/28 
Project 
P4 
PROJECT 4 DEADLINE 
11/30 
Lecture 
L23 
Rust's type system and the borrow checker 
12/5 
Lecture 
L24 
Course wrapup, review for midterm 2 
12/7 
Exam 
M2 
Midterm 2 (in class, 20%) 