This course provides a comprehensive introduction to the mathematics of countable objects, serving as a crucial foundation for studying computer science algorithms and machine learning. Students will learn the language of discrete mathematics and methods for constructing mathematical arguments through key topics, including set theory, logic, Boolean algebra, and functions and relations. Furthermore, the discussion covers counting and combinatorics, graph theory, and introductory advanced concepts such as Finite State Automata and String Rewriting, equipping students with precise mathematical reasoning skills.


