(Cross-listed as CSC 220)
An introduction to proof techniques and discrete mathematics, with a focus on topics relevant to computer science, and an introduction to functional programming. Topics include logic, sets, functions, equivalence relations, algorithm analysis, methods of proof, essential combinatorics, recurrence relations, and discrete probability, as well as the essentials of functional programming. Additional topics may be selected from graph theory, number theory, or automata theory. This course prepares students for advanced work in both computer science and mathematics.
Satisfies the Mathematical and Quantitative Thought requirement.
Counts towards the Mathematics major and minor.
Counts towards the Computer Science major and minor.
MAT 140, MAT 150, or MAT 160, and the ability to program in a high-level language such as Python, C++, or Java at the level expected in CSC 121 or an equivalent course.