Courses Number Name Instructor 15-122 Principles of Imperative Computation Dilsun Kaynar; Iliano Cervesato 15-150 Principles of Functional Programming Stephen Brookes 15-210 Parallel and Sequential Data Structures and Algorithms Guy Blelloch; Charlie Garrod 15-312 Foundations of Programming Languages Bob Harper 15-317 Constructive Logic Karl Crary 15-316 Software Foundations of Security and Privacy Matt Fredrikson 15-330 Introduction to Computer Security Bryan Parno 15-424 Logical Foundations of Cyber-Physical Systems Stefan Mitsch 15-814 Types and Programming Languages Jan Hoffman 15-816 Advanced Topics in Logic: Automated Reasoning and Satisfiability Marijn Heule 15-819 Probabilistic Programming Languages Feras Saad; Jan Hoffman 15-836 Substructural Logics Frank Pfenning 15-898 Quantum Computing Systems Umut Acar 17-363 Programming Language Pragmatics Jonathan Aldrich; Benjamin Titzer 18-732 Secure Software Systems Bryan Parno 80-411 Proof Theory Jeremey Avigad 80-715 Seminar on Homotopy Type Theory Steve Awodey