Discrete Mathematics is the mathematical foundation of computer science. Within this course, students will acquire a specific collection of mathematical principles and learn how to apply them. Significantly, the course will cultivate logical and mathematical thinking abilities among students. Topics covered include: Logic, Set Theory, Algebraic Structures, Combinatorics, Graph Theory, and Elementary Number Theory.