CIS352 — Spring 2026

Principles of Programming Languages

Week 1: Course Intro & Racket Fundamentals

Week 2: Lists and Recursion

Week 3: Abstractions and Algebraic Data

Week 4: Programming with Algebra

Week 5: Graphs and Interpreters

Week 6: Exam 1

Week 7: Natural Deduction and Interpreters

Week 8: Lambda Calculus and Interpreters

Week 9: Reduction Strategies and Exam 2 Review

Week 10: Exam 2

Week 11: Church Encoding and Y Combinator

Week 12: Type Theory

Week 13: Low-level Programming in Rust

Week 14: Exam 3

Week 15: Finals Week

  • 5/1
    Final Exam (optional, replaces lowest exam grade)
    • Friday 10:15AM - 12:15PM, Life Science Building 105