The concept of a graph is fundamental in mathematics since it conveniently encodes diverse relations and facilitates combinatorial analysis of many complicated counting problems. In this book, the authors have traced the origins of graph theory from its humble beginnings of recreational mathematics to its modern setting for modeling communication networks as is evidenced by the World Wide Web graph used by many Internet search engines. This book is an introduction to graph theory and combinatorial analysis. It is based on courses given by the second author at Queen's University at Kingston, Ontario, Canada between 2002 and 2008. The courses were aimed at students in their final year of their undergraduate program.