Expander Graphs are highly connected yet sparse graphs with a surprising number of applications. Although in some sense almost all regular graphs are expanders, they are notoriously difficult to construct. In this talk we will cover this apparent paradox and some applications to such things as the theory of pseudorandomness, error correcting codes and sorting algorithms.