Logistics
Overview
- This course covers the basics of the theory of programming languages. We will begin with an introduction to functional programming and the mathematical foundation for programming language theory, and then proceed to the techniques for formally defining programming languages such as abstract syntax, operational semantics, and type systems.
- We will investigate important features found in modern programming languages and their implementation issues. This course places a strong emphasis on the role of type theory in modern programming languages. To complement our theoretical study with practical programming, we will learn a higher-order functional language in the ML family.
Prerequisites
- None. But Discrete Mathematics, Data Structures, and Algorithms are recommended.
Grades
- Attendance (5%): You should ask 2+ questions in class to get full credit.
- Homework (65%): You will have 9 programming assignments.
- Exams (30%): You will have a midterm exam (15%) and a final exam (15%).
Books
Links