These lecture notes are the contents of a two-term course given by me during the 1970-1971 academic year as Morgan Ward visiting professor at the California Institute of Technology. The students who took the course were mathematics seniors and graduate students. Therefore a thorough knowledge of algebra. (a. o. linear algebra, theory of finite fields, characters of abelian groups) and also probability theory were assumed. After introducing coding theory and linear codes these notes concern topics mostly from algebraic coding theory. The practical side of the subject, e. g. circuitry, is not included. Some topics which one would like to include 1n a course for students of mathematics such as bounds on the information rate of codes and many connections between combinatorial mathematics and coding theory could not be treated due to lack of time. For an extension of the course into a third term these two topics would have been chosen. Although the material for this course came from many sources there are three which contributed heavily and which were used as suggested reading material for the students. These are W. W. Peterson's Error-Correcting Codes «(15]), E. R. Berlekamp's Algebraic Coding Theory «(5]) and several of the AFCRL-reports by E. F. Assmus, H. F. Mattson and R. Turyn ([2], (3), [4] a. o. ). For several fruitful discussions I would like to thank R. J. McEliece.