Description:
This course is intended to give students studying computer science the mathematical foundation they will need for their future studies. However, it may be taken by students in a wide variety of majors, including mathematics and engineering. Topics covered will include logic, sets, functions, sequences, complexity of algorithms, number theory, matrices, methods of proof, mathematical induction, recursive algorithms, counting methods, discrete probability, relations, graphs, and tree fundamentals.

Topical Outline:
1. Logic, Sets, and Functions
2. Algorithms, Number Theory, and Matrices
3. Mathematical Reasoning and Proofs
4. Counting Structures
5. Relations
6. Trees and Graphs

Learning Outcomes:
1. Read, comprehend, construct, and analyze mathematical arguments and proofs
2. Count and enumerate structures of a given size and type
3. Analyze abstract mathematical structures used to represent discrete objects and relationships between the objects
4. Develop, verify, and assess efficiency of algorithms