CMPT 383 Comparative Programming Languages
Spring 2026

Instructor Yuepeng Wang
Time and Location Mon 12:30 - 2:20 pm @ SWH10041
Wed 12:30 - 1:20 pm @ AQ3182
Instructor Email yuepeng@sfu.ca
Instructor Office Hours Wed 1:30 - 2:30 pm or by appointment
TA1 Qikang Liu
TA1 Email qla116@sfu.ca
TA1 Office Hours TBD
TA2 Jingqian Liu
TA2 Email jingqian_liu@sfu.ca
TA2 Office Hours TBD
TA3 David Deng
TA3 Email rda102@sfu.ca
TA3 Office Hours TBD

Course Description

This course introduces the fundamental concepts behind different kinds of imperative and functional programming languages. It covers several topics, including the basics of functional programming, formal semantics, type checking, and type inference. Students will learn to program functionally, give semantics to program constructs, interpret program elements, check the correctness of types, and automatically infer the type of expressions in a program.

Grading

Reference Books

Tentative Schedule

Week Date Topic References Assignment
1 01/05 Introduction & Haskell Basics LYAH 1, 2
01/07 Types and Type Classes LYAH 3
2 01/12 Syntax in Haskell Functions LYAH 3, PIH 4 H1
01/14 Recursion LYAH 5, PIH 6
3 01/19 Higher-Order Functions LYAH 6 H2
01/21 Modules LYAH 7
4 01/26 Custom Types and Type Classes LYAH 8 H3
01/28 IO LYAH 9 P1
5 02/02 IO & Applicatives LYAH 9, 11
02/04 Applicatives LYAH 11, PIH 12.2
6 02/09 Monads & Monoids LYAH 12, PIH 12.3 H4
02/11 Monadic Parsing LYAH 13, PIH 13
7 02/16 Family Day (No Class)
02/18 Reading Break (No Class)
8 02/23 Midterm Exam
02/25 Monadic Parsing PIH 13 P2
9 03/02 Lambda Calculus TAPL 5
03/04 Lambda Calculus H5
10 03/09 Operational Semantics TAPL 3
03/11 Operational Semantics H6
11 03/16 Type Checking TAPL 8
03/18 Type Checking TAPL 9, 11.5 P3
12 03/23 Type Inference TAPL 22.1-22.4 H7
03/25 Type Inference P4
13 03/30 Review & Logic Programming
04/01 Quiz
14 04/06 Easter Monday (No Class)
04/08 Logic Programming

Academic Honesty Statement

Academic honesty plays a key role in our efforts to maintain a high standard of academic excellence and integrity. Students are advised that ALL acts of intellectual dishonesty will be handled in accordance with the SFU Academic Honesty and Student Conduct Policies (https://www.sfu.ca/policies/gazette/student.html).