The ways of thinking we have studied so far—logical, relational, recursive, and quantitative—have highlighted different aspects of discrete problems in mathematics. In this chapter we draw on many of the topics from earlier in the book to help us analyze algorithms. In addition to understanding what an algorithm does, we will study mathematical ways to determine the accuracy and efficiency of algorithms. This type of analysis is fundamentally important to computer scientists. And, as computing becomes increasingly important in other fields, scholars from many disciplines will need to be able to think this way.