A mathematical gem freshly cleaned and polished This book is intended to be used as the text for a first course in combinatorics. the text has been shaped by two goals, namely, to make complex mathematics accessible to students with a wide range of abilities, interests, and motivations; and to create a pedagogical tool, useful to the broad spectrum of instructors who bring a variety of perspectives and expectations to such a course. Features retained from the first edition: Lively and engaging writing style Timely and appropriate examples Numerous well-chosen exercises Flexible modular format Optional sections and appendices Highlights of Second Edition enhancements: Smoothed and polished exposition, with a sharpened focus on key ideas Expanded discussion of linear codes New optional section on algorithms Greatly expanded hints and answers section Many new exercises and examples