Discrete Mathematics combines a balance of theory and applications with mathematical rigor and an accessible writing style. The author uses a range of examples to teach core concepts, while corresponding exercises allow students to apply what they learn. Throughout the text, engaging anecdotes and topics of interest inform as well as motivate learners. The text is ideal for one- or two-semester courses and for students who are typically mathematics, mathematics education, or computer science majors. Part I teaches student how to write proofs; Part II focuses on computation and problem solving. The second half of the book may also be suitable for introductory courses in combinatorics and graph theory.