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:
How to make a cup of tea:
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).
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.