BGSU Logo
BGSU Home BGSU Academics BGSU Admissions The Arts BGSU Athletics Libraries Offices
Department of Computer Science
Computer Science Home Undergraduate Program Graduate Program Computer Science Faculty Academic Advising Mission and Vision
Small font Medium font Larger font Largest font
Left Bracket CS 6150: Reliable Computing Right Bracket

Course Description

Techniques for writing reliable software including n-version programming, fault-tolerant data structures and formal proofs of correctness. Rollback and recovery methods. Fault-tolerant hardware and methods of hardware error detection and correction. Prerequisites: Admission to MS in CS program, or consent of department, plus CS 3350 or equivalent.

Course Syllabus

  1. Fault-Tolerant Hardware
    1. Tandem Computer Architecture(*)
    2. Stratus computer architecture(*)
    3. The (4,2) computer architecture
    4. Hardware error detection & correction through coding(*)
    5. Redundant array of inexpensive disks (RAID)(*)
  2. Fault-Tolerant Software
    1. Formal proofs of correctness(*)
      1. Axiomatic semantics and proof rules
        1. weakest precondition
        2. strongest post condition
        3. invariants and assertions
    2. Formal specification - an overview
      1. VDM or Z
      2. Algebraic specification and data types
    3. Roll back and recovery, check pointing(*)
    4. Software safety
    5. N-version techniques(*)
    6. Fault tolerant data structures and scrubbing(*)
    7. Use of error detection codes in software
    8. Data integrity in distributed transactions
      1. Validation protocols for transactions
      2. Distributed check pointing
  3. Estimation of Mean Time Between Failures (MTBF)
    1. Numerical aspects of software testing
    2. Domain testing
    3. Effect of redundant components
    4. Effect of scrubbing
    5. Standards for software fault-tolerance

(*) These topics are core material to be covered every time the course is taught.


webmaster@cs.bgsu.edu