Course syllabus adopted 2026-02-16 by Head of Programme (or corresponding).
Overview
- Swedish nameFormella metoder för säkerhet
- CodeDAT705
- Credits7.5 Credits
- OwnerMPALG
- Education cycleSecond-cycle
- Main field of studyComputer Science and Engineering
- DepartmentCOMPUTER SCIENCE AND ENGINEERING
- GradingTH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail
Course round 1
Teaching language
EnglishApplication code
02143Open for exchange students
Yes
Credit distribution
Module | Sp1 | Sp2 | Sp3 | Sp4 | Summer | Not Sp | Examination dates |
|---|---|---|---|---|---|---|---|
| 0126 Project 6 c Grading: TH | 6 c | ||||||
| 0226 Examples class 1.5 c Grading: UG | 1.5 c |
Examiner
- Alejandro Russo
- Full Professor, Computing Science, Computer Science and Engineering
Eligibility
Information missingCourse specific prerequisites
To attend the course, we recommend having completed one of the following courses:- Formal Methods for Software Development
- Logic in Computer Science
Aim
The aim of the course is to provide students with an understanding of how formal methods can be used to specify, analyse, and verify security- and privacy-critical systems, and to give practical experience with formal specification languages and automated verification tools.Learning outcomes (after completion of the course the student should be able to)
Knowledge and understanding:- explain the role of formal methods in specifying and verifying security-critical systems
- formally define and reason about key security and privacy properties using formal specification languages
- use automated verification tools to verify compliance with security policies and detect potential vulnerabilities
- critically assess the strengths and limitations of various formal techniques
Content
Formal methods are mathematical techniques for the specification, design, and verification of software and hardware systems. In the context of security, formal methods provide rigorous tools to model and analyze systems for potential vulnerabilities and ensure compliance with security policies. These methods enable the precise definition of security properties, and allow for automated verification to detect flaws that may be overlooked by traditional testing. By applying formal techniques such as model checking, and theorem proving, and using formal specification languages, developers can build systems with provable security guarantees. The course consists of a series of lectures on different formalisms and verification methods that have been developed to reason about security and privacy properties.Organisation
The course consists of lectures and a project component. The lectures include compulsory quizzes. The project work involves implementing and experimenting with methods and concepts introduced in the course. Completing and presenting the project, writing a report, and participating in a code-review session are compulsory.Literature
The course is based on publicly available material, such as research papers and lecture notes, which will be provided during the course.Examination including compulsory elements
To pass the course, the student must pass the quizzes and make a satisfactory individual contribution to the project, including implementation, presentation, participation in an in-person code review, and submission of a written report documenting the project.
The grading scale comprises Fail (U), 3, 4 and 5. For grade 3, the student must pass the quizzes and successfully complete the project with a functional implementation, report, presentation, and code review. Grades 4 and 5 are awarded based on the quality of the implementation, results, report, and presentation, in addition to fulfilling the requirements for grade 3.
The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers about disability study support.
The course syllabus contains changes
- Changes to course rounds:
- 2026-05-06: Examinator Examinator changed from Andrei Sabelfeld (andrei) to Alejandro Russo (russo) by Viceprefekt
[Course round 1] - 2026-04-24: Examinator Examinator Andrei Sabelfeld (andrei) added by Viceprefekt
[Course round 1]
- 2026-05-06: Examinator Examinator changed from Andrei Sabelfeld (andrei) to Alejandro Russo (russo) by Viceprefekt
