Introduction To Error-Correcting Codes by Michael Purser