AI curriculum
Course outline for Formal Methods for Software Engineers
Tests alone may miss unexpected state transitions. Specify a small system, express its invariants, and explore formal checks before implementation.
About Formal Methods for Software Engineers
Tests alone may miss unexpected state transitions. Specify a small system, express its invariants, and explore formal checks before implementation.
Formal Methods for Software Engineers Course Objectives
- Model a system as states and transitions.
- Express safety properties as invariants.
- Interpret counterexamples and simple proof obligations.
Pre-requisites
- Programming experience and basic logical reasoning.
- Familiarity with concurrent or distributed system behavior.
Lab Setup
- Computer with a code editor and local TLA+ and Lean tooling.
- Use small models that can be checked locally.
Detailed Course Outline
Proposed modulesModule 1: Specifying behavior
- Formal specification
- State machines
- Invariants
- Model checking
Practical outcome: Identify an invalid transition in a small state model.
Module 2: Formal reasoning tools
- TLA+
- Lean
- Formal reasoning for distributed systems
Practical outcome: Compare model checking with proof-oriented reasoning.
Practical exercise
- Specify a coordination protocol, check an invariant, and explain a counterexample.
How we train
Contact us for full course details, including duration, delivery options and lab requirements.
Ask about exercises, instructor feedback and the prior knowledge you need. Tool-specific courses marked provisional may become modules in a broader course.
Discuss your learning goals