We may earn an affiliate commission when you visit our partners.
Course image
Majid Zamani

This course will discuss different ways of formally modeling requirements of interest for autonomous systems. Examples of such requirements include stability, invariance, reachability, regular languages, omega-regular languages, and linear temporal logic properties. In addition, it will introduce non-deterministic finite and büchi automata for recognizing, respectively, regular languages and omega-regular languages.

Read more

This course will discuss different ways of formally modeling requirements of interest for autonomous systems. Examples of such requirements include stability, invariance, reachability, regular languages, omega-regular languages, and linear temporal logic properties. In addition, it will introduce non-deterministic finite and büchi automata for recognizing, respectively, regular languages and omega-regular languages.

This course can be taken for academic credit as part of CU Boulder’s MS in Computer Science degrees offered on the Coursera platform. These fully accredited graduate degrees offer targeted courses, short 8-week sessions, and pay-as-you-go tuition. Admission is based on performance in three preliminary courses, not academic history. CU degrees on Coursera are ideal for recent graduates or working professionals. Learn more:

MS in Computer Science: https://coursera.org/degrees/ms-computer-science-boulder

Enroll now

What's inside

Syllabus

Course Introduction
In this course, we delve into both low-level and high-level specifications, fundamental to the development of safe autonomous systems. This module is specifically designed to equip students with an in-depth understanding of expressing system behaviors through formal methods, including linear temporal logic and automata on both finite and infinite strings. Through a collection of detailed examples and practical applications, participants will acquire the skills needed to define and analyze key properties of autonomous systems, such as safety and reachability.
Read more
Low-Level Specifications
This module offers a concise introduction to normed vector spaces and stability concepts in autonomous systems, encompassing both asymptotic stability and global asymptotic stability. It emphasizes the application of Lyapunov's Stability Theorem for the formal verification of these properties in complex systems, including its application to various simple systems, such as linear ones. Through illustrative examples, we will demonstrate the significance of these concepts in analyzing and ensuring the stability of systems.
High-Level Specifications: Reachability, Safety, Regular and ω-Regular Properties
Delve into the topic of reachable sets and uncover their critical role in guaranteeing system safety. This module introduces frameworks for exploring computational techniques to over-approximate reachable sets across diverse system classes. You will have the chance to apply your knowledge in real-world contexts, investigate the use of zonotopes, and recognize their beneficial properties in the computation of reachable sets. Moreover, we delve into fundamental concepts of formal languages, and regular and omega-regular expressions, offering succinct and formal methods to express regular and omega-regular languages, respectively.
Nondeterministic Finite and Büchi Automata (NFA and NBA)
This module immerses you in the essential principles of regular and ω-regular properties and how they are represented via non-deterministic finite automata (NFA) and Büchi automata (NBA), respectively. You will study the notation and architecture of NFAs and NBAs, master the construction of regular and ω-regular expressions, and grasp their correlation with these automata. The course will navigate you through the conversion of NFAs to regular expressions and NBAs to ω-regular expressions and the inverse, elucidating the significance of these concepts in the verification of finite and infinite behaviors of systems.
Linear Temporal Logic Formulae
This module provides an in-depth exploration of Linear Temporal Logic (LTL) formulas, a mathematical formalism for describing languages containing infinite words. It presents a framework for articulating the temporal dimensions of system behaviors, offering a syntax that closely mirrors natural language. By melding propositional logic with temporal operators, LTL furnishes a powerful toolkit for specifying the rich behaviors of systems.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
This course provides a comprehensive introduction to formal methods for modeling requirements of autonomous systems and their behaviors
Suitable for intermediate learners seeking to strengthen their foundation in formal methods
Potential dealbreaker: Requires learners to have basic knowledge in systems engineering or similar
Covers key concepts in non-deterministic finite and büchi automata
Examines formal languages, regular and omega-regular expressions, offering a structured approach to specifying system behaviors
Leverages linear temporal logic formulae to describe the temporal dimensions of system behaviors

Save this course

Save Requirement Specifications for Autonomous Systems to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Requirement Specifications for Autonomous Systems with these activities:
Review Linear Algebra
Ensure a solid foundation by reviewing the principles of linear algebra.
Browse courses on Linear Algebra
Show steps
  • Review the basics of vector spaces.
  • Practice matrix operations.
  • Solve systems of linear equations.
Glossary of Key Terms
Build a strong foundation by creating a comprehensive glossary of key terms used in the course.
Show steps
  • Review the course materials.
  • Identify and define the key terms.
  • Organize the terms in a logical manner.
