This text is a self contained treatment of expander graphs and in particular their explicit construction. Expander graphs are both highly connected but sparse, and besides their interest within combinatorics and graph theory, they also find various applications in computer science and engineering. The reader needs only a background in elementary algebra, analysis and combinatorics; the authors supply the necessary background material from graph theory, number theory, group theory and representation theory. The text can therefore be used as a brief introduction to these subjects as well as an illustration of how such topics are synthesised in modern mathematics.