Discrete mathematics studies problems that can be broken up into distinct pieces. Some examples of these sorts of systems are letters or numbers in a password, pixels on a computer screen, the connections between friends on Facebook, and driving directions (along established roads) between two cities. In this course we will develop the tools needed to solve relevant, real-world problems. Topics will include: combinatorics (clever ways of counting things), number theory and graph theory. Possible applications include probability, social networks, optimization, and cryptography.