## ABSTRACT

In this chapter, the author discusses a few issues that we need to clarify before moving into the technical material involved in the analysis of computations. This chapter gives an introduction to the basic mathematical methods needed to understand the material. The reader is assumed to be familiar with standard terminology used in data structure and discrete mathematics as well as having some programming experience. Roughly speaking, algorithms can be analyzed for their correctness (so they produce the proper output on every input they are expected to work on) and for their performance. It is true that performance analysis will sometimes reveal logical flaws in an algorithm, or provides clues for its improvement, but that would be a (nice) byproduct only. Analyzing performance means finding the cost of executing, or running, an algorithm. This cost consists of running time and work space, sometimes called space usage.