Based on the authors' teaching experiences, this book provides a thoroughly modern introduction to the coding theory - a subject of central importance for many applications in engineering and computer science. There are numerous examples and exercises, some of which introduce students to novel or more advanced material.