An algorithm is a procedure, applicable to a particular type of exercise, which, if followed correctly, is guaranteed to give you the answer to the exercise. Algorithms are important in mathematics and our instruction must develop them but the process of carrying out an algorithm, even a complicated one, is not problem solving. The process of creating an algorithm, however, and generalizing it to a specific set of applications can be problem solving. Thus problem solving can be incorporated into the curriculum by having students create their own algorithms. Research involving this approach is currently more prevalent at the elementary level within the context of constructivist theories.