The last decade has seen a phenomenal increase in the use of electronic components in automotive systems, resulting in the replacement of purely mechanical or hydraulic-implementations of different functionalities. Today, in high-end cars, it is common to have around 70 electronic control units (ECUs), each consisting of programmable processors, one or more microcontrollers and a set of sensors and actuators. Different functionalities (e.g. adaptive cruise control or anti-lock braking) are then implemented in a distributed fashion with parts of a task being mapped onto one or more ECUs and these ECUs exchanging messages and signals via high-speed communication buses. The heterogeneity and the distributed nature of these implementations, coupled with the emergence of new standards and protocols for the automotive domain have given rise to new challenges – both in terms of programming large-scale ECU networks, as well as in evaluating their performance and timing properties. This tuto...