1. Overview
In this chapter, we provide an outline of the course, along with a brief motivation and key learning outcomes.
1.1. Motivation
As embedded and distributed systems are becoming ever more ubiquitous, we depend increasingly on the correctness of the software that controls such systems. This course studies the formal specification, verification, and synthesis of software.
1.2. Key learning outcomes
An understanding of the role of formal methods in the construction of software systems
Proficiency in the representative methods and tools, such as
design-by-contract
property-based testing
model-checking sequential and concurrent systems
1.3. Course outline
To be expanded…
software engineering context
logic foundations
design by contract
property-based testing
- modeling and model checking
sequential systems
concurrent systems
run-time verification
1.4. Bloom’s taxonomy
The letters refer to the successive levels of learning from the cognitive domain of Bloom’s taxonomy:
K: know/remember the term
C: comprehend/understand the concept
A: apply the technique
analyze/evaluate/create (advanced levels)
Todo
map Bloom levels to course outline