Given the impact of computers and computing on almost every aspect of society, the ability to develop, analyze, and implement algorithms is gaining more focus. An algorithm is a precise, systematic method for solving a class of problems. Algorithmic thinking, which is a form of mathematical thinking, refers to the thought processes associated with creating and analyzing algorithms. A primary goal of mathematics education is to prepare students to be flexible problem solvers. Both algorithms and algorithmic thinking are very powerful tools for problem solving and students could benefit from covering these topics in their mathematics education. In addition, exploring algorithms can help students see mathematics as a relevant and creative subject. In high school, however, algorithms are usually restricted to the computer science curriculum.
This presentation will introduce several important algorithmic problems and illustrate how they can be incorporated into a high school Precalculus course. It will focus on the mathematical skills needed to describe different types of algorithms for several problems and to distinguish more efficient algorithms from less efficient ones. Beginning with the fundamental problems of searching and sorting, the problem solving techniques of recursion and divide-and-conquer will be used to analyze how different algorithms are structured and to define their complexity functions, which give the number of operations necessary to execute an algorithm based on the input size. Furthermore in order to determine which algorithm is more efficient, a comparison of the complexity functions’ growth rates will be carried out.