This Discrete Mathematics course introduces the core mathematical language and reasoning skills used across computer science. Students develop fluency with formal logic and proof techniques, sets, functions and relations, induction and recursion, counting and basic combinatorics, graphs and trees, and modular arithmetic. Emphasis is placed on writing clear, correct proofs, analyzing simple algorithms and their complexity, and modeling real problems with discrete structures. The course connects theory to applications in data structures, cryptography, networks, and automata, preparing students for upper-level CS courses and rigorous problem solving.
We approach Discrete Mathematics as a language for precise thinking. The course prioritizes conceptual understanding over rote manipulation, and cultivates habits of clear reasoning, careful definitions, and well-structured proofs. Students learn by doing: short problem-centered activities, frequent low-stakes practice, and guided proof writing build confidence steadily.
Our philosophy emphasizes:
The goal is not just to pass an exam, but to think like a computer scientist—able to read and write rigorous arguments, analyze algorithms, and communicate mathematical ideas clearly.
By the end of this course, students will be able to: