8/27 |
Logistics |
|
Course Introduction and Logistics |
8/27 |
Lecture |
L0 |
Introduction to Racket and Dr. Racket (video) (Slides) |
8/28 |
Lecture |
L1 |
Forms and Callsites and Definitions and the Environment (Slides) |
9/3 |
Lecture |
L2 |
(Kris gone, led by Neda) -- Autograder Exercise 0 |
9/5 |
Lecture |
L3 |
(on Zoom) -- Textual Reduction and Case Splitting and Lists Intro (Slides) |
9/5 |
Project |
P1 |
Tic-Tac-Toe -- Released (Due on 9/19) |
L0 – L3 |
Reading |
R0 |
SICP sections 1 through 1.1.5 (stop before 1.1.6) |
9/10 |
Lecture |
L4 |
Recursion over Lists |
9/10 |
Reading |
R1 |
SICP sections 1.1.6 and 1.2 up to 1.2.3 |
9/12 |
Lecture |
L5 |
Lambdas (Higher-Order Functions)(Slides) |
9/17 |
Lecture |
L6 |
Cons Diagrams and Boxes, Automatic Memory Management/GC (Slides) |
9/19 |
Project |
P1 |
PROJECT 1 DEADLINE |
9/19 |
Lecture |
L7 |
Mapping Over Lists and Trees (Slides) |
L5 – L7 |
Reading |
R2 |
SICP section 1.3 and 2.1 |
9/24 |
Project |
P2 |
Transitive Closure -- Released (Due 2/29) |
9/24 |
Lecture |
L8 |
Quasiquoting and Pattern Matching (Slides) |
9/26 |
Lecture |
L9 |
Tail Calls and Tail Recursion (Slides) |
R3 |
Reading |
R3 |
SICP sections 2.2 and 2.3 |
10/1 |
Lecture |
L10 |
Practicing Tail Recursion (no slides) and Folding over Lists (Slides) |
10/3 |
Lecture |
L11 |
Interpreting IfArith (Code) and Natural Deduction for IfArith (Slides) |
10/8 |
Lecture |
L12 |
Midterm 1--Review |
10/8 |
Project |
P2 |
PROJECT 2 DEADLINE |
10/10 |
Exam |
M1 |
MIDTERM 1 (in class, 20%) |
10/15 |
|
|
Fall Break (Tu) |
10/17 |
Lecture |
L13 |
Lambda Calculus Introduction (Slides) |
10/22 |
Project |
P3 |
Scheme Interpreter -- Released |
10/22 |
Lecture |
L15 |
Closure-Creating Interpreters: the Runtime Lambda |
10/24 |
Lecture |
L16 |
Lambda Calculus: Reductions and Substitution (Slides) |
10/29 |
Lecture |
L17 |
Reduction Strategies: Call by Value and Call by Name (Slides) |
10/31 |
Lecture |
L18 |
Church Encoding Intro: the Church Numerals (Slides) |
11/5 |
Lecture |
L19 |
Church Encoding (Slides) |
11/5 |
Project |
P3 |
PROJECT 3 DEADLINE |
11/7 |
Lecture |
L20 |
Fixed Points; the Y and U combinators |
11/7 |
Project |
P4 |
Church Encoder -- Released |
11/12 |
Lecture |
L21 |
Type Systems Part 1: Simply-Typed λ-Calculus (Slides) |
11/14 |
Lecture |
L22 |
Type Systems Part 2: Type System Practice Problems |
11/19 |
Lecture |
L23 |
Type Systems Part 3: Soundness and Features (Slides) |
11/21 |
Lecture |
L24 |
Type Inference and Interactive Theorem Proving (Lean) |
11/26 |
|
|
Thanksgiving Break (Tu) |
11/28 |
|
|
Thanksgiving Break (Th) |
12/3 |
Lecture |
L25 |
Dynamic Dispatch, Garbage Collection, and Rust (Slides) |
12/5 |
Lecture |
L25 |
Midterm 2 -- Review |
12/5 |
Project |
P4 |
PROJECT 4 DEADLINE |
12/10 |
Exam |
M2 |
Midterm 2 (in class, 20%) |