Prerequisites
This is a proof-based course in theoretical computer science.
The course requires the following:
Knowledge of ALGORITHMS at a basic undergraduate level (COMPSCI 330 or equivalent)
Knowledge of DISCRETE MATHEMATICS at a basic undergraduate level (COMPSCI 230 or equivalent)
Knowledge of PROBABILITY and LINEAR ALGEBRA at a basic undergraduate level
Mathematical maturity commensurate with someone who has taken and done well in undergraduate proof-based mathematical courses