My teaching plan

People have different learning styles and there are many different ways of getting started with Scratch, for example: reading the Scratch reference manual, watching or reading tutorials, following instructions to build sample projects or experimenting with code blocks and testing the result. Some people learn by making changes to existing projects. The Scratch program comes with sample projects. Users can upload their projects to the Scratch website, and others can use the source code to build similar projects or see how a particular effect is achieved.

Many types of projects can be made using Scratch and I wanted students to use their imagination to create projects that they would enjoy making.

The Group

There were 5 students ranging from 9 to 17 years. All students had some experience with using computers, the internet, games and software such as Word and PowerPoint, but none had any programming or game making experience. The older students had a better understanding of some of concepts such as x and y coordinates, but learning these concepts was not a significant difficulty for the younger students. There were four sessions of one hour each but I encouraged students to work outside these times.

The Objectives

  • students learn enough about Scratch so that they can progress to more difficult projects
  • students become more independent and learn to solve their own problems through experimentation and using the online tutorials and help
    • Scratch is freely and easily downloaded. If students become independent, they can continue to use it at home.
    • Independent research and problem solving are valuable transferrable skills.
  • students enjoy Scratch and want to continue working with it
  • students collaborate, help each other and share their ideas and finished projects

This program was conducted over the school holidays and the focus was on students enjoying using Scratch. If I was teaching Scratch in a school setting, I might look at teaching specific skills or linking projects to particular curriculum topic. However the educational value of Scratch would justify teaching it without any other relevance to the school curriculum.
see Learning with Scratch, 21st Century Learning Skills

Theoretical perspectives - Constructivism and Constructionism

This project raises the question of how programming should be taught. Three methods of teaching programming are:
  • teacher centred step by step explanation of basic functions before starting coding
  • teacher guided use of step by step tutorials
  • student centred exploration by beginning coding and discovering functions by experimentation, trial and error and reference to manuals tutorials and other help resources

To decide which approach to take, I examined the learning and teaching theories underpinning the educational use of game and animation programming.

Constructivism is the theory that learning cannot simply be transmitted by a teacher or absorbed by a student but occurs when individuals reflect on their experiences and construct a personal understanding. Constructionist theory is that the most effective learning experience is constructing a meaningful product.

Teachers in a Constructivist or Constructionist learning situation are responsible for providing the resources for students to explore and manipulate and guiding the students to know what there is to explore and discover. While most researchers appear to agree with the basic premise of constructivist learning i.e. that learners construct knowledge, there is disagreement over the implications of constructivist theory for designing teaching programs. Some critics believe that constructivist teaching techniques force students to reinvent the wheel rather than attempt to understand how it turns. Students involved in hands-on activities, often equated to constructivist learning, may be behaviourally active but not cognitively active.

Mayer reviewed research on discovery learning and found that guided discovery was more effective than pure discovery in helping students learn. In one particular study, students who learned LOGO using a guided discovery method (following a worksheet that guided them through the basic processes) performed better on generating and debugging new programs than students who learned by pure discovery.

Vygotsky coined the term ‘Zone of Proximal Development’ to refer to the difference between what a student can do independently and what the student can do with adult help. Students learn best when guided by adults to do activities in this zone, i.e. slightly harder than they can manage by themselves.

Bruner developed the term ‘scaffolding’ from Vygotsky’s work. Just as scaffolds support a building under construction and are removed when the building can support itself, the teacher recognises the student's current learning stage and provides support to help them to reach the next stage.

Von Glasersfeld recognises that Constructivist learning theory places the responsibility for learning with the learner who must be motivated to take an active role rather than be forced to take a passive receptive role and believes that motivation is strongly dependent on confidence in learning ability. Vygotsky's 'Zone of Proximal Development' and Bruner's 'Scaffolding' concepts support the idea of learners gaining confidence and motivation to move onto more complex challenges.

Constructivist and Constructionist theories see learning as a social activity and emphasise the importance of collaboration, peer tutoring and/or public presentation.

These theoretical perspectives informed my decision to take a guided discovery approach to teaching Scratch.

My lesson plan

My plan was for students to start working through the tutorial Introduction to using Scratch as a group under my guidance. While teaching I have observed that many students, particularly younger ones and even those who appear attentive, do not absorb or remember information until it is required. Also students are usually eager to start using their keyboards and too impatient to properly listen to preliminary information. The tutorial allows to students to get programming quickly. It allows them to use a function as soon as they learn about it and encourages them to experiment with the function.

The tutorial starts with two videos, an introduction to Scratch and demonstration of how a simple game can be made in a few minutes. It contains step-by-step instructions for using Scratch blocks and tools which are very detailed at the beginning but become less detailed at later stages when it is assumed that students have mastered basic techniques of moving blocks etc. The tutorial also contains some general explanations about Scratch, some background information, (e.g. relative and absolute values), links to other information and suggestions for experimentation and extension activities. At the end of the tutorial, the student has made a game which illustrates many Scratch functions.

