Discrete mathematics deals with objects that come in discrete bundles, e.g.,
1 or 2 babies. In contrast, continuous mathematics deals with objects that
vary continuously, e.g., 3.42 inches from a wall. Think of digital watches
versus analog watches (ones where the second hand loops around continuously
Why study discrete mathematics in computer science? It does not directly
help us write programs. At the same time, it is the mathematics underlying
almost all of computer science. Here are a few examples:
Designing high-speed networks and message routing paths.
Finding good algorithms for sorting.
Performing web searches.
Analysing algorithms for correctness and efficiency.
Formalizing security requirements.
Designing cryptographic protocols.
Discrete mathematics uses a range of techniques, some of which is seldom found in its continuous counterpart. This course will roughly cover the
following topics and specific applications in computer science.
1. Sets, functions and relations
2. Proof techniques and induction
3. Number theory
a) The math behind the RSA Crypto system
4. Counting and combinatorics
a) Spam detection
b) Formal security
a) Proofs of program correctness
7. Graph theory