Description:
This course is intended to give students studying computer science the mathematical foundation they will need for their future studies, but 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