Discovering Scratch Programming
Exa Education have been running a series of pieces on various Programming Languages for Digital Makers, looking at various languages designed to create computer programmes. Today, we’re taking a look at Scratch, one of the more simple and easy to learn languages around.
Scratch was developed with young learners in mind, designed for those aged 8 and up. As a visual programming language, Scratch programmes are coded graphically rather than using language, which lets users focus on what they’re programming without having to worry about textual errors.
We think Scratch is a great first programming language for digital makers, giving users the ability to create fun programmes like games along with animations, stories and more. The language definitely rewards creativity, which makes it as useful for young learners as it is fun.
Importantly, Scratch is completely free to use, with no licenses needed for schools. The only thing to be aware of there is the fact that projects shared on the Scratch website are licensed under Creative Commons, so other users can download, remix and change projects. This lets learners get behind the scenes of Scratch projects they’ve enjoyed, letting them see how everything comes together.
How to code using Scratch
Scratch is a fairly versatile language, with a lot of different functionalities. Projects are built visually using blocks, which can be attached to individual objects, creating high functioning yet simple to understand instructions. Scratch blocks come in 10 different categories:
Motion: Used to move objects (referred to as sprites) around a scene.
Looks: For visually altering sprites - changing sprite costumes and colours, adding speech bubbles, changing size and more.
Sound: Plays various audio files at selected volumes, tempos and such.
Pen: Used for drawing on a scene in various ways, particularly useful for drawing programmes.
Data: Designed to create lists, designate variables and respond if certain conditions are met.
Events: Set up responses to certain activities, from clicking to timing-based events.
Control: Control how long a certain block runs for, set up scripts and clone scripts.
Sensing: Make features in a program interact - add collision detection for games, add game over/win conditions, make sprites react when keys are pressed, etc.
Operators: Read various strings, script maths equations and compare variables.
More Blocks: Create custom blocks to fulfil various functions.
As you can see, there’s an incredible amount of features available for Scratch, which can be somewhat overwhelming for those learning coding for the first time. It’s definitely best to introduce users to Scratch features bit-by-bit rather than just throwing them in at the deep end - you can find a wide range of curriculums, sample projects and more on the Scratch website.
If you’re looking to teach very young learners, it might be worth starting off with Scratch Jr, a version of scratch designed for 5-7 year olds. Again, Scratch Jr is totally free to use, and can be run on a range of hardware, from PCs and laptops to iPads and Raspberry Pis.
Examples of Scratch projects
The Scratch website shows off a regularly updated selection of example projects. Due to Scratch’s Creative Commons licensing, users can edit any programs they’re interested in, finding out how they’ve been coded and taking parts of the code for their own usage.
We’ve seen some great projects built using Scratch. The Raspberry Pi blog shows off a couple of Pac-Man Scratch ports, definitely one of the more advanced works we’ve seen, while the Scratch Jazz tutorial shows users how to program full on jazz instrumentals.