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 modules

Module 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