Mathematics has the remarkable feature of being able to describe itself. This course will examine the logical foundations underlying mathematics. What exactly does it mean to prove something? How do we know our mathematical axioms are even consistent with each other? Could they lead to a paradox that would create chaos within our mathematical theories? What are the limitations of proof? Are there true mathematical statements with no proof? If so, how could we ever know? In this course we'll survey the amazing answers to these questions.