This books gives an introduction to discrete mathematics for beginning undergraduates. One of original features of this book is that it begins with a presentation of the rules of logic as used in mathematics. Many examples of formal and informal proofs are given. With this logical framework firmly in place, the book describes the major axioms of set theory and introduces the natural numbers. The rest of the book is more standard. It deals with functions and relations, directed and undirected graphs, and an introduction to combinatorics. There is a section on public key cryptography and RSA, with complete proofs of Fermat's little theorem and the correctness of the RSA scheme, as well as explicit algorithms to perform modular arithmetic. The last chapter provides more graph theory. Eulerian and Hamiltonian cycles are discussed. Then, we study flows and tensions and state and prove the max flow min-cut theorem. We also discuss matchings, covering, bipartite graphs.