This course is intended for the Master's student and computer engineer who likes practical programming and problem-solving! After completing this course, you will have the knowledge to plan and set up a real-time system both on paper and in practice. The course centers around the problem of achieving timing correctness in embedded systems, which means to guarantee that the system reacts within the real-time requirements. Examples of such systems include airbags, emergency breaks, avionics, and also multi-media systems like video playback and QoS in web servers. The course teaches how to plan real-time systems, in theory, using established mathematical proofs and how to implement them in practice by using the most common scheduling methods. We also learn and how to program the system in the C language using the FreeRTOS real-time kernel. Finally, we have a look at the future of real-time systems namely multi-core real-time systems! This course focus on the learn-by-doing approach with many examples and real-world programming assignments. We have 5 modules, each with a gentle graded quiz in the end and one peer-reviewed programming assignment. In case you have no experience with C programming, please check you a practical course like: https://www.coursera.org/learn/arduino-platform The course is actually quite fun! -Simon Holmbacka / Åbo Akademi University Check out our whole curriculum: https://research.it.abo.fi/