Verification and Synthesis of Autonomous Systems (Coursera)

Verification and Synthesis of Autonomous Systems (Coursera)

This course will provide different techniques on the verification of autonomous systems against stability, regular, or omega-regular properties. Such techniques include Lyapunov theories, reachability analysis, barrier certificates, and model checking. Finally, it will introduce several techniques on designing controllers enforcing properties of interest over the original autonomous systems.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

This course is part of the Foundations of Autonomous Systems Specialization.

What you'll learn

  • Analyze stability properties of linear systems
  • Compute over-approximations of reachable sets for some classes of systems
  • Perform model checking for finite systems
  • Synthesize controllers for safety and reachability specifications for finite systems using fixed-point algorithms

Syllabus

Course Introduction
Welcome to the beginning of our exploration into formal verification and synthesis within the model-based design framework. In this introductory module, we will guide you through the key processes of specification, design, verification, and refinement of systems. We will delve into the vital role of formal methods in guaranteeing the correctness of systems. Through captivating examples, we will demonstrate the importance of formal verification, especially in safety-critical and life-critical applications. This module lays the foundation for the more advanced topics we will address throughout the course.

Verification of Finite Systems
In this module, we focus on the verification of finite systems, particularly emphasizing regular safety properties and ω-regular properties (including those expressed as linear temporal logic formulae). We will explore a variety of verification techniques and delve into the theoretical underpinnings essential for understanding how finite systems are verified. Through detailed examples and clear, comprehensive explanations, we aim to provide a deep understanding of how these properties are verified in the context of finite systems.

Synthesis for Finite Systems
In this module, we explore the synthesis of controllers for finite systems, focusing on enforcing certain linear temporal logic (LTL) formulas, including safety, reachability, persistence, and recurrence. We aim to understand how controllers can be designed to render specific LTL formulas for closed-loop systems. The module provides essential theoretical frameworks and practical algorithms necessary for synthesizing such controllers, with an emphasis on the roles of fixed-point operators and algorithms in the computation processes. Additionally, we will discuss various synthesis techniques that depend on the properties of the system and the involved LTL formulas.

Abstraction and Refinement
In this module, we will explore the concepts of abstraction and refinement within the context of control systems. We will delve into feedback refinement relations to understand how controllers can be modified or replaced to meet new specifications without altering the overall system behavior. The module also covers the computation of abstractions, demonstrating how we derive abstract models from complex systems to facilitate analysis and design. Additionally, we will discuss practical methods for abstracting different types of control systems, equipping us with the skills to apply theoretical concepts in real-world scenarios.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Intelligent Systems: An Introduction to Deep Learning and Autonomous Systems (FutureLearn) FutureLearn
University of York

Intelligent Systems: An Introduction to Deep Learning and Autonomous Systems (FutureLearn)

Discover the benefits and risks of deep learning and its uses in systems such as assistive technology and facial recognition. Delve into the inner workings of deep learning. From Ada Lovelace until the first decade of this century, we have relied on expert computer programmers to design and write software.

Self Paced
3 Weeks
How Computers Work (Coursera) Coursera
University of London,Goldsmiths, University of London

How Computers Work (Coursera)

Computers are everywhere, they aren't just the desktops and laptops we use for work but the phones in our pockets and even the watches on our wrists are also computers. You probably use a computer every day and in fact you are reading this on a computer! Just because we use computers all the time, doesn't mean that we understand them, or find them easy to use. Computer Science is the science of computers, it is the field of knowledge that experts use to understand computer systems. Knowing a little computer science will help you understand the computers all around you.

Sep 21st 2026
4 Weeks
Building a Future with Robots (FutureLearn) FutureLearn
The University of Sheffield

Building a Future with Robots (FutureLearn)

Explore the role of robots and autonomous systems in the factories, homes, hospitals, schools and cars of our near future. In the near future, many of us will work alongside robots. Knowledge of robotics and autonomous systems will be a helpful skill for a surprising number of today’s careers. On this course, we’ll look at current and future developments in the field of robotics that could shape many different aspects of our daily lives.

Available now
3 Weeks
How to Code: Complex Data (edX) EdX
The University of British Columbia,UBCx

How to Code: Complex Data (edX)

Learn how to design more complex programs, using new data structures, abstraction, and generative recursion. As your program requirements get more complex, you will find that simple additions to the design method make it easy to write well-structured and well-tested code that is easy to maintain. By learning how to capture common data and control structures using abstraction, your programs will get shorter and better tested.

Self Paced
Self-Paced
Computational Thinking for K-12 Educators: Abstraction, Methods, and Lists (Coursera) Coursera
University of California, San Diego

Computational Thinking for K-12 Educators: Abstraction, Methods, and Lists (Coursera)

How do gamers cause things to happen when they hit buttons on their controller? How does the computer keep track of gamer's scores? This class teaches the concepts of nested loops, events, and variables. For each concept, we'll start by helping you connect real-world experiences you are already familiar with to the programming concept you are about to learn. Next, through a cognitively scaffolded process we'll engage you in developing your fluency with problem solving with nested loops, events, and variables in a way that keeps frustration at a minimum.

Aug 26th 2026
5-12 Weeks
Abstraction, Problem Decomposition, and Functions (Coursera) Coursera
University of Colorado System

Abstraction, Problem Decomposition, and Functions (Coursera)

This course is the third course in the specialization exploring both computational thinking and beginning C programming. Rather than trying to define computational thinking, we’ll just say it’s a problem-solving process that includes lots of different components. Most people have a better understanding of what beginning C programming means!

Sep 7th 2026
4 Weeks
Algorithms, Part I (Coursera) Coursera
Princeton University

Algorithms, Part I (Coursera)

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.

Sep 21st 2026
5-12 Weeks
Secure Software Development: Verification and More Specialized Topics (edX) EdX
Linux Foundation,LinuxFoundationX

Secure Software Development: Verification and More Specialized Topics (edX)

Learn how to verify software for security, and take a deeper dive into the basics of applying threat models and cryptography. Modern software is under constant attack, but many software developers have never been told how to effectively counter those attacks. This course works to solve that problem, by explaining the fundamentals of developing secure software.

Self Paced
Self-Paced