AAA551: Programming Language Theory, 2026 Spring

AAA551: Programming Language Theory, 2026 Spring

Course Information

Course Materials

Grading

Please use the LMS for the attendance check and the submission of homework.

  • Homework: 80%
  • Attendance: 20%

Installation of Scala and sbt

Scala is a general-purpose programming language combining object-oriented and functional programming in one concise, high-level language. Scala’s static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries.

The interactive build tool sbt is built for Scala and Java projects.

Please download and install them using the following links:

Schedule

# Date Title PDFHomework
0 03/03 Course Overview
1 03/05 Basic Introduction to Scala ex01
Part 1: Semantics
2 03/10 Big-Step Operational Semantics
3 03/12 Small-Step Operational Semantics
4 03/17 Evaluation Context and Lambda Calculus
5 03/19 Denotational Semantics
6 03/24 Fixed-Point Theory
7 03/26 Trace Semantics
8 03/31 Trace Properties
9 04/02 Abstract Machines hw01
(by 04/16)
10 04/07 Axiomatic Semantics
11 04/09 Systematic Program Proofs
12 04/14 Separation Logic (1)
13 04/16 Separation Logic (2)
Part 2: Type System
14 04/28 Simply-Typed Lambda Calculus
15 04/30 Type Soundness
16 05/05 Type Extensions
17 05/07 Universal Types
18 05/12 Existential Types
19 05/14 Substructural Types
20 05/19 Effect Types
21 05/21 Abstract Interpretation (1)
22 05/26 Abstract Interpretation (2)
23 05/28 Flow-Sensitive Type Analysis hw02
(by 06/11)
24 06/02 Context-Sensitive Type Analysis
25 06/04 Curry–Howard Isomorphism
26 06/09 Dependent Types
27 06/11 Course Review