Tutorials on Nondeterministic Automata
Supplement your understanding through tutorials on nondeterministic automata, a core concept in this course.
Browse courses on Regular Expressions
Show steps
  • Find tutorials on nondeterministic automata.
  • Watch or read the tutorials.
  • Complete the exercises or quizzes provided in the tutorials.
Eight other activities
Expand to see all activities and additional details
Show all 11 activities
Review: Introduction to Automata Theory, Languages, and Computation
Enhance your understanding by reading a foundational text in the field of automata theory, languages, and computation.
Show steps
  • Read the assigned chapters.
  • Complete the exercises at the end of each chapter.
  • Summarize the key concepts.
Practice Questions on Reachability
Strengthen your understanding of reachability by solving practice problems.
Show steps
  • Review the concept of reachability.
  • Solve practice problems on reachability.
  • Check your answers.
Practice reachability analysis
This activity will provide you with hands-on experience in applying the techniques of reachability analysis, a key concept in autonomous systems.
Browse courses on Reachability Analysis
Show steps
  • Choose a simple autonomous system, such as a unicycle robot.
  • Define the state space of the system.
  • Develop a reachability analysis algorithm.
  • Implement the algorithm in a programming language of your choice.
  • Apply the algorithm to the autonomous system to compute its reachable states.
Develop a Requirements Specification using LTL
Gain practice applying LTL to a real-world problem by creating a requirements specification for an autonomous system.
Show steps
  • Identify the system and its requirements.
  • Model the system using LTL.
  • Write the requirements specification using LTL.
  • Validate the requirements specification.
Develop a Visual Representation of Automata
Enhance your comprehension by creating visual representations of automata, making these complex concepts more intuitive.
Show steps
  • Choose an automaton to represent.
  • Design a visual representation.
  • Create the visual representation.
Design a Büchi automaton to represent a safety requirement
Designing a Büchi automaton for a safety requirement will help you master the techniques of formal specification and verification of autonomous systems.
Show steps
  • Identify a safety requirement for an autonomous system.
  • Translate the requirement into a Büchi automaton.
  • Draw the state diagram of the automaton.
  • Write a formal specification of the automaton.
  • Verify that the automaton satisfies the safety requirement.
Design a Stability Analysis Prototype
Apply the concepts of stability analysis to a specific system by designing a prototype.
Browse courses on Stability
Show steps
  • Choose a system to analyze.
  • Develop a mathematical model of the system.
  • Apply Lyapunov's Stability Theorem to the system.
  • Design a prototype to demonstrate the stability analysis.
Develop a prototype of an autonomous navigation system
This project will allow you to apply the concepts learned in the course to a real-world problem and gain practical experience in autonomous systems development.
Browse courses on Autonomous Navigation
Show steps
  • Define the requirements for the navigation system.
  • Design the architecture of the system.
  • Implement the system in a programming language of your choice.
  • Test and evaluate the system.
  • Deploy the system on a real-world platform.

Career center

