This document discusses error control coding (ECC) techniques used to detect and correct errors that may occur during data transmission. It begins with an introduction to ECC and the transmission model that shows where ECC encoding and decoding are performed. It then discusses error models, error control techniques including error detection, forward error correction (FEC), and automatic repeat request (ARQ). It focuses on block codes, describing parity codes, Hamming distance, linear block codes, and decoding techniques for linear block codes. The key points covered are the use of redundancy to permit error detection/correction, and how techniques like parity codes, block codes, and linear block codes can detect and correct different numbers of errors depending on their Hamming distance.