This document provides an introduction to Dirichlet processes. It begins by motivating the need for nonparametric clustering when the number of clusters in the data is unknown. It then provides an overview of Dirichlet processes and discusses them from multiple perspectives, including samples from a Dirichlet process, the Chinese restaurant process representation, stick breaking construction, and formal definition. It also covers Dirichlet process mixtures and common inference techniques like Markov chain Monte Carlo and variational inference.