COMP 241: Programming Language Semantics (Fall 2025)
Course Description
This course studies the foundations of programming languages by exploring the static and dynamic language semantics from a theoretical perspective. Formal techniques are used to specify programming language semantics and the associated provable guarantees that these specifications provide.
Prerequisites: Programming Language Core Skill and Computing Theory Core Skill and Graduate or blended students in the School of Engineering and Computer Science or instructor approval.
When enrolling in this course, you should already understand the basics of functional programming, e.g., data types, pattern matching,
recursive definitions, etc. In particular, we will use Haskell to demo the implementation of different concepts. Basic understanding of how programming language syntax and semantics work is also required. Further, you should be comfortable
with basic mathematical concepts such as theorems, proofs, induction, contradiction, etc.
Website: Syllabus, Canvas LMS
Credits: 3 units
Course Catalog: hhttps://catalog.pacific.edu/search/?search=comp+241
Administration
Instructor: Sepehr Amir-Mohammadian
Email:
Class time/location: MW 8:00AM - 09:20AM, Khoury 207
Office hours: MW 14:00 – 15:15, Chambers 122
Students need to request alternate meeting times outside of scheduled office hours through email.
Learning Objectives
The vision for this course is: How can we, as computer scientists, master the core concepts of programming language theory and type systems, and apply this understanding to analyze, design, and reason about languages with confidence and rigor?
You will have many different opportunities to gain this knowledge through:
- Class activities
- Homework assignments
- Student presentations
- Class lectures, discussions, and reading assignments
After taking this class, the student is expected to be able to understand:
- the syntax, semantics, and evaluation of untyped and simply typed lambda calculi, including substitution, variable binding, and the Curry-Howard correspondence,
- the design and properties of type systems, including type safety, and how typing relates to language features such as base types, tuples, records, sums, variants, lists, exceptions, and mutable references,
- the principles and rules of subtyping, including subsumption, the subtype relation, and type hierarchies with top, bottom, intersection, and union types,
- how to implement interpreters and type checkers for various language fragments, and extend them with additional features while preserving soundness and expressiveness
Course Material
We will use the following textbooks and additional resources throughout the semester:
- Types and Programming Languages, by Benjamin C. Pierce, 2002, MIT Press.
- Foundations of Programming Languages, by John C. Mitchell, 1996, MIT Press.
Slides, assignments, and supplementary material will be posted on Canvas.
Major topics include:
- An overview of mathematical foundations: sets, relations, functions, ordered sets, sequences, and induction
- Syntax and semantics of untyped arithmetic expressions and the untyped lambda calculus
- Substitution, variable binding, and nameless term representation
- Simply typed lambda calculus, typing rules, and the Curry-Howard correspondence
- Base types, tuples, records, sums, variants, lists, exceptions, and mutable references
- Subtyping and subsumption; top, bottom, intersection, and union types
- Normalization for simply typed systems
- Haskell-based implementation of interpreters and type checkers for language fragments
- Extending interpreters and type checkers with new language features while preserving soundness
Grading and Attendance Policy
Grades are assigned on the scale below:
A | A- | B+ | B | B- | C+ | C | C- | D+ | D | F |
---|---|---|---|---|---|---|---|---|---|---|
[93,100] | [90,93) | [87,90) | [83,87) | [80,83) | [77,80) | [73,77) | [70,73) | [67,70) | [60,67) | [0,60) |
Final grades are based on:
- Reading assignments: 0%
- Class Attendance and Activities: 10%
- Homework Assignments: 50%
- Presentation: 10%
- Exam: 30%
Attendance:
- Class attendance and participation is necessary and expected. There will be numerous activities in class, and these activities cannot be made up outside of class. Participation requires that you are properly prepared for classroom discussions, and have completed all reading assignments before the relevant class.
- You will only be allowed three excused or unexcused class misses during the semester. The only acceptable excuses for missing a class, an assignment due date, or an exam are serious illness, family emergency or important professional, academic or athletic activities. Illness or family emergency may require documentation. Excuses for professional, academic or athletic activities must be approved by the instructor in advance. After three misses, no excuses will be accepted.
- Students missing a class are responsible for making up the material discussed in that class on their own. Students are responsible for being aware of any announcements made during their absence.
Exams
Three exams will be conducted during the semester, 2 midterm exams and a final exam. The schedule will be announced in class and content and format will be discussed prior to the exams. Make up exams will only be scheduled in emergency situations.
Assignment Guidelines
Release and Submission
- Reading Assignments: Reading assignments will be released on the course Canvas page one or two days before each lecture session. Students are encouraged to study the referred material before each class session. There are not any submissions for reading assignments.
- Class Activities: Class activities can be individual or group-based and they will be released on the course Canvas page or embedded in the lecture. If group-based, the size of the group would depend on the nature of activity. Such groups will be made in ad-hoc manner, during the class session. The goal is to accomplish all lab activities until the end of each session.
- Homework Assignments: Homework assignments will be released on the course Canvas page with a clearly indicated due date. Timely submissions are accepted until 11:59PM on the due date. Homework assignments are group-based with max size of 2 students per group.
- Presentations: Presentations will be will be conducted at the end of semester with a clearly indicated due dates. Presentaions are also group-based with maximum two students per group.
Solutions: Solutions to homework assignments, class activities, and exams may be submitted electronically via Canvas, or in class on pencil-and-paper when appropriate.
Late policy: Deliverables for homework assignments will be accepted up
to three days late, with a 5% per day penalty.
All work is individual unless otherwise specified, and subject to the Academic Honesty Policy.
Academic Honesty
The Honor Code calls upon each student to exhibit maturity, responsibility, and integrity. Students are expected to:
- Act honestly in all matters
- Encourage academic integrity
- Discourage cheating or dishonesty
- Inform the instructor/administration with good‑faith evidence of violations
Violations are referred to the Office of Student Conduct and Community Standards and may result in penalties up to failure/suspension/dismissal. See Tiger Lore and online policy.
Course‑specific policy:
- Collaboration on planning/strategy/debugging is encouraged.
- Do not submit someone else’s work.
Marginal cases may be resolved via oral examination to assess individual understanding.
Accommodations for Students with Disabilities
If you require accommodations, visit pacific.edu/disabilities to contact SSD and request services.
- New students: apply via New Students Apply Here.
- Returning students: request letters each semester via Returning Students Login Here.
SSD: McCaffrey Center (2nd Floor) • 209‑946‑3221 • ssd@pacific.edu • website
Nondiscrimination Policy
The University of the Pacific does not discriminate in the administration of its programs/activities based on race, color, national and ethnic origin, handicap, sexual orientation or preference, sex, or age.
The instructor reserves the right to change these policies and guidelines at any time, and students agree to abide by the most recent version of this syllabus.