This course is an introduction to combinatorics, “the mathematics of counting.” Topics will cover: elementary counting principles, combinations, permutations, inclusion and exclusion, binomial coefficients, recurrence relations, etc. We will also see the power of such combinatorial tools by showing some of their applications to graph theory and coding theory.