To Top Page

2026 (Current Year) Faculty Courses School of Computing Department of Mathematical and Computing Science Graduate major in Mathematical and Computing Science

Programming Language Theory

Academic unit or major
Graduate major in Mathematical and Computing Science
Instructor(s)
Youyou Cong
Class Format
Lecture (Face-to-face)
Media-enhanced courses
-
Day of week/Period
(Classrooms)
5-6 Mon (W3-201(W321)) / 5-6 Thu (W3-201(W321))
Class
-
Course Code
MCS.M428
Number of credits
200
Course offered
2026
Offered quarter
2Q
Syllabus updated
Mar 5, 2026
Language
English

Syllabus

Course overview and goals

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. Specifically, we discuss how to define the syntax, evaluation, and typing of several small programming languages.

Course description and aims

Students are expected to be able to explain the behavior of programs from a mathematical point of view.

Keywords

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

Competencies

  • 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/Objectives

Course schedule Objectives
Class 1

Basics of functional programming

Instructed in the class.

Class 2

A language with booleans and integers (1)

Instructed in the class.

Class 3

A language with booleans and integers (2)

Instructed in the class.

Class 4

A language with booleans and integers (3)

Instructed in the class.

Class 5

Review (1)

Instructed in the class.

Class 6

The lambda calculus (1)

Instructed in the class.

Class 7

The lambda calculus (2)

Instructed in the class.

Class 8

Review (2)

Instructed in the class.

Class 9

A language with exception constructs (1)

Instructed in the class.

Class 10

A language with exception constructs (2)

Instructed in the class.

Class 11

Programming with algebraic effects and handlers

Instructed in the class.

Class 12

A language with algebraic effects and handlers (1)

Instructed in the class.

Class 13

A language with algebraic effects and handlers (2)

Instructed in the class.

Class 14

Wrap-up

Instructed in the class.

Study advice (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

Evaluation methods and criteria

Evaluation is done based on class participation (10%), in-class exercises (30%), and take-home assignments (60%).

Related courses

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

Prerequisites

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