CIS352 — Fall 2022

Principles of Programming Languages

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