In 15-312, types are not merely annotations; they are theorems. A well-typed program is a proof that the program will not "go wrong." Students learn to define typing rules using formal judgments, exploring concepts like:
is a rigorous undergraduate course offered by the Carnegie Mellon University School of Computer Science . Often cited by students as a transformative experience, the course shifts the focus from "how to code" to "what is a language," treating programming languages as formal mathematical objects rather than just tools for software development. Core Philosophy and Learning Goals 15-312 foundations of programming languages
In the sprawling ecosystem of computer science education, few courses command the respect—and occasional fear—of Carnegie Mellon University’s . In 15-312, types are not merely annotations; they
flips this model on its head. The course operates on the principle that to truly master programming, one must understand the fundamental principles that govern all languages. Whether you are writing in a functional style like Haskell, an object-oriented style like Java, or a logic style like Prolog, the underlying mechanics remain surprisingly consistent. Core Philosophy and Learning Goals In the sprawling