This course introduces a system (hardware and software) view of design issues in reliable computing. The material represents a broad spectrum of hardware and software error detection and recovery techniques. The lectures discuss how these techniques interplay; e.g., which techniques can be provided in hardware, operating system, and network communication layers, and what can be provided via a distributed software layer and in the application itself. Prerequisite is ECE 411.