This introduction to combinatorics is suitable for upper-level undergraduates and graduate students in engineering, science, and mathematics. Covers basic counting, functions, decision trees, and sieving methods; fundamental concepts in graph theory and a sampler of graph topics; induction and recursion, sorting theory, and rooted plane trees. Numerous exercises (some with solutions), notes, and references. Includes 75 figures. Appendixes.