System Validation (4): Modelling Software, Protocols, and other behaviour (Coursera)

Offered by EIT Digital,
System Validation (4): Modelling Software, Protocols, and other behaviour (Coursera)

System Validation is the field that studies the fundamentals of system communication and information processing. It allows automated analysis based on behavioural models of a system to see if a system works correctly. We want to guarantee that the systems does exactly what it is supposed to do. The techniques put forward in system validation allow to prove the absence of errors. It allows to design embedded system behaviour that is structurally sound and as a side effect enforces you to make the behaviour simple and insightful.

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

This means that the systems are not only behaving correctly, but are also much easier to maintain and adapt. ’Modeling Software Protocols, and other behaviour' demonstrates the power of formal methods in software modelling, communication protocols, and other examples.
Reading material: J.F. Groote and M.R. Mousavi. Modeling and analysis of communicating systems. The MIT Press, 2014.

Syllabus

WEEK 1 - Advanced modelling
We show how the behavior of simple programs and communication protocols can be modelled and analysed. Furthermore, we introduce the notion of a linear process: a simple normal form to which every behavior can be reduced. This normal form is the workhorse when it comes to the analysis of behavior.

WEEK 2 - Modelling guidelines
In this lecture you see various modelling techniques that can be used to keep the state space of your models small.

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

Related Courses

Functional Programming Principles in Scala (Scala 2 version) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Functional Programming Principles in Scala (Scala 2 version) (Coursera)

Functional programming is becoming increasingly widespread in industry. This trend is driven by the adoption of Scala as the main programming language for many applications. Scala fuses functional and object-oriented programming in a practical package. It interoperates seamlessly with both Java and Javascript. Scala is the implementation language of many important frameworks, including Apache Spark, Kafka, and Akka. It provides the core infrastructure for sites such as Twitter, Tumblr and also Coursera.

Sep 7th 2026
5-12 Weeks
IoT Networks and Protocols (edX) EdX
Curtin University,CurtinX

IoT Networks and Protocols (edX)

Learn about IoT networks and the protocols and standards associated with the Internet and how these apply to the IoT. The Internet of Things (IoT) is expanding at a rapid rate, and it is becoming increasingly important for professionals to understand what it is, how it works, and how to harness its power to improve your business.

Self Paced
Self-Paced
An Introduction to Interactive Programming in Python (Part 2) (Coursera) Coursera
Rice University

An Introduction to Interactive Programming in Python (Part 2) (Coursera)

This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple.

Sep 7th 2026
4 Weeks
Architecture, Algorithms, and Protocols of a Quantum Computer and Quantum Internet (edX) EdX
Delft University of Technology,DelftX

Architecture, Algorithms, and Protocols of a Quantum Computer and Quantum Internet (edX)

Learn the basics of quantum algorithms, quantum error-correction, micro-architectures, compilers, and programming languages for quantum processors, and protocols for the quantum internet. In this course we will demonstrate how a large-scale quantum processor could be built using these qubits. Among the topics that we will discuss are micro-architectures, compilers, and programming languages.

Self Paced
Self-Paced
Fabriquer un objet connecté (FUN) FUN
Institut Mines-Telecom

Fabriquer un objet connecté (FUN)

Ce MOOC est le deuxième volet du parcours La Fabrication Numérique. Que se passe-t-il quand les objets se connectent à Internet ? Découvrez les mécanismes et les protocoles pour connecter un objet à Internet ou connecter des objets entre eux. Vous utiliserez les technologies issues des FabLabs pour fabriquer “Nelson”, un petit objet intelligent et autonome, contrôlé par votre smartphone ou votre ordinateur. Vous apprendrez également à re-programmer votre objet à l’infini pour l’adapter à vos besoins.

No sessions available
4 Weeks
System Validation (Canvas Network) Canvas Network
Halmstad University

System Validation (Canvas Network)

Anyone who has ever designed an embedded system or a communication protocol involving several components executing simultaneously knows that such software is inherently susceptible to bugs. Typical problems include race conditions, deadlocks, and unexpected interplay between different components. The parallel nature of these systems makes it notoriously hard to detect such bugs using testing (timing, e.g., plays a crucial role). This course is designed to provide an introduction to the problems that arise in the design of such systems. It provides ways to model such systems and reason about them.

Self Paced
Self-Paced
Introduction to Data Networks and the Internet - Bachelor's (Coursera) Coursera
Illinois Tech

Introduction to Data Networks and the Internet - Bachelor's (Coursera)

This course covers current and evolving data network technologies, protocols, network components, and the networks that use them, focusing on communication to and from the Internet and Local area networks. Course content includes Internet architecture, organization, and protocols including Ethernet, 802.11, routing, switching, OSI and TCP models, DNS, SNMP, DHCP, and more.

Aug 17th 2026
5-12 Weeks
Parallel programming (Scala 2 version) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Parallel programming (Scala 2 version) (Coursera)

With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly widespread. In this course, you'll learn the fundamentals of parallel programming, from task parallelism to data parallelism. In particular, you'll see how many familiar ideas from functional programming map perfectly to to the data parallel paradigm. We'll start the nuts and bolts how to effectively parallelize familiar collections operations, and we'll build up to parallel collections, a production-ready data parallel collections library available in the Scala standard library.

Sep 7th 2026
4 Weeks
Quantitative Model Checking (Coursera) Coursera
EIT Digital

Quantitative Model Checking (Coursera)

The integration of ICT (information and communications technology) in different applications is rapidly increasing in e.g. Embedded and Cyber physical systems, Communication protocols and Transportation systems. Hence, their reliability and dependability increasingly depends on software. Defects can be fatal and extremely costly (with regards to mass-production of products and safety-critical systems).

Sep 7th 2026
5-12 Weeks