Embedded cyber-physical systems combine digital programmable devices with physical actuators and sensors in the real world. The importance of such systems is growing, as software allows more flexible control, for example, in autonomous driving, Industry 4.0, smart homes, etc. However, as software takes over more safety-related tasks and controls critical infrastructure, correct and fault-tolerant programming is essential.
Course Objectives
This course introduces well-established software-engineering principles, including object-oriented programming, its implementation in the Java programming language, software engineering practices and development processes, and formal modeling tools. After taking this course, the students know how to approach a large software project in a structured way. Further, they know how to write high-quality source code that is maintainable and extendable.
Lab
Find more information about the included lab here.
Prerequisites
Students taking this course should be familiar with imperative programming languages, e.g., C, Pascal, Fortran, or similar. The course provides a quick summary of imperative programming, but students without any programming knowledge should be prepared to put additional effort into catching up.