I get a lot of questions from teachers and librarians at conferences and networking events about how to bring Scratch into 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 with Scratch Part
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:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.