This course will explore the fundations of modern Real-time operating systems from the programmer's perspective. Topics include structure of real-time embedded systems, interrupts, concurrent task synchronization and communication, inter-process interface and multitasking, sharing resources, schedulability and reliability. The course will provide a particular emphasis on predictable scheduling algorithms and provide the basic methodologies for designing predictable computing systems useful in supporting time critical IoT systems. The course also discuss popular open-source FreRTOS to identify the benefits and weaknesses in deciding whether or not to adopt more traditional, less powerful, techniques for a project.
This module is concerned with the design and implementation of embedded and distributed analytics for IoT applications such as: predictive maintenance, person-centered health analytics, anomaly detection, adaptive automatic scheduling, self-driving cars, smart cameras, and so on. A particular focus will be set on Artificial Intelligence (AI) and Machine Learning (ML) algorithms. Embedded/Edge and Distributed analytics has gained a lot of attention in the last years as a solution to solve problems created by Cloud-based analytics such as the big data deluge, data Privacy & Security, limited bandwidth for data streaming transmission and large latency for feedback to edge devices. After completing this module, the student will have gained the necessary skills to undertake research in embedded AI and ML. Furthermore, he/she will be able to design and prototype a basic embedded and distributed analytics application.