CIS352 — Spring 2023

Principles of Programming Languages

Date Type Unit Video
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