It is a bunch of procedures. That’s how people perceive algorithms are. And they are right. Algorithm has been defined as 1) “step-by-step procedures that are carried out routinely”; 2) “a precisely-defined sequence of rules telling how to produce specified output information from given input information in a finite number of steps”. It is no wonder then that teaching algorithms is perceived by many as teaching for rote learning and produces not conceptual knowledge but procedural knowledge. Teaching algorithms promotes the notion that mathematics is a bunch of procedures. Authors Fan and Bokhove however beg to disagree. They argue that “algorithms can be objects of learning at different cognitive levels”. In their article *Rethinking the Role of Algorithm in School Mathematics: a conceptual model with focus on cognitive development *recently published in the journal For the Learning of Mathematics they propose a new perspective and framework to analyze the learning of algorithms.

The model consists of three cognitive levels: (1) Knowledge and Skills, (2) Understanding and Comprehension, and (3) Evaluation and Construction. From these framework they also propose ideas and strategies for teaching algorithms so that they are not just rules and procedures to be remembered but learning them become a context for learning mathematics and how to think mathematically.

###### Teaching algorithms: ideas and strategies

Teaching algorithms can be associated with different levels of cognition. At the first level, Knowledge and Skills, it can be argued that teaching of algorithms at this level mainly involves ‘‘direct teaching’’. Activities of direct teaching at this level could be:

- Telling: Teachers verbally let students know what an algorithm is.
- Demonstration: Teachers show students, often using examples, how an algorithm works.
- Drill-and-practice: Teachers ask students to do exercrises in relatively straightforward situations, which are essentially routine and repetitive in nature.
- Remediation: Teachers help students correct their mistakes found in their drill and practice.

At the second level, teaching can include the following activities, which can be described as ‘‘meaningful teaching’’ in connection with the term of meaningful learning, as:

- Explaining: Teachers explain to students what a part or the whole procedure of an algorithm means, and, more importantly, why the algorithm works.
- Justifying: Teachers let students realize how an algorithm is derived logically or can be proved mathematically.
- Making connections: Teachers help students make sense of the algorithm through connecting the algorithm with what students have learned or are familiar with.

At the third cognitive level, we suggest that teachers provide opportunities for students to engage in learning activities such as observing, analysing, identifying, constructing and presenting the patterns. According to students’ learning activities, the activities of teaching at this level can be roughly categorized into guided exploration and open exploration:

• Guided exploration: Teachers create learning activities for students to explore and obtain the algorithm, while providing a certain level of guidance in the process of students’ exploration.

• Open exploration: Teachers create learning activities for students to explore and obtain the algorithm, and the process of exploration is basically or completely independent.

Guided exploration of an algorithm can often take place before the algorithm is formally introduced.

I believe my posts Teaching Combining Algebraic Expressions and Teaching the Properties of Equality are some examples of teaching at the third level.