Channel coding lies at the heart of digital communication and data storage. Fully updated, including a new chapter on polar codes, this detailed introduction describes the core theory of channel coding, decoding algorithms, implementation details, and performance analyses. This new edition includes over 50 new end-of-chapter problems and new figures and worked examples throughout. The authors emphasize the practical approach and present clear information on modern channel codes, including turbo and low-density parity-check (LDPC) codes, detailed coverage of BCH codes, Reed-Solomon codes, convolutional codes, finite geometry codes, product codes as well as polar codes for error correction and detection, providing a one-stop resource for classical and modern coding techniques. Assuming no prior knowledge in the field of channel coding, the opening chapters begin with basic theory to introduce newcomers to the subject. Later chapters then extend to advanced topics such as code ensemble performance analyses and algebraic code design.