This best-selling book provides an accessible introduction to discrete mathematics, using an algorithmic approach that focuses on problem-solving techniques. The new edition weaves techniques of proofs into the text as a running theme. Each chapter has a special section dedicated to showing students how to attack and solve problems.