This document provides an overview of various channel coding techniques used in digital communication systems to combat noise and errors during transmission. It describes forward error correction methods like block codes, cyclic codes, convolutional codes and turbo codes. It also discusses error detection techniques like cyclic redundancy checks. Finally, it covers automatic repeat request protocols for retransmitting corrupted data packets.