2024 Programming Language Theory

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Graduate major in Mathematical and Computing Science
Instructor(s)
Cong Youyou 
Class Format
Lecture    (Face-to-face)
Media-enhanced courses
Day/Period(Room No.)
Mon5-6(W9-202(W922))  Thr5-6(W9-202(W922))  
Group
-
Course number
MCS.M428
Credits
2
Academic year
2024
Offered quarter
2Q
Syllabus updated
2024/3/14
Lecture notes updated
-
Language used
English
Access Index

Course description and aims

Programming languages are a tool for humans to communicate with computers. Just like natural language, programming languages have underlying theories, with which one can reason rigorously about complex programs. This course aims to equip students with fundamental knowledge of programming language theory. In particular, we focus on the semantics of continuations, a concept that can express many practical features such as exceptions and coroutines.

Student learning outcomes

In this course, students will acquire the following skills.

- Express various programming language features as manipulation of continuations
- Explain the meaning of programs from a mathematical point of view

Keywords

functional programming, continuations, control operators, algebraic effects and handlers, lambda calculus, operational semantics, type systems

Competencies that will be developed

Specialist skills Intercultural skills Communication skills Critical thinking skills Practical and/or problem-solving skills

Class flow

Each lecture introduces a new concept, language construct, etc. while providing hands-on exercises.

Course schedule/Required learning

  Course schedule Required learning
Class 1 Introduction Instructed in the class.
Class 2 Basics of functional programming Instructed in the class.
Class 3 Continuations Instructed in the class.
Class 4 Control operators (1) Instructed in the class.
Class 5 Control operators (2) Instructed in the class.
Class 6 Algebraic effects and handlers Instructed in the class.
Class 7 Mixing effects Instructed in the class.
Class 8 Linguistic applications of continuations Instructed in the class.
Class 9 Untyped lambda calculus Instructed in the class.
Class 10 Simply typed lambda calculus Instructed in the class.
Class 11 Semantics of control operators (1) Instructed in the class.
Class 12 Semantics of control operators (2) Instructed in the class.
Class 13 Semantics of algebraic effects and handlers Instructed in the class.
Class 14 Wrap-up Instructed in the class.

Out-of-Class Study Time (Preparation and Review)

To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class.
They should do so by referring to textbooks and other course material.

Textbook(s)

N/A

Reference books, course materials, etc.

N/A

Assessment criteria and methods

Evaluation is done based on engagement in the class (20%) and performance in assignments (80%).

Related courses

  • MCS.T204 : Introduction to Computer Science
  • MCS.T224 : Programming I

Prerequisites (i.e., required knowledge, skills, courses, etc.)

Experience in functional programming would be helpful, but is not required.

Page Top