This book is an introductory text on the combinatorial theory of finite geometry. It assumes only a basic knowledge of set theory and analysis, but soon leads the student to results at the frontiers of research. It begins with an elementary combinatorial approach to finite geometries based on finite sets of points and lines, and moves into the classical work on affine and projective planes. The next part deals with polar spaces, partial geometries, and generalised quadrangles. The revised edition contains an entirely new chapter on blocking sets in linear spaces, which highlights some of the most important applications of blocking sets from the initial game-theoretic setting to their recent use in cryptography. Extensive exercises at the end of each chapter ensure the usefulness of this book for senior undergraduate and beginning graduate students.