The course was held in the spring semester 2017/18 and 2018/19 (February).
This master level course presents a holistic view on computer systems. The principles of operation, data input/output and processing components of resource-constrained computer systems are examined. The course goes beyond a single computing device and considers systems composed of multiple interconnected devices. We start with an overview of cyber-physical systems, namely, the integration of computing, communication processes and physical-world sensing/actuating. We present the fundamental aspects and the key trade-offs that govern these processes. We then delve into the workings of micro-controller platforms and inspect how different peripheral and data processing components interplay. We pay a particular attention to the software modules intended to control different hardware components within a system, and to the overall orchestration of components via real-time operating systems for embedded devices. Component minimisation and falling hardware prices facilitate pervasive deployment of low-cost computing devices, thus, we study the means of distributed computation, communication and interaction among heterogeneous embedded devices. Finally, we look into real-world applications of wireless-enabled computing systems.