Error Correcting Codes: A Mathematical Introduction (Chapman Hall/CRC Mathematics Series)