This document provides a tutorial on spectral clustering. It discusses the history and foundations of spectral clustering including graph partitioning, ratio cut, normalized cut and minmax cut objectives. It also covers properties of the graph Laplacian matrix and how to recover partitions from eigenvectors. The document compares different clustering objectives and shows their performance on example datasets. Finally, it discusses extensions of spectral clustering to bipartite graphs.