Algebraic graph theory is a combination of two strands. The first is the study of algebraic objects associated with graphs. The authors's goal has been to present and illustrate the main tools and ideas of algebraic graph theory, with an emphasis on current rather then classical topics.