This book is mostly based on the author's 25 years of teaching combinatorics to two distinct sets of students: first-year students and seniors from all backgrounds. The prerequisites are kept to a minimum; essentially, only high school algebra is required. The design is to go quickly from zero knowledge to advanced themes and various applications with a lot of topics intended for additional reading and research projects. It contains an all-inclusive collection of 135 problems and 275 exercises with four difficulty levels: solutions, hints and answers are provided.Some themes of the book:Enumerative combinatorics and basic graph theory: Introduction to dimers, tilings, magic and Latin squares, permutations, combinations, generating functions, games of chance, random walks, binomial and Poisson distributions. Catalan numbers, their generalizations and applications, including roulette and pricing derivatives. Euler and Hamiltonian paths, linear and planar graphs, labeled trees and other topics on graphs; many of them are presented as exercises.Modeling: Linear recurrence relations, Fibonacci rabbits, population growth, tree growth, epidemic spread and reinfections, resonances and nuclear reactors, predator-prey relationships and stopping times.Elementary number theory: Residues, finite fields, Pisano periods, quadratic reciprocity, Pell's equation, continued fractions, and Frobenius coin problem. Applications to cryptography, designs and magic squares, error-correcting codes and nonattacking queens.