This document discusses channel coding and error control coding. It begins by explaining that channel coding is used to increase resistance to channel noise by mapping data into channel inputs and outputs in a way that minimizes noise effects. Error control coding introduces redundancy so the original sequence can be reconstructed accurately at the receiver. Specific coding schemes discussed include single parity-check codes, linear systematic codes, cyclic codes, and forward error correction codes. Block codes and convolutional codes are presented as two main types of error control coding.