Hands down my favorite college course. When I took this about a decade ago we used OCaml and associated tooling (ocamllex and ocamlyacc) to implement a toy subset of Ruby that targeted the Lua VM. Operational semantics really knocked me for a loop but I thought everything else was actually rather intuitive and tied together many of the disparate concepts I'd learned in other classes. Shouts out to you for being a great professor if you're reading this Dr. Foster!