This book developed from a course on finite fields I gave at the University of Illinois at Urbana-Champaign in the Spring semester of 1979. The course was taught at the request of an exceptional group of graduate students (includ ing Anselm Blumer, Fred Garber, Evaggelos Geraniotis, Jim Lehnert, Wayne Stark, and Mark Wallace) who had just taken a course on coding theory from me. The theory of finite fields is the mathematical foundation of algebraic coding theory, but in coding theory courses there is never much time to give more than a "Volkswagen" treatment of them. But my 1979 students wanted a "Cadillac" treatment, and this book differs very little from the course I gave in response. Since 1979 I have used a subset of my course notes (...