Course description
This course teaches all the math not taught in the traditional calculus/linear algebra sequence that is needed to take more advanced courses in theory of computation and/or algorithms. That is, it teaches discrete mathematics, logic, and basic probability, but does not teach calculus or linear algebra. It also gives a good introduction to reading mathematical notation and writing formal proofs. A principal objective of the course is to not just teach a set of mathematical topics, but also to prepare students to think mathematically and to read and write mathematics.