This course covers the mathematical underpinnings of computer science. You will become comfortable with prepositional and predicate logic, proof techniques, the analysis of algorithms, recursive structures, and models of computation. One important goal is to expose you to common mathematical terms and notations for important concepts that are relevant to many aspects of computer science.