The Scratch programming languages was designed for educational use, to support the constructionist approach to learning which encourages creative problem-solving. Students will be problem solving as soon as they load up Scratch.

Although, Scratch programming facilitates higher order thinking such as problem solving skills, teachers can provide
instructional support to students, to help them think through difficult programming problems. This can involve having
students break down problems into smaller sub-components through the creation of **algorithms**,
and **exploring multiple solutions** to problems.

Getting students to master the process of thinking through programming problems and determining
the best method of solving each problem is made easier with Scratch. One of the **advantages Scratch** has over traditional programming languages is its ability to easily allow users to **visualize
the results** of their programming (solutions to problems) on the screen.

**Scratch simulates traditional programming**, by providing learners with a simple visual drag-and-drop user interface. This
visual nature of Scratch allows students to test different ideas or approaches to a problem and to more easily
learn what works and what does not.

The results of a study on the effects of simulation games on the learning of computational problem solving demonstrated that simulation games are an effective approach to assisting novice programmers to learn computation problem solving skills; the study found that "simulation games based on Paperts' constructionism may improve problem solving" (Chen-Chung, Yuan-Bang, & Chia-Wen, 2011, p. 1916).

When applying Constructivist learning theory to problem solving within Scratch, students should:

- Create their own algorithms for solving Scratch programming problems. They should not be taught one specific algorithm, for example long division.
- Be encouraged to discuss, reflect on, and demonstrate strategies for problem solving.
- Solve problems collaboratively.
- Problem solve in authentic contexts.

- Give students an opportunity to practice writing and developing their own algorithm (solutions) on paper first.
- As a class discuss, demonstrate and reflect on different solutions.
- Next have students develop a visualization of their solution with Scratch. This could be a simulation, a game, or an animation. This can be done in small groups.

How to make a cup of tea:

- In small groups ask students to write out on paper a set of instructions to describe how to make a cup of tea. Tell them that the computer needs to know in detail every step.
- As a class, ask students to share their instructions and note any differences or omissions.
- Discuss the problems involved in creating an algorithm (set of instructions).
- Next have students develop a visualization of their solution to the problem in Scratch. This could be a simulation, presentation, a game, or an animation.

See a video example of a presentation solution to the cup of tea problem..

Although this is an easy example, it is important to stress the need for instructions to be precise. You can get students/groups to write algorithms for other students/groups to follow and test out. This activity will reinforce the need for precision in algorithms.

Students should learn that there are many different ways to program games, simulations and animations. Students should be encouraged to explore different solutions; this will help strengthen both their problem solving and programming skills, and give them confidence in creating their own algorithms (solutions).

Activities that explore multiple solutions allow students to see other ways of doing things, enabling them to construct new meanings through the context of their own experience(Dabbagh, 2005). Moreover, the experiencing of different perspectives is necessary for the development of problem solving abilities, creativity and advanced mathematical thinking.(Leikin, Levav-Waynberg, Gurevich, & Mednikov, 2006).

- Challenge students to discover multiple approaches and/or solutions to programming problems.
- Share student solutions.
- Have students download and explore similar projects/solutions from the Scratch website.

Chen-Chung L., Yuan-Bang C., & Chia-Wen H.(2011). The effect of simulation games on the learning of computational problem solving, Computer and Education, vol. 57, pp. 1907-1918, 2011.

Dabbagh, N. (2005). Pedagogical models for E-Learning: A theory-based design framework. International Journal of Technology in Teaching and Learning, 1(1), pp. 25-44.

Leikin R., Levav-Waynberg A., Gurevich I. & Mednikov L. (2006). Implementation of multiple solution connecting tasks: Do students' attitudes support teachers' reluctance? Focus on learning problems in mathematics, 28(1), 1-22.