This book evolved from several courses in combinatorics and graph theory given at Appalachian State University and UCLA. Chapter 1 focuses on finite graph theory, including trees, planarity, coloring, matchings, and Ramsey theory. Chapter 2 studies combinatorics, including the principle of inclusion and exclusion, generating functions, recurrence relations, Pólya theory, the stable marriage problem, and several important classes of numbers. Chapter 3 presents infinite pigeonhole principles, König's lemma, and Ramsey's theorem, and discusses their connections to axiomatic set theory. The text is written in an enthusiastic and lively style. It includes results and problems that cross subdisciplines, emphasizing relationships between different areas of mathematics. In addition, recent results appear in the text, illustrating the fact that mathematics is a living discipline. The text is primarily directed toward upper-division undergraduate students, but lower-division undergraduates with a penchant for proof and graduate students seeking an introduction to these subjects will also find much of interest.