When considering the problem of limiting the effects of errors in information processing, the first task is to establish the properties of the physical systems that are available for representing and computing with information. Thus it is necessary to learn the following:
The tasks of determining a code and of identifying decoding procedures or subsystems are closely related. As a result, the following questions are at the foundation of the theory of error-correction: What properties must a code satisfy so that it can be used to protect well against a given error model? How does one obtain the decoding or subsystem identification that achieves this protection? In many cases, the answers can be based on choosing a fixed set of error operators that represents well the most likely errors and then determining whether these errors can be protected against without any loss of information. Once an error set is fixed, determining whether it is ``correctable'' can be cast in terms of the idea of ``detectable'' errors. This idea works equally well for both classical and quantum information. We introduce it using classical information concepts.