The main focus of this course is to understand a particular set of mathematical facts and how to apply them; more importantly, such a course should teach students how to think logically and mathematically.

This course introduces a formal system (propositional and predicate logic) on which mathematical reasoning is based. It develops an understanding of how to read and construct valid mathematical arguments (proofs) and mathematical statements (Theorems). It also develops the ability to see a problem from a mathematical perspective. The discrete structure course introduces various problem-solving strategies, especially thinking algorithmically (both iterative and recursive).

This course covers the discrete data structures such as sets, relations, discrete functions, graphs, and trees.