This course is a core part of the Computer Science major. It focuses on laying theoretical foundations of mathematics which are further developed in COMPSCI 220, COMPSCI 225, and more advanced courses on algorithms, machine learning, and theoretical computer science. COMPSCI 120 is centred around one "big" idea: namely, the idea of a mathematical proof. In mathematics, a proof is an argument to show that something is true. In this course, we look at how we prove statements in the fields of computer science, logic, combinatorics, and graph theory. To do this, COMPSCI 120 is going to have a slightly different feel than most other courses you have had. Specifically, we are going to focus as much on the way arguments are formed as on the solutions to the problems we are studying! This course is suitable for any student who is interested in the foundations of Computer Science, Mathematics, and Logic.