This document provides an overview of topological data analysis and persistent homology. It discusses how topological data analysis uses techniques from fields like statistics, computer science, and algebraic topology to infer robust features about complex datasets. Persistent homology in particular analyzes the homology of filtrations to study topological features across different scales. The document also describes implementations of topological data analysis techniques and applications to areas such as brain networks, periodic systems, and cosmological data analysis.