The document discusses various ways that known error correcting codes can be modified, including puncturing, shortening, expurgating, extending, lengthening, and augmenting codes. It also covers interleaving, concatenated codes, and examples of convolutional codes. Modification methods allow creating codes of nearly any rate with slightly improved performance compared to the original code.