ime and resources. Similar techniques can be applied to discrete telecommunications of data. For example the number of characters sent by a telegraph can be appended to a message to facilitate an error detection process at the receiver. Again this extra transmission incurs cost, which can be justified as it ensures the received message is reliably equal to the transmitted message. Clearly such error detection techniques are not perfect. Words may be misspelled, or alpha- bets may be switched resulting in undetected errors. The counting process is also imperfect and therefore an error may remain undetected. All these undetected errors are discovered later on. Miscounting may also lead to false positives: a correctly transcribed message is detected as erroneous. Errors commonly occur in printed books, resulting in inclusion of an erratum after post-publication reviews. With the growth of digital telecommunications associated with computer systems, a number of techniques were developed in the 1950s to reduce errors in discrete information transmis- sion and storage. These are generally based on binary arithmetic and the field is known as error control coding. These techniques depend on the concept of code distance first defined by Richard Hamming, an American mathematician and a professor at the University of Louisville, who also worked on the Manhattan Project before joining Bell Laboratories in 1947 where he worked with Claude Shannon [2]. Shannon's theorem in the mid-1940s had already demonstrated that practical error-free communication is possible if the information transmission rate is less than the channel capacity. The main application of this theory was for noisy channels, including those of satellite and space communications where transmission power is limited, and long distances mean received power level is very small. The theorem had also shown that error correcting codes could be designed to reduce the probability of error and therefore the necessary trans- mission power for achieving a desired quality o