CS 102 introduces a number of topics in the mathematical foundations of computer science: logic, sets, functions, relations, basic number theory, proof methods, combinatorics, probability, recurrence relations, graphs, and models of computation.


Prerequisites: CS 101 (or concurrently)
Suggested course(s) to take next: CS 201, CS 202

CS 102 gives a good overview of non-calculus parts of math. Learning about NP-complete problems was interesting.
-- Kanchan Pathak '07

Discrete math is a course required for the math major at many other colleges, but a hidden treasure at Middlebury. This course provides a solid foundation of problem solving, working primarily with integers.
-- Amy Bigelow '05

Any self-respecting computer scientist should know about sets, proofs, functions, combinatorics, graphs, trees, state machines, and probability. In this course, you get all that and more.
-- Prof. Huang