The critical issue in modern computer science and engineering education is to provide the industry with an influx of graduates understanding the internal working of modern reactive and time-critical systems where the computer software meets the hardware. Most of the real-life applications require knowledge of not only developing algorithms and programs, but also using the system resources, connecting to non-standard devices, and smoothly integrating with the operating system.

The objective of the real-time course is to present basic real-time concepts and teach students to develop programs using operating system resources. The concepts of timing, concurrency, inter-process communication, resource contention, priorities, and input/output are discussed in a format providing background, example, and the follow-up experiments. The laboratory infrastructure is designed to promote an asynchronous and discovery-based learning environment.