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