An algorithm is a “precisely-defined sequence of rules telling how to produce specified output information from given input information in a finite number of steps.”22 More simply, an algorithm is a recipe for computation.23 Most people know algorithms for doing addition, subtraction, multiplication, and division with pencil and paper. There are many such algorithms, as well as others that do not use pencil and paper. Years ago many people knew algorithms for computation on fingers, slide rules, and abacuses. Today, calculators and computer algorithms are widely used for arithmetic. (Indeed, a defining characteristic of a computational algorithm is that it be suitable for implementation on a computer.) And in fact, most of algebra, calculus, and even more advanced mathematics may now be done with computer programs that perform calculations with symbols.
An algorithm is a recipe for computation.
When confronted with a need for calculation, one must choose an algorithm that will give the correct result and that can be accomplished with the tools available. Algorithms depend upon representations. (Note, for example, that algorithms for fractions are different from algorithms for decimals.) And as was the case for representations, choosing an algorithm benefits from consideration of certain characteristics: transparency, efficiency, generality, and precision. The more transparent an algorithm, the easier it is to understand, and a child who understands an algorithm can reconstruct it after months or even years of not using it. The need for efficiency depends, of course, on how often an algorithm is used. An additional desired characteristic is simplicity because simple algorithms are easier to remember and easier to perform accurately. Again, the key is finding an appropriate balance among these characteristics because, for example, algorithms that are sufficiently general and efficient are often not very transparent. It is worth noting that pushing buttons on a calculator is the epitome of a nontransparent algorithm, but it can be quite efficient. In Box 3–10, we show some examples of algorithms with various qualities.
Algorithms are important in school mathematics because they can help students understand better the fundamental operations of arithmetic and important concepts such as place value and also because they pave the way for learning more advanced topics. For example, algorithms for the operations on multidigit whole numbers can be generalized (with appropriate modifications) to algorithms for corresponding operations on polynomials in algebra, although the resulting algorithms do not look quite like any typical multiplication algorithms but rather are based upon the idea behind such algorithms: computing and recording partial products and then adding. The polynomial multiplication illustrated below, for example, is somewhat like multiplication