The document discusses convolution codes. It defines convolution codes as having three parameters (n, k, m) where n is the number of output bits, k is the number of input bits, and m is the number of memory registers. Convolutional codes add redundancy to protect data sent over noisy channels and are characterized by their constraint length L, which represents the number of bits in the encoder memory affecting output. The document provides an example of a (2,1,4) convolutional code and illustrates its operation through input sequences, state diagrams, tree diagrams, and trellis diagrams. It also describes methods for decoding convolution codes including sequential decoding using the Fano algorithm and maximum likelihood decoding using the Viterbi algorithm.