Course Number
605.729
Next Offered
Spring 2025
Primary Program
Location
Online
Course Format
Synchronous Online

All science requires mathematics. Formal methods used in developing computer systems are mathematically based techniques for describing system properties. These formal methods then can provide frameworks within which developers can specify, develop, verify, and prove systems in a systematic, rather than ad hoc manner. According to some researchers, the application of formal specification and verification methods could avoid disasters such as Heartbleed bug, Ariane 5 rocket explosion, and Therac-25 radiation therapy machine harms. This course is an introduction to the vast world of formal methods. The course starts with review of propositional logic, predicate logic, and covers set theoretic specification methods via Z, temporal specification via PTL, grammars, and logic based methods via Caml and Coq proof assistant. Each student will carry out an investigation of an existing formal verification system, applying it to a suitable problem of the student’s choice. Among possible projects will be the formal verification of problem solutions such as designing a semaphore, designing a machine learning algorithm, a web interface, a test suite, a sophisticated data structure, or a theorem.

Course Offerings

Open

Formal Methods

605.729.8VL
01/27/2025 - 05/05/2025
Mon 7:20 p.m. - 10:00 p.m.
Semester
Spring 2025
Course Format
Synchronous Online
Location
Online
Cost
$5,270.00
Course Materials