This text offers an introduction to error-correcting linear codes. The book differs from other standard texts in its emphasis on the classification of codes by means of isometry classes. It is based on the successful German edition. The relevant algebraic concepts like finite fields and group actions are developed rigorously. Cyclic codes are discussed in great detail. In the last four chapters these isometry classes are enumerated, and representatives are constructed algorithmically with or without a prescribed automorphism group.