This document discusses error detection and correction techniques used in digital communications. It describes three main types of error coding: parity bits for error detection, block coding for error detection and correction (e.g. Reed-Solomon), and convolutional coding for error correction (e.g. Viterbi). It provides details on parity bits, block codes including cyclic codes, and convolutional codes. Formulas for coding gain, data rates, required signal-to-noise ratios, and bit error rate calculations as a function of modulation scheme and energy per bit to noise spectral density ratio are also summarized.