Algebraic coding theory has in recent years been increasingly applied to the study of combinatorial designs. This book gives an account of many of those applications together with a thorough general introduction to both design theory and coding theory - developing the relationship between the two areas. The first half of the book contains background material in design theory, including symmetric designs and designs from affine and projective geometry, and in coding theory, coverage of most of the important classes of linear codes. In particular, the authors provide a new treatment of the Reed-Muller and generalized Reed-Muller codes. The last three chapters treat the applications of coding theory to some important classes of designs, namely finite planes, Hadamard designs and Steiner systems, in particular the Witt systems. The book is aimed at mathematicians working in either coding theory or combinatorics - or related areas of algebra. The book is, however, designed to be used by non-specialists and can be used by those graduate students or computer scientists who may be working in these areas.