This class is CS538 from UW-Madison, Introduction to Design & Principle of Programming Languages, taught by an awesome professor Justin Hsu.

This is an advanced undergraduate-level course covering the theory and design of programming languages. This course will introduce students to two real-world languages at the cutting edge of programming language design: Haskell and Rust. Through hands-on experience, students will learn about functional, imperative, and concurrent features common across many modern programming languages. In parallel, the course will also introduce ideas from the theory of programming languages by developing mathematical, core versions of the main languages. By studying these simplified languages, we will address questions like: How can we describe a programming language? How can we specify the behavior of programs? How can we ensure that programs don’t go wrong?

See the cs538-lecture-slides for all the original lecture slides from Prof. Hsu