COS 326
Functional Programming and Formal Methods
In the world of large language models and AI coding agents, it is easier than ever to generate code, but a key question remains: How do we know the code we have generated does what we want it to? This class will introduce students to functional programming and techniques for specifying, generating, testing, and reasoning about programs. Topics include an introduction to the principles and practice of functional programming; type systems; specification of program properties; property-based testing; logic, theorem provers, and reasoning about program correctness. Prerequisite COS 226.
Topics
- an introduction to the principles and practice of functional programming
- type systems
- specification of program properties
- property-based testing
- logic
- theorem provers
- and reasoning about program correctness
Topics explicitly listed in official catalogue description
Sources
- Course catalogue ↗2026-2027