An introduction to enumeration - Camina, A. R.; Lewis, Barry (Springer Undergraduate Mathematics Series, 2011)
Written for students taking a second or third year undergraduate course in mathematics or computer science, this book is the ideal companion to a course in enumeration. Enumeration is a branch of combinatorics where the fundamental subject matter is numerous methods of pattern formation and counting. An Introduction to Enumeration provides a comprehensive and practical introduction to this subject giving a clear account of fundamental results and a thorough grounding in the use of powerful techniques and tools. Two major themes run in parallel through the book,  generating functions and group theory. The former theme takes enumerative sequences and then uses analytic tools to discover how they are made up. Group theory provides a concise introduction to groups and illustrates how the theory can be used  to count the number of symmetries a particular object has. These enrich and extend basic group ideas and techniques. The authors present their material through examples that are carefully chosen to establish key results in a natural setting. The aim is to progressively build fundamental theorems and techniques. This development is interspersed with exercises that consolidate ideas and build confidence. Some exercises are linked to particular sections while others range across a complete chapter. Throughout, there is an attempt to present key enumerative ideas in a graphic way, using diagrams to make them immediately accessible. The development assumes some basic group theory, a familiarity with analytic functions and their power series expansion along with  some basic linear algebra.