This class taught about the foundational concepts of programming, using types of programming langauges people aren't used to seeing.
Types, Languages, and Grammar were taught using a Functional Language (ELM), and Logic was taught using a Logical Language (SWI-Prolog).