This book deals with the basic subjects of design theory. It begins with balanced incomplete block designs, various constructions of which are described in ample detail. In particular, finite projective and affine planes, difference sets and Hadamard matrices, as tools to construct balanced incomplete block designs, are included. Orthogonal latin squares are also treated in detail. Zhu's simpler proof of the falsity of Euler's conjecture is included. The construction of some classes of balanced incomplete block designs, such as Steiner triple systems and Kirkman triple systems, are also given. T-designs and partially balanced incomplete block designs (together with association schemes), as generalizations of balanced incomplete block designs, are included. Some coding theory related to Steiner triple systems are clearly explained. The book is written in a lucid style and is algebraic in nature. It can be used as a text or a reference book for graduate students and researchers in combinatorics and applied mathematics. It is also suitable for self-study.