This course introduces the mathematical structures and methods that form the foundation of computer science. The material will be motivated by applications from computer science. Students will learn: (1) speciﬁc skills, e.g., binary and modular arithmetic, set notation, sequences, lists, trees, and graphs, etc.; (2) general knowledge, e.g., counting, proof, and analysis techniques needed to estimate the size of sets, the growth of functions, and the space-time complexity of algorithms; and (3) how to think, e.g., general problem solving techniques.
The main prerequisite for this course is a firm knowledge of high-school algebra.
Though CS 2500, Fundamentals of Computer Science 1, is not a pre-requisite for this course, we will refer to topics that are covered in that course.