Graph Signal Processing extends notions of classical 1 and 2 dimensional signal processing to irregularly structured data. We cover the mathematical origins of this emerging field by starting from classical Fourier series defined first using periodic and subsequently complex eigenfunctions of the Laplacian. We will then extend the Fourier domain to an analogous basis in the graph domain. This basis will be used to explore notions of frequency in the graph domain as well as extend the classical Fourier operators convolution, modulation, and translation to the graph domain. With a foundation of classical signal processing tools in hand, we will then discuss two tools for vertex-frequency analysis on graphs: wavelets(and filters) and the windowed graph Fourier transform. Finally, recent applications of these tools in manifold denoising and clustering will be discussed.