Scratch is a programming environment designed to allow kids as young as 8 years old to create impressive computer games, stories, and animations. It is so fun kids don’t even realize they are learning important programming concepts at the same time. Add that with the fact that it is the programming language used most by 6th to 9th graders and you will see why we recommend most students use Scratch as their first programming experience.
Creating a program in Scratch does not require any typing at all. Rather, there are blocks of computer instructions that the student drags-and-drops together to create an entire program. The benefit of this approach is it is not possible to create a syntax error (for example a missing semi-colon or parenthesis in the wrong spot), which can be a tremendous hurdle for first time programmers.
Above is the Scratch programming environment. The left panel contains the various instruction blocks that are available for use. Snapping these together in the middle pane allows control of the various characters on the stage in the upper right.
Accessible to All
Not only is the Scratch programming environment free on Windows, Mac, and Linux, but more importantly the learning curve is gentle – anyone can sit down and make an interactive computer program. The complexity is entirely up to the operator. This is why an 8 year old can use it without prior programming experience, and why after several years of experience it is still challenging enough to keep 15 year olds interested.
Diversity of Projects
A 4th grader who has never programmed will be able to use Scratch to make interactive animations complete with sounds. These first projects are not complex, but each subsequent program will be more difficult than the last. It does not take long for the student to start wondering – can I control the action with the mouse or have these characters interact directly? Simply exposing the students to the possibilities of the platform will drive them to continue trying new things.
A 9th grader with some programming experience is also able to use Scratch. This student’s projects will be far more complex – side scrolling computer games, classic arcade games, or clever interactions with custom made characters. The older students will also gain important exposure to programming concepts that they will encounter again in their next language.
Important Programming Principles
Scratch includes important programming concepts to allow the student to make impressive programs in a short amount of time. There are various loops and conditionals available to easily control the flow of the programs.
Receiving inputs from the user is important for making games. This is extremely convenient in Scratch for all keyboard keys, as well as mouse buttons and location.
Another difficult aspect of creating games is collision detection, or knowing when two objects are touching each other. There are several options that make this easy in Scratch.
More advanced programming concepts including variables, arrays, and event handling are possible as well.
Along with being a great programming environment, there is an accompanying website that allows students to share their programs and see what other people are making. To say that this community is vibrant is an understatement – there have been over 1.8 million projects added to the website!
Not only can you play other students’ games on the website, you can actually download their project to see how they did it. This is a terrific way to learn for your own projects or use as a starting place to build new features and levels. It is this active community that gives Scratch an advantage over all the other terrific beginner’s programming languages.
Subscribe to our email list to receive future articles about teaching kids programming.