Error Control Coding (EEC) is the detection and correction of errors in the message transmission in a digital communications system by codes inserted in a data stream which are everywhere, from the Internet to compact disk and CD-ROMs, to cell phones and wireless connections. An understanding of those codes is therefore paramount for anyone involved in digital communications (modems, cell phones, wireless networking, DSL, DSP, etc...). This new proposal's main goal is to supply a modern approach with an implementation-oriented viewpoint. Hands-on programming exercises of important algorithms are provided throughout. The book presents background information on information and decision theory, the classical coding methods still in use (Reed Solomon codes, trellis-codes, etc...) as well as the new iteratively-decode codes (including Turbo codes).