This course covers faults and their manifestation, issues, theory, techniques of reliable systems design, testing, design for testability, self-checking and fail-safe circuits, coding techniques, system-level fault diagnosis, fault-tolerant communication, reliable software design, and evaluation criteria. Students require a prerequisite of basic knowledge of digital systems design or permission of instructor.