• Lectures: Tuesday 6:30-7:50 PM, GHC 4215
  • Instructors:
    • Vijay Ramamurthy (vijayram)
    • Charles Yuan (chenhuiy)
    • Chris Grossack (cgrossac)
    • Jeanne Luning Prak (jluningp)


Schedule

Subject exclusively to obvious change.

Date Inst Topics Covered Attendance HWs
Jan 15 Vijay, Charles, Chris, and Jeanne Lec 0: Why learn about type theory?
Jan 22 Vijay Lec 1: Typechecking: How PL theorists specify and implement their type systems writeup
code solution
Jan 29 Jeanne Lec 2: The Curry-Howard Correspondence: How types and logic are the same. (slides) writeup
code
Feb 5 Jeanne Lec 3: Phantom Types: A spooky way to get more guarantees from your compiler. (slides)
Feb 12 Vijay Lec 4: Lambda Calculus and Definability: The ability to abstract really gives you all the power you need. (slides) writeup
code
Feb 19 Charles Lec 5: Subtyping: When some types are greater than others. (slides) optional
Feb 26 Jeanne Lec 6: Generalized Algebraic Datatypes: When normal constructors aren't enough. (slides) writeup
Mar 5 Jacob Guest Lecture 1: Hoare Calculus (slides)
Mar 12 Spring Break! No class.
Mar 19 Cameron Guest Lecture 2: Verification
Mar 26 Vijay Lec 7: Compilation: Making code look worse to humans but better to processors (slides) writeup
code
Apr 2 Charles Lec 8: Typed Assembly: Why not have types everywhere? (slides)
Apr 9 Chris Lec 9: Dependent types: Mixing values with types
(lecture notes)
homework
Apr 16 Charles Lec 10: Pure Type Systems: Who needs values anyway? (slides) homework
Apr 23 Chris Lec 11: "Practical" Category Theory: Where are EndoFunctors? Why are Monads Monoids there?
Apr 30 Chris Lec 12: Homotopy Type Theory: The HoTTest type theory.