"The goal of this course is to provide a foundation for understanding, designing, and
implementing programming languages. In this course we will study essential concepts and structures found
in modern programming languages. We will not focus on any one particular language, but rather
we will examine features found in many different languages.
We will also compare different programming paradigms, including imperative,
functional, logic, and object-oriented. We will study the specification of
programming language syntax and semantics, and the verification of program properties."