VVZ API is not affiliated with ETH Zurich. Data might be outdated or incorrect. Please view the official ETHZ Vorlesungsverzeichnis for binding information.
Formal Methods and Functional Programming
Last Updated: 2026-02-05 15:19:43
Abstract
In this course, participants will learn about new ways of specifying, reasoning about, and developing programs and computer systems. The first half will focus on using functional programs to express and reason about computation. The second half presents methods for developing and verifying programs represented as discrete transition systems.
Objective
n this course, participants will learn about new ways of specifying, reasoning about, and developing programs and computer systems. Our objective is to help students raise their level of abstraction in modeling and implementing systems as well as reason formally about systems during development.
Content
In this course, participants will learn about new ways of specifying, reasoning about, and developing programs and computer systems. Our objective is to help students raise their level of abstraction in modeling and implementing systems. The first part of the course will focus on designing and reasoning about functional programs. Functional programs are mathematical expressions that are evaluated and reasoned about much like ordinary mathematical functions. As a result, these expressions are simple to analyze and compose to implement large-scale programs. We will cover the mathematical foundations of functional programming, the lambda calculus, as well as higher-order programming, typing, and proofs of correctness. The second part of the course will focus on modeling and designing discrete transition systems. Here students will come to understand the difference between correct construction versus final validation. Our focus will include both background and applications. The background reviews logic, set theory, and a development framework for discrete transition model construction. The applications include the development of sequential, distributed, and concurrent programs as well as hardware systems and complete systems (e.g. embedded systems).
General Information
- Language
- English
- Levels
- BSC
- Frequency
- Yearly recurring
Examination
- Type
- end-of-semester examination
Course Components
| Type | Title | Time & Place | Hours |
|---|---|---|---|
| lecture | Formal Methods and Functional Programming |
|
3 h weekly |
| exercise | Formal Methods and Functional Programming |
|
2 h weekly |