| 8/30 |
Logistics |
|
Course Introduction and Logistics |
| 8/30 |
Lecture |
L0 |
Introduction to Racket and Dr. Racket (video) (Slides) |
| 9/1 |
Lecture |
L1 |
Forms and Callsites and Definitions and the Environment (Slides) |
| 9/6 |
Lecture |
L2 |
Textual Reduction and Case Splitting and Lists Intro (Slides) |
| 9/1 – 9/8 |
Reading |
R0 |
SICP sections 1 through 1.1.5 (stop before 1.1.6) |
| 9/8 |
Lecture |
L3 |
(Kris @ PLMW/ICFP) -- Racket Practice Exercise |
| 9/12 |
Lecture |
L4 |
Lecture on Zoom (Kris in Slovenia): topic TBD |
| 9/15 |
Lecture |
L5 |
Recursion over Lists |
| 9/12 – 9/15 |
Reading |
R1 |
SICP sections 1.1.6 and 1.2 up to 1.2.3 |
| 9/17 |
Project |
P1 |
ASCII Art -- Released |
| 9/20 |
Lecture |
L6 |
Lambdas (Slides) |
| 9/22 |
Lecture |
L7 |
Cons Diagrams and Boxes (Slides) |
| 9/22 |
Reading |
R2 |
SICP section 1.3 and 2.1 |
| 9/27 |
Lecture |
L8 |
Mapping Over Lists (Slides) |
| 9/28 |
Project |
P1 |
PROJECT 1 DEADLINE |
| 9/29 |
Lecture |
L9 |
Quasiquoting and Pattern Matching (Slides) |
| 10/02 |
Project |
P2 |
Transitive Closure -- Released |
| 10/4 |
Lecture |
L10 |
Tail Calls and Tail Recursion (Slides) |
| 10/4 |
Reading |
R3 |
SICP sections 2.2 and 2.3 |
| 10/4 |
Lecture |
L11 |
Practicing Tail Recursion (Slides) and `fold`s intro (Slides) |
| 10/6 |
Lecture |
L12 |
Folding over Lists and Interpreting IfArith (Slides) |
| 10/11 |
Lecture |
L13 |
Natural Deduction for IfArith (Slides) |
| 10/13 |
Lecture |
L14 |
Small-Step Semantics of IfArith (Slides) |
| 10/13 |
Project |
P2 |
PROJECT 2 DEADLINE |
| 10/18 |
Exam |
M1 |
Midterm 1 (20%) |
| 10/20 |
Lecture |
L16 |
Lambda Calculus Introduction (Slides) |
| 10/20 |
Project |
P3 |
Scheme Interpreter -- Released |
| 10/25 |
Lecture |
L17 |
Lambda Calculus: Reductions and Substitution (Slides) |
| 10/27 |
Lecture |
L18 |
Reduction Strategies (Slides) |
| 11/1 |
Lecture |
L19 |
Closure-Creating Interpreters (Slides) |
| 11/1 |
Project |
P3 |
PROJECT 3 DEADLINE |
| 11/3 |
Lecture |
L20 |
Church Numerals (Slides) |
| 11/8 |
Lecture |
L21 |
P4 Intro -- Church Encoding (Slides) |
| 11/10 |
Lecture |
L22 |
Fixed Points (U/Y combinator) (Slides) |
| 11/15 |
Exam |
M2 |
Midterm 2 (20%) |
| 11/17 |
Lecture |
L23 |
Compiling Big Data Analytics and Program Analysis |
| 11/22 – 11/24 |
Break |
|
Thanksgiving Break (no class) |
| 11/28 |
Project |
P4 |
PROJECT 4 DEADLINE |
| 11/29 |
Lecture |
L24 |
Church Numbers |
| 11/29 |
Project |
P5 |
Type Checking -- Released |
| 12/1 |
Lecture |
L25 |
More Church Encoding, STLC intro |
| 12/6 |
Lecture |
L26 |
Simply-Typed Lambda Calculus (STLC), Programs as Proofs (Slides) |
| 12/8 |
Lecture |
L27 |
Type Synthesis and Final Topics (Slides) |
| TBA |
Exam |
F |
Final -- In-class |