Discrete mathematics deals with countable quantities. The techniques used for discrete models often differ significantly from those used for continuous models. This course explores some of the main techniques and problems that arise in discrete mathematical modeling. Topics include combinatorial analysis, Markov chains, graph theory, optimization, algorithmic behavior and phase transitions in random combinatorics. The goal is for students to acquire sufficient skills to solve real-world problems requiring discrete mathematical models. Prerequisite: Probability and linear algebra. A previous course in discrete mathematics would be helpful.