In the world of computer science, most developers learn how to use a language to solve problems. However, at Carnegie Mellon University (CMU) shifts the perspective entirely. Instead of asking how to write a program, this course asks: What is a programming language, and how can we mathematically prove it works? .
is a rigorous undergraduate course at Carnegie Mellon University that treats programming languages as mathematical objects rather than just collections of features. Course Overview 15312 foundations of programming languages
The "foundations" covered in a course like 15312 typically encompass: In the world of computer science, most developers
Type systems are the primary tool for preventing runtime errors. In 15-312, students do not just use types; they prove them. The ultimate goal of the early curriculum is proving , which guarantees that "well-typed programs cannot go wrong." This is achieved through two landmark proofs: In 15-312, students do not just use types; they prove them
15-312 is an advanced undergraduate and graduate-level course that shifts the focus from how to code to how languages work . Instead of learning the syntax of a dozen different languages, students learn the universal mathematical principles that govern all languages.
A well-typed program is either already a final value or it can take a step of evaluation. It never gets "stuck."