This is a new edition of a successful introduction to discrete mathematics for computer scientists, updated and reorganised to be more appropriate for the modern day undergraduate audience. Discrete mathematics forms the theoretical basis for computer science and this text combines a rigorous approach to mathematical concepts with strong motivation of these techniques via practical examples.