We expect that you know programming quite well.
You must be comfortable in expressing computation in at least one programming language.
This course will teach you a new programming language, but it will not teach you programming from the ground up.
You should have a personal computer.
You should know basic math such as algebra and calculus.
You should know data structures and algorithms.