You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Office Hours: By appointment via email (PIAI #335; 인공지능연구원 335호)
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
Requirements: None, as this course is self-contained. However, familiarity with Discrete Mathematics and Data Structures is recommended.
Expectations: A strong interest in both Computer Science and Mathematics, and a strong willingness to learn new and challenging material.
Grades
Attendance (0%): Fail if you are absent for ≥ 8 classes (based on the electronic attendance system).
Participation (5%): Full credit if you ask ≥ 4 in-person questions during or after class.
Homework (65%): You will have 9 programming assignments (with nonuniform weights).
Exams (30%): You will have 2 exams: a midterm (15%) and a final (15%).