2/9 |
Logistics |
|
Course Introduction and Logistics |
2/9 |
Lecture |
L0 |
Introduction to Racket and Dr. Racket |
2/11 |
Lecture |
L1 |
Racket Forms and Callsites |
2/11 |
Lecture |
L2 |
Definitions and the Environment |
2/9 – |
Reading |
R0 |
SICP sections 1 through 1.1.5 (stop before 1.1.6) |
2/16 |
Lecture |
L3 |
Textual Reduction |
2/16 |
Lecture |
L4 |
Case Splitting and Lists Intro |
2/18 |
Lecture |
L5 |
Recursion over Lists |
2/18 |
Logistics |
|
Using the Autograder |
2/18 |
Project |
P0 |
Tic-Tac-Toe |
2/16 – |
Reading |
R1 |
SICP sections 1.1.6 and 1.2 up to 1.2.3 |
2/23 |
Lecture |
L6 |
Lambdas |
2/25 |
Lecture |
L7 |
Cons Diagrams and Boxes |
2/25 |
Lecture |
L8 |
Mapping Over Lists |
2/23 – |
Reading |
R2 |
SICP section 1.3 and 2.1 |
3/2 |
Lecture |
L9 |
Pattern Matching |
3/4 |
Lecture |
L10 |
Tail Calls and Tail Recursion |
3/2 – |
Reading |
R3 |
SICP sections 2.2 and 2.3 |
3/8 |
Quiz |
Q0 |
Online Synchronous Quiz 0 (80min) |
3/9 |
Lecture |
L11 |
Practicing Tail Recursion |
3/9 |
Lecture |
L12 |
Folding over Lists |
3/11 |
Project |
P1 |
PageRank |
3/16 |
Lecture |
L13 |
Interpreting IfArith |
3/18 |
Lecture |
L14 |
Natural Deduction for IfArith |
3/23 |
|
|
SU Wellness Day (No Class) |
3/25 |
Lecture |
L15 |
Small-Step Semantics of IfArith |
3/30 |
Lecture |
L16 |
Lambda Calculus Introduction |
3/30 |
Lecture |
L17 |
Lambda Calculus: Reductions and Substitution |
4/1 |
Lecture |
L18 |
Reduction Strategies |
4/6 |
Lecture |
L19 |
Church Numerals |
4/8 |
Lecture |
P2 |
Church Encoding |
4/12 |
Quiz |
Q1 |
Online Synchronous Quiz 1 (100min) |
4/13 |
Lecture |
|
Review / catch up day on lambda calculus |
4/15 |
Lecture |
|
Church encoding quiz review problems |
4/20 |
Lecture |
L21 |
Fixed Points |
4/22 |
Lecture |
L22 |
U and Y combinator review |
4/27 |
Lecture |
L22 |
Continuations |
4/29 |
Lecture |
L23 |
Control Constructs via Continuations |
4/29 |
Project |
P3 |
Definitional Interpreter for Scheme |
4/25 |
Project |
P4 |
PL Feature Blog Post |
5/4 |
Lecture |
L24 |
Simply-Typed Lambda Calculus |
5/6 |
Lecture |
L25 |
Type Soundness for STLC |
5/10 |
Quiz |
Q2 |
Online Synchronous Quiz (details TBA) |
5/11 |
Lecture |
L26 |
Macros and Hygiene |
5/13 |
Lecture |
L27 |
Course Wrapup |
TBA |
Exam |
F |
Final (120min, comprehensive, submit up to 6 answers) |