Foundations of Cyber-Physical Systems

Wintersemester 2014–2015

Lecture @ TU Kaiserslautern

Module: Foundations of Cyber-Physical Systems (INF–88–54-V–7)


Class: Tuesdays and Thursdays, 10:00am–11:30am (s.t.), MPI-SWS building 26, Room 111

The class will be offered as a block lecture—see semester schedule below.

Instructors: Björn Brandenburg ( and Rupak Majumdar (

Teaching assistents: Susanne van den Elsen ( and Arpan Gujarati (

Office hours: by appointment.

Grades will be based on a comprehensive final exam.


Cyber-physical systems—technologies that inherently require computers to closely monitor and control the physical environment—are pervasive in modern society. Common examples include automotive systems (e.g., engine control, anti-lock brakes, drive-by-wire, etc.), avionics (e.g., autopilots, fly-by-wire), medical devices (e.g., pacemakers), and many industrial systems (e.g., factory automation, process control, and control of the power grid).

The defining characteristic of a cyber-physical system is that it cannot be understood solely as a computing system, nor can it be adequately described using only traditional engineering approaches. Rather, to analyze and understand such a system as a whole, it is essential to consider both its computational and physical aspects, and in particular the resulting interactions.

Cyber-physical systems are often safety-critical (i.e, system failure can have disastrous consequences) and typically subject to stringent real-time constraints (i.e., the system must always react in time), and thus are also commonly subject to certification requirements and/or formal validation efforts. That is, not only must a cyber-physical system work in practice, it must also be possible to formally establish its overall correctness a priori, which requires a sound theory of cyber-physical systems.

To this end, the focus of this advanced course is to explore the formal foundations of cyber-physical systems that allow

  1. modeling, predicting, and controlling a system’s physical (continuous) and computational (discrete) behavior, and
  2. assuring the timeliness and correctness of its implementation.

Covered Topics


The course does not have any formal prerequisites. We do expect mathematical and programming maturity commensurate with an undergraduate degree in computer science. Some familiarity with finite state machines, ordinary differential equations, and programming experience will be helpful.


The course involves working on an independent project, either individually or in small groups. The deliverable from each project is a final report (approximately 6–8 pages in IEEE format) and a short presentation in class. The project is a pre-requisite to appearing in the final exam.

Academic Integrity

The work you submit in this course must be the result of your individual effort. You may discuss homework problems and general proof strategies or algorithms with other students in the course, but you must not collaborate in the detailed development or actual writing of problem sets. This implies that one student should never have in his or her possession a copy of all or part of another student’s homework. It is your responsibility to protect your work from unauthorized access. In writing up your homework you are allowed to use any book, paper, or published material. However, you are not allowed to ask others for specific solutions, either in person or by using electronic forums such as newsgroups. Of course, during the administration of exams any form of cooperation or help is forbidden.

Academic dishonesty has no place in a university; it wastes our time and yours, and it is unfair to the majority of students. Any dishonest behavior will be severely penalized and may lead to failure in the course.

Semester Schedule

The class will be offered as a block lecture. There will be two lectures per week in the fist half of the semester, and no lectures in the second half to facilitate project work.

This schedule is preliminary and subject to change.