12 April, 2020
Scratch is one of the most popular programming languages for children. It was developed at the Massachusetts Institute of Technology (MIT) and has been dubbed the ‘YouTube of interactive media’. Scratch is a visual programming language (VPL) which teaches children the main principles of programming via sequences of drag-and-drop blocks, combined to create a 2D world. Each block contains underlying code which is written into rules as the blocks are combined with one another, and the results are displayed live on the screen. Although Scratch was designed for children between the ages of 8-16, it is also appropriate for younger children as typing abilities are not required.
Coding on Scratch begins with a simple selection of backgrounds and graphical characters called sprites. Blocks are then combined to program the sprites and background to create a 2D world. Scratch’s workspace is clearly laid out: a command palette to the left; a central pane where the script for the selected sprite/background is written; a live demonstration of the code on the top right (known as the ‘stage’); and to the bottom right a list of the project’s sprites and backgrounds. Scratch’s single-window interface makes it easy to keep track of all the elements of the project.
Children animate their stage using the command palette. The palette’s ‘Code’ tab contains colour-coded sections, including Motion, Sound, Control, Events, and Variables, in which different blocks are arranged in order of usefulness and simplicity. Users simply click and drag the blocks into the central pane to build the code. Each block comes with default parameters allowing users to test what the block does, but these values can be altered to change the background or sprite’s behaviour. The simple and organised palette introduces new coders to basic programming terminology and commands without a dauntingly long list of concepts. Aside from the ‘Code’ tab, there are ‘Costumes’ and ‘Sounds’ tabs where children can customise the colour and sounds of their sprites and backgrounds.
Did you know? Scratch's motto is "Imagine, Program, Share". This follows the basic principle of creating a project: one comes up with an idea ("Imagine"), programs the idea in Scratch ("Program"), and then publishes it in the community ("Share").
Inspired by Lego, the blocks in Scratch have different shapes to indicate which others they can connect with, and blocks which do not make computational sense to combine literally can’t fit together. For example, the ‘repeat’ block has a ‘C’ shape, indicating that other blocks must be placed inside; and Boolean blocks have a hexagonal shape, and can only fit in the corresponding gaps. As a block is dragged, Scratch shows a white highlight over the block it should attach to. If an error occurs, for example when selecting values, a red border appears around the sequence of blocks where the problem lies, making troubleshooting much simpler.
As the blocks are combined, the top-right ‘stage’ displays a live demonstration of the code. Users can easily switch blocks in and out and do not have to complete a lengthy and meticulous script before running their code to see what happens. This ability to ‘tinker’ with the code is one of Scratch’s key features, and encourages constant experimentation with different combinations of commands.
Despite the platform’s simplicity, Scratch offers a remarkable range of potential projects and is characterised as having a ‘low floor, wide walls and high ceiling’. The variety of activities gives children programming freedom and a meaningful personal connection to what they’re learning. Projects include interactive stories, games and puzzles, tutorials and presentations, and art and music. An increasing number of schools are including Scratch in the ICT curriculum, both in its own right and as a way to enhance the learning experience of other subjects.
Scratch offers abundant opportunities for creativity. To deepen the immersive experience of their programmed world, children can personalise their projects by designing or uploading sprites and backgrounds and adding their own visual and audio files. Their creative skills will flourish and all this is achieved with no need for typing proficiency.
The latest version of Scratch (Scratch 3.0) includes an innovative extension system with new sections of blocks. Children can connect them to program physical devices such as motors and lights in micro:bit, or LEGO MINDSTORMS robotic kits. They can also program sprites to speak foreign languages with a Google Translate extension, or speak out loud with an Amazon Text-to-Speech extension. There’s even a Video Sensing extension whereby sprites respond to movements sensed through webcam!
Did you know?
Here is why Scratch is called Scratch:
"We take the name "Scratch" from the way that hip-hop disk jockeys scratch with music. They take pieces of music and then combine them together in unexpected and creative ways."
– Mitchell Resnick, Lifelong Kindergarten Group at MIT
There are plenty of tutorials available on the Scratch website to help new coders with all sorts of projects including stories, animations, games, music, and art. Children can learn from in-platform tutorials or download coding cards to walk them through the process.
When coding with Scratch, children gain as much from peer sharing and self-directed learning as from top-down instruction. Scratch’s user base can prove highly motivating and supportive for budding coders. Children can upload their projects to Scratch’s website and receive feedback and praise for their efforts. Alternatively, they can ‘remix’ the projects of advanced users, simultaneously creating and learning about media literacy and ethical reuse of online materials. Thousands of new projects are uploaded to the Scratch website every day, providing plenty of inspiration. Children coding with Scratch can also collaborate with other coders, and some ‘Scratchers’ even host contests to involve the wider coding community in joint projects.
Did you know? As of 2020, Scratch numbers over 51 million registered users and 48 million shared projects.
Scratch is free to use and can be run on most web browsers on Apple and Windows operating systems. The latest version of Scratch works on tablets and mobile phones, meaning that children don’t need expensive high-spec hardware. There is also an offline editor, Scratch Desktop, so children can use the platform without an internet connection. All downloads can be found on the Scratch website.
ScratchJr is a version of Scratch designed for 5-7 year olds, with a simplified interface and programming language. On ScratchJr young children snap together blocks to animate sprites and build simple stories. Whilst getting an introduction to the basics of programming they will learn how to solve problems, design their own projects, and develop maths and literacy skills. ScratchJr is a free app available on Android and Apple tablets and Chromebook.
Learning to code on Scratch provides a great basis for future programming opportunities, as the core programming concepts which children learn on Scratch are transferable from VPLs to text-based coding languages. Although the VPL interface may seem simple, as we’ve seen, children aren’t limited to easy games but can independently develop advanced projects.
Thanks for reading this article and if you have any questions or comments on this topic or coding and STEM in general, please feel free to contact us.