Bipartite graphs are perhaps the most basic of objects in graph theory, both from a theoretical and from a practical point of view. However, until now they have been considered only as a special class in some wider context. This is the first book which deals solely with bipartite graphs. The theory is illustrated with many applications especially to problems in timetabling, chemistry, communication networks and computer science. For the most part the material is accessible to any reader with a graduate understanding of mathematics. However, the book contains advanced sections requiring much more specialised knowledge, which will be of interest to specialists in combinatorics and graph theory.