| 1/17 |
Logistics |
|
Course Introduction and Logistics |
| 1/17 |
Lecture |
L0 |
Introduction to Racket and Dr. Racket (video) (Slides) |
| 1/19 |
Lecture |
L1 |
Forms and Callsites and Definitions and the Environment (Slides) |
| 1/24 |
Lecture |
L2 |
Textual Reduction and Case Splitting and Lists Intro (Slides) |
| 1/17 – 1/24 |
Reading |
R0 |
SICP sections 1 through 1.1.5 (stop before 1.1.6) |
| 1/26 |
Lecture |
L3 |
(Kris gone) -- Racket Practice Exercise |
| 1/31 |
Lecture |
L4 |
Recursion over Lists |
| 1/31 |
Reading |
R1 |
SICP sections 1.1.6 and 1.2 up to 1.2.3 |
| 1/31 |
Project |
P1 |
ASCII Art -- Released |
| 2/2 |
Lecture |
L5 |
Lambdas (Slides) |
| 2/7 |
Lecture |
L6 |
No lecture--Kris at AAAI |
| 2/9 |
Lecture |
L7 |
Cons Diagrams and Boxes (Slides) and Mapping Over Lists (Slides) |
| Week of 2/6 |
Reading |
R2 |
SICP section 1.3 and 2.1 |
| 2/14 |
Lecture |
L8 |
Quasiquoting and Pattern Matching (Slides) |
| 2/15 |
Project |
P1 |
PROJECT 1 DEADLINE |
| 2/15 |
Project |
P2 |
Transitive Closure -- Released |
| 2/16 |
Lecture |
L9 |
Tail Calls and Tail Recursion (Slides) |
| Week of 2/13 |
Reading |
R3 |
SICP sections 2.2 and 2.3 |
| 2/21 |
Lecture |
L10 |
Practicing Tail Recursion (no slides) and Folding over Lists (Slides) |
| 2/23 |
Lecture |
L11 |
Interpreting IfArith (Code) |
| 2/28 |
Lecture |
L12 |
Natural Deduction for IfArith (Slides for L11/12) |
| 3/1 |
Project |
P2 |
PROJECT 2 DEADLINE |
| 3/2 |
Lecture |
L13 |
Small-Step Semantics of IfArith, review of topics so far. |
| 3/7 |
Lecture |
L14 |
Review for Midterm 1 |
| 3/9 |
Exam |
M1 |
Midterm 1 (in class, 15%) |
| 3/14 & 3/16 |
|
|
Spring Break |
| 3/21 |
Lecture |
L15 |
Lambda Calculus Introduction (Slides) |
| 3/23 |
Lecture |
L16 |
Lambda Calculus: Reductions and Substitution (Slides) |
| 3/28 |
Lecture |
L17 |
Reduction Strategies (Slides) |
| 3/30 |
Lecture |
L18 |
Closure-Creating Interpreters |
| 4/4 |
Lecture |
L19 |
Church Numerals |
| 4/6 |
Lecture |
L20 |
Church Encoding (Slides) |
| 4/11 |
Lecture |
L21 |
Fixed Points, Y/U combinators and Continuations (Slides) |
| 4/13 |
Lecture |
L22 |
Simply-Typed Lambda Calculus (Slides) |
| 4/18 |
Lecture |
L23 |
Review for Midterm 2 |
| 4/20 |
Exam |
M2 |
Midterm 2 (in class, 15%) |
| 4/25 |
Lecture |
L25 |
Object-Oriented Programming and Polymorphism |
| 4/27 |
Lecture |
L26 |
Fully-Verified Programming, Neurosymbolic AI, course wrapup |