This book grew out of our lectures given in the Oberseminar on 'Cod ing Theory and Number Theory' at the Mathematics Institute of the Wiirzburg University in the Summer Semester, 2001. The coding the ory combines mathematical elegance and some engineering problems to an unusual degree. The major advantage of studying coding theory is the beauty of this particular combination of mathematics and engineering. In this book we wish to introduce some practical problems to the math ematician and to address these as an essential part of the development of modern number theory. The book consists of five chapters and an appendix. Chapter 1 may mostly be dropped from an introductory course of linear codes. In Chap ter 2 we discuss some relations between the number of solutions of a diagonal equation over finite fields and the weight distribution of cyclic codes. Chapter 3 begins by reviewing some basic facts from elliptic curves over finite fields and modular forms, and shows that the weight distribution of the Melas codes is represented by means of the trace of the Hecke operators acting on the space of cusp forms. Chapter 4 is a systematic study of the algebraic-geometric codes. For a long time, the study of algebraic curves over finite fields was the province of pure mathematicians. In the period 1977 - 1982, V. D. Goppa discovered an amazing connection between the theory of algebraic curves over fi nite fields and the theory of q-ary codes.