Introduction to coding theory - Bierbrauer, Juergen (Discrete mathematics and its applications, 2005)