This document discusses error detection and correction techniques. It defines single-bit and burst errors and explains how redundancy is used to detect or correct errors by adding extra bits. It describes the differences between error detection and correction. Various error correction methods are presented, including forward error correction, retransmission, and the use of modular arithmetic and cyclic redundancy checks. Hardware implementations of cyclic redundancy checks are also summarized.