**About**

Discrete Mathematics is probably the most fundamental mathematics in Computer Science. Skilled programmers and software designers should be fluent in this mathematics, possibly over Calculus, as the number of applications of subjects in the field of Discrete Mathematics exceed those of Calculus, with respect to Computer Science. This is a course I highly recommend students take before trying to bust through Calculus.

**What is Discrete Mathematics?**

Discrete Mathematics is the spectrum of mathematics that includes, most notably, logic, set theory, probability, graph theory, number theory, and combinatorics. Notice you don’t see Algebra, Calculus, or Geometry. Subjects that are more fundamental (i.e. Algebra) or concrete (i.e. Geometry) are found their most abstract forms when analyzed in Discrete Mathematics. For example, a trivial abstract geometry problem that has a simple answer goes as follows:

“A standard chessboard is tiled with black and white tiles. Two opposite corners of the chessboard are removed. Is it possible to cover up the board using 2 x 1 dominoes without overlap?”

This is a problem that combines beauty from geometry and logic (surprisingly, not advanced combinatorics).

Discrete Mathematics opens up an entirely new branch of thinking, with surprisingly interesting topics. Rather than rushing through Calculus or Statistics, taking a break to actually let the knowledge they’d unknowingly acquired sink in, and exploring a field of mathematics that has much more use in Computer Science.

**Interesting (basic) Discrete Mathematics Problems**

- Find the number of solutions (x, y) to the Diophantine Equation 20x + 12y = 2012 (AIME 2012).

- Prove that sqrt(2) is irrational.

- Let there be some square of side length 2. Prove that, if 5 points are placed either in the interior or on the perimeter, that 2 of them are less than ?2 units apart.

**Books on Discrete Mathematics**

- Enumerative Combinatorics (Richard Stanley) – Note this requires Calculus knowledge