How many ways can you map a donut into itself? The mapping class group of a topological space is an important invariant which indicates how many distinct symmetries the space has. In this talk we will explore the mapping class groups of surfaces and give a proof of the Dehn-Nielsen-Baer theorem, which relates the mapping class group of a surface to its fundamental group. Our proof will incorporate some beautiful ideas from algebraic topology, hyperbolic geometry and geometric group theory. I will assume familiarity with elementary topology and group theory.