Date | Type | Unit | Video |
---|---|---|---|

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 | Simply-Typed Lambda Calculus |

11/29 | Project | P5 | Type Checking -- Released |

12/1 | Lecture | L25 | Typing for sums, products, and structured data |

12/6 | Lecture | L26 | Parametric and ad-hoc Polymorphism |

12/8 | Lecture | L27 | Dependent Types, Interactive Theorem Proving |

TBA | Exam | F | Final -- In-class |