Course Catalog URL
Identifier
COMS 3420
Professor(s)
Last Updated: Spring 2025
Offered during Fall and Spring Semesters each year.
- Credits and contact hours: 3 credits, 4 contact hours
- Instructor’s or course coordinator’s name: Liyi Li
- Required Materials: Previous Lecture notes by Elsa Gunter and Liyi Li (Downloadable on Canvas)
- Other supplemental materials:
- Essentials of Programming Languages (2nd Edition) by Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes, MIT Press 2001.
- Compilers: Principles, Techniques, and Tools (also known as "The Dragon Book") by Aho, Sethi, and Ullman. Published by AddisonWesley. ISBN:0-201-10088-6.
- Modern Compiler Implementation in ML by Andrew W. Appel, Cambridge University Press 1998.
Specific course information
- Brief description of the content of the course: Study of concepts in programming languages, especially functional programming concepts. Overview of major programming paradigms, their relationship, and tradeoffs among paradigms enabling sound choices of programming language for application-specific development. Programming projects.
- Prerequisites or co-requisites: Minimum of C- in COMS 2280 and MATH 1650; COMS 2300 or CPRE 3100
- Required, elective, or selected elective? Required
Specific goals for the course
Upon completing this course, students will be able to do the following:
- New programming paradigm
- Functional programming
- Environments and Closures
- Patterns of Recursion
- Typing
- Type systems
- Unification Algorithms
- Type Inferencing
- Programming Language Semantics
- Operational Semantics
- Lambda Calculus
- Hoare Logic
Brief list of topics to be covered
- Program Environments
- Program Evaluation Orders
- Pattern Matching
- Type Systems
- Unifications
- Program Semantics
- Lambda Calculus
- Axiomatic Semantics such as Hoare Logic