I get a lot of questions from teachers and librarians at conferences and networking events about using Scratch in the classroom. I’m sharing the lessons I’ve learned from teaching children computer programming via Scratch for the past year and a half now. It started as one blog post, which has turned into a four-part blog post series:

Part 1) Learning outcomes with Scratch

Part 2) Designing course levels

Part 3) Designing an 8-week course

Part 4) Designing classes

Learning outcomes by using Scratch

Scratch is a fun and easy way to for beginners to learn computer programming concepts. But the greatest value of Scratch is not just the ability to create programmes. It also equips students with underlying transferable skills in problem solving, algorithmic thinking, logic, graphic design and user interface. Scratch also helps students develop the right attitude toward learning:

  1. Authentic learning, i.e. project based, real world learning. Whether you are building computer games or developing security software, the problem solving skills you develop are useful and transferable in any personal, professional, organisational or entrepreneurial environment.
  2. It’s ok to fail. In coding, or computer programming, we are not tested on what we know and receive a mark out of 100, but rather on our ability to keep learning and solve new problems. Failure, i.e. our code not working, is simply a stepping stone to  getting our code to work. No piece code works perfectly the first time. Part of the process for students is making a guess, exploring the possible solutions and recognising why attempts at solutions did not work.
  3. Learn from mistakes. Whether you are a beginner programmer or a professional, we all learn from our mistakes. Luckily with software development we can always test our code to see if it works.
  4. Growth mindset. It doesn’t matter whether you know the answer or have the skill right now this very instance, what matters is that you believe that you are capable of growing and becoming better.
  5. Learning to learn. This is a skill we will need for the rest of our lives. Studying stops when exams are over, but as technology evolves, humans will need to keep learning to stay ahead.
  6. Be yourself. Find your own solution. Unlike traditional academic education, arriving at the same solution as everyone is not required.

The technology-entrepreneurship universe

Coding with Scratch is a first step into the technology-entrepreneurship universe. The study of technology is often intertwined with the study of entrepreneurship. New business products and services are often the result of a new technology (software or hardware), such as the IPhone, Uber or Airbnb. New technology often leads to the development of a new business service or product. Technology is the development of a solution, and entrepreneurship makes the solution accessible to the market. Entrepreneurship is selling a product that solves other people’s problems or pain points.

Planning learning progression

This article focuses on how to design workshops and courses based on our learning progression for programming with Scratch. However, there is a much broader learning progression involving programming in other languages, programming hardware, developing inventions and progressing onto entrepreneurship which develops problem solving in the context of commercial viability and creating a marketable product.

We will focus on the learning progression for programming in Scratch, but keep in mind the broader world around it.

A question often asked is, “How do I design a class to engage children to learn computer programming with Scratch?”

Designing a fun, engaging and educational class is easy, but how do you develop a long-term learning pathway.

Our approach was to first develop a long-term learning pathway, then develop the 8-week courses and then design each class.

Part 2 covers designing course levels using Scratch.


Check out our free teacher download. Learn to code with Scratch in 30 minutes.

If you’re interested to find out more