# Prerequisites

Programming skills: You should be able to write and debug programs in Python without drama and without handholding.

Ability to do short proofs

Facility with core computer science concepts:

- Computational complexity
- Analysis of algorithms

Facility with mathematics concepts:

- Some calculus
- Basic Probability and statistics helpful but not required