Algebraic graph theory is a combination of two strands. The first is the study of algebraic objects associated with graphs. The second is the use of tools from algebra to derive properties of graphs. This book aims to present and illustrate the main tools and ideas of algebraic graph theory.