This document discusses various error correcting codes used in fault-tolerant computing. It begins with an overview of error correction and a multilevel model of impairments. It then provides details on specific codes like Hamming codes, BCH codes, Reed-Solomon codes, and arithmetic codes. Hamming codes can correct single bit errors using parity checks. BCH and Reed-Solomon codes can correct multiple errors using generator polynomials over finite fields. Arithmetic codes represent data as residues to correct errors in arithmetic operations. Overall the document covers the concepts, encoding, decoding, and properties of different error correcting codes.