As students developed an understanding of Scratch basics and started working at different rates, I planned for the sessions to become more student centred with students working individually on projects of their choice. I expected at this stage to give students assistance when required because the student centred exploration approach without scaffolding teacher support can be frustrating if students are unable to discover the necessary functions for themselves or are so unsure of where to go, that they are unable to ask for help. I wanted students to explore and experiment but experimentation can be a slow and frustrating way to learn or complete a project if their objective is outside their Zone of proximal Development'.

When assisting students my objective was to guide students to solve their own problem or find the relevant information rather than instruct them. The Student resources page on this Wiki and the Scratch Cards are intended to help students solve problems by themselves and learn new techniques as well as get inspiration about the possibilities offered by Scratch.

I decided that each student should work individually on their own projects using their own laptop. Doing this type of project as a group can be frustrating for the students who are not using the keyboard and often the more forceful students dominate the decision making and use of keyboard. However I encouraged peer tutoring and sharing of ideas and finished projects. The official Scratch website encourages collaboration and sharing. Finished projects can be uploaded to the official website. Others can view the projects, comment or download a project as a basis for their project.


Because there are many Scratch teaching and learning resources freely available on the internet, I decided I did not need to write copious amounts of teaching resources myself. However the existing resources vary in quality and are scattered across the internet, making them difficult to find and it can be difficult to get help on a particular topic. There are many introductory tutorials but most only cover a few functions. I decided that I would prepare two types of resources:
  • tutorial for introducing students to Scratch
  • lists of resources for students to use
    • resources were selected on basis of quality and relevance
    • resources cover a range of learning methods: text, video, demonstration, example
    • resources were arranged according to topic and supplemented by extra information where I thought it would be useful

These lessons were conducted without access to facilities such as data projector, but each student had:
  • laptop with
    • Scratch development environment installed
    • and internet access to this Wiki and linked resources
  • printed copies of the Scratch Cards for quick reference.


Initially the students followed the tutorial. They were very eager to help each other. During the first lesson they began to develop ideas about projects that
they wanted to make. During the second lesson they were unwilling to follow the tutorial and wanted to start their own projects. By this time, most students had enough experience in using code blocks to enable them to work out how to use new blocks.

Most of the students, including the younger ones, showed persistence in getting their projects to work. But the younger students in particular showed little
self reliance in getting on-line help, preferring to ask myself or a classmate.

Evaluation - project objectives

  • students learn enough about Scratch so that they can progress to more difficult projects
During the lessons most students progressed from no experience of game/animation programming to making complete working projects of varying levels of complexity.
  • students become more independent and learn to solve their own problems through experimentation and using the online tutorials and help
Students usually take the easy way out and ask for help rather than search for appropriate help resources. Peer tutoring is an effective learning tool for both the tutored and tutor. As the teacher I tried to provide assistance to find the answer or identify the problem rather than directly answering the question or finding the mistake. Sometimes if the student was becoming frustrated I gave more direct help. By the end of the lessons, the students showed good progress in being able to spot where they had made a mistake and were often able to fix it themselves using their existing knowledge, but still needed encouragement to find new information for themselves.
  • students enjoy Scratch and want to continue working with it
The students enjoyed working with Scratch. Whether a student continues to work with Scratch depends on their home environment as much as the skills and interest developed during the lessons. Some children are encouraged and helped by their parents to work with Scratch but others have not developed enough self reliance to work by themselves. Given the option most students will chose TV or video game playing because it requires less effort and perseverance.
  • students collaborate, help each other and share their ideas and finished projects
There was a friendly helpful atmosphere during the lessons. Students enjoyed helping, and be helped by, their peers. They were keen to upload projects to the official Scratch website and found sharing with a wider community fun and motivating.

Evaluation - possible improvements

This project was conducted as a voluntary school holiday program and was successful in providing a fun educational activity. The most dissapointing aspect of this project was that the students have completed few Scratch projects since finishing the lessons, but this is probably more due to students having busy schedules and/or availability of TV and video games than the shortcomings of Scratch or this teaching project.

Teaching a small group allows the teacher to give each student individual attention. If I was teaching Scratch to a large school class, I would take a slightly different approach, because I would not be able to give each student as much individual attention. Each lesson, I would introduce the whole class to a few functions and let them practice the new functions. When they have learned the most important functions, I would let them start on a project of their choosing. While I believe that making any Scratch project is educational, if I was teaching Scratch in a school, I would probably set some requirements or criteria for students' projects to ensure that students are learning particular schools.