Teaching programming languages

Fall 2025 propaganda

A message I sent to my programming languages class for the start of the fall semester, on why I like teaching it:

Welcome to Design & Organization of Programming Languages!

This is one of the classes I most enjoy teaching, because it covers many parts of what makes computer science interesting to me.

There are human-centered angles to designing programming languages: how to make them easy to use, resistant to common bugs, and work well for teams. And engineering-centered angles like optimizing code speed, or supporting scaling down to small devices and up to large datacenters.

There are theoretical angles like: what's the smallest language you could design that can still implement any algorithm? Nowadays there are even some new questions like: should we just have AI write all the code?

The contents of course then get down to more specific things: syntax versus semantics; implementing an interpreter and some basics of a compiler; and a bit of Turing-completeness. But I wanted to start by stepping back and trying to summarize why I particularly like teaching this subject, and continue to find it very relevant despite the fact that my other class is considerably more popular at the moment.