Error-correcting codes constitute one of the key ingredients in achieving the high degree of reliability required in modern data transmission and storage systems. This 2006 book introduces the reader to the theoretical foundations of error-correcting code