The 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.