Learners who complete Requirement Specifications for Autonomous Systems will develop knowledge and skills that may be useful to these careers:
Safety Engineer
Safety Engineers apply engineering principles to design and implement systems that are safe for human use. They use their knowledge of engineering and safety to identify and mitigate potential hazards. This course can help Safety Engineers build a foundation in formal methods for specifying and analyzing system requirements, which is essential for ensuring the safety of autonomous systems.
Systems Analyst
Systems Analysts study the needs of organizations and develop solutions to meet those needs. They often work with engineers and other technical staff to design and implement new systems or improve existing ones. This course can help Systems Analysts build a foundation in formal methods for specifying and analyzing system requirements, which is essential for ensuring the safety and reliability of complex systems.
Software Engineer
Software Engineers design, develop, and test software systems. They use their knowledge of computer science and engineering to create software that meets the needs of users. This course can help Software Engineers build a foundation in formal methods for specifying and analyzing system requirements, which is essential for ensuring the safety and reliability of software systems.
Project Manager
Project Managers plan, organize, and execute projects. They work with stakeholders to define project goals, develop project plans, and track project progress. This course can help Project Managers build a foundation in formal methods for specifying and analyzing system requirements, which is essential for ensuring the success of complex projects.
Business Analyst
Business Analysts study the needs of organizations and develop solutions to meet those needs. They often work with stakeholders to define business requirements and develop business plans. This course can help Business Analysts build a foundation in formal methods for specifying and analyzing system requirements, which is essential for ensuring the success of business projects.
Quality Assurance Analyst
Quality Assurance Analysts test software systems to ensure that they meet the needs of users. They use their knowledge of software testing to identify and fix bugs. This course can help Quality Assurance Analysts build a foundation in formal methods for specifying and analyzing system requirements, which is essential for ensuring the quality of software systems.
Data Scientist
Data Scientists use their knowledge of data science to extract insights from data. They use their skills in statistics, machine learning, and data visualization to develop models and algorithms that can help organizations make better decisions. This course can help Data Scientists build a foundation in formal methods for specifying and analyzing system requirements, which is essential for ensuring the accuracy and reliability of data-driven models.
Machine Learning Engineer
Machine Learning Engineers design, develop, and deploy machine learning models. They use their knowledge of machine learning and engineering to create models that can learn from data and make predictions. This course can help Machine Learning Engineers build a foundation in formal methods for specifying and analyzing system requirements, which is essential for ensuring the safety and reliability of machine learning models.
Artificial Intelligence Engineer
Artificial Intelligence Engineers design, develop, and deploy artificial intelligence systems. They use their knowledge of artificial intelligence and engineering to create systems that can learn from data, make decisions, and solve problems. This course can help Artificial Intelligence Engineers build a foundation in formal methods for specifying and analyzing system requirements, which is essential for ensuring the safety and reliability of artificial intelligence systems.
Computer Scientist
Computer Scientists conduct research in the field of computer science. They use their knowledge of computer science to develop new algorithms, data structures, and programming languages. This course can help Computer Scientists build a foundation in formal methods for specifying and analyzing system requirements, which is essential for ensuring the correctness and efficiency of computer programs.
Electrical Engineer
Electrical Engineers design, develop, and test electrical systems. They use their knowledge of electricity and engineering to create systems that meet the needs of users. This course may be helpful for Electrical Engineers who want to learn more about formal methods for specifying and analyzing system requirements.
Mechanical Engineer
Mechanical Engineers design, develop, and test mechanical systems. They use their knowledge of mechanics and engineering to create systems that meet the needs of users. This course may be helpful for Mechanical Engineers who want to learn more about formal methods for specifying and analyzing system requirements.
Civil Engineer
Civil Engineers design, develop, and test civil systems. They use their knowledge of civil engineering and engineering to create systems that meet the needs of users. This course may be helpful for Civil Engineers who want to learn more about formal methods for specifying and analyzing system requirements.
Chemical Engineer
Chemical Engineers design, develop, and test chemical systems. They use their knowledge of chemistry and engineering to create systems that meet the needs of users. This course may be helpful for Chemical Engineers who want to learn more about formal methods for specifying and analyzing system requirements.
Biomedical Engineer
Biomedical Engineers design, develop, and test biomedical systems. They use their knowledge of biomedical engineering and engineering to create systems that meet the needs of users. This course may be helpful for Biomedical Engineers who want to learn more about formal methods for specifying and analyzing system requirements.

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Requirement Specifications for Autonomous Systems.
Provides a comprehensive introduction to linear temporal logic (LTL), a formal logic for reasoning about the temporal behavior of systems. It covers the syntax and semantics of LTL, as well as its applications to software and hardware verification.
Provides a comprehensive introduction to model checking, a formal verification technique for finite-state systems. It covers the theoretical foundations of model checking, as well as practical applications to software and hardware systems.
Provides a comprehensive introduction to Lyapunov stability theory, a mathematical theory for analyzing the stability of systems. It covers the basic concepts of Lyapunov stability theory, as well as its applications to control theory and robotics.
Provides a comprehensive introduction to nonlinear systems, a type of system that is characterized by its nonlinear behavior. It covers the basic concepts of nonlinear systems, as well as their applications to control theory and robotics.
Provides a comprehensive introduction to model-based design for embedded systems. It covers the different types of model-based design techniques, as well as their applications to the design of embedded systems.
Provides a comprehensive introduction to embedded systems. It covers the different types of embedded systems, as well as their applications to different industries.
Provides a comprehensive introduction to cyber-physical systems. It covers the different types of cyber-physical systems, as well as their applications to different industries.
Provides a comprehensive introduction to optimal control theory. It covers the different types of optimal control techniques, as well as their applications to the design of control systems.
Provides a comprehensive introduction to control systems engineering. It covers the different types of control systems, as well as their applications to different industries.
Provides a comprehensive introduction to automata theory, languages, and computation. It covers the basic concepts of automata theory, as well as more advanced topics such as regular expressions, context-free grammars, and Turing machines.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Requirement Specifications for Autonomous Systems.
Verification and Synthesis of Autonomous Systems
Most relevant
Advanced Data Structures, RSA and Quantum Algorithms
Most relevant
Data Mining Pipeline
Most relevant
Dynamic Programming, Greedy Algorithms
Most relevant
Data Mining Methods
Most relevant
Data Mining Project
Most relevant
Applications of Software Architecture for Big Data
Most relevant
Fundamentals of Software Architecture for Big Data
Most relevant
When to Regulate? The Digital Divide and Net Neutrality
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser