Foundations of error-correcting codes and their information-theoretic limits, code parameters, Hamming distance, linear codes, finite fields, fundamental bounds on codes, Reed–Solomon codes, channel capacity, Shannon’s theorem, list decoding, and polynomial-based codes including Reed–Muller codes.