The primary purpose of this course is to present an overview of real-time computing. Basic concepts, terminology, and problems of real-time computing are introduced. The constraints of real-time computing are used to contrast real-time applications from applications that are not real-time. The course focuses on software solutions to real-time problems. Issues that are addressed include scheduling, specification of system requirements and design, real-time software architectures, languages and operating systems for real-time computing, real-time problems in a distributed processing system, and hardware-software interfaces. After successfully completing this course, the student will be able to identify and propose solutions to basic problems in real-time computing. It is the goal of this course to motivate and prepare the student to pursue a more in-depth study of specific problems in real-time computing. REQUIREMENT: Proficiency in one high-level programming language used to develop real-time software (e.g. C, C++, or Ada). Knowledge of basic operating systems concepts generally taught in an undergraduate operating systems course.