Scratch is a coding environment designed to allow kids as young as 8 years old to create impressive computer games, stories, and animations. Programming with Scratch is so fun that kids don’t even realize they are learning essential programming concepts at the same time. Add that with the fact that it is the programming language used most by 4th to 8th graders and you will see why we recommend most students use Scratch as their first programming experience.
Schools using Scratch
Scratch is a common language for many courses in programming that teach the basics of programming. It is often used for AP Computer Science Principles courses and is very similar to the language used on the exam. It’s not just kids that use Scratch as their first programming language. College students and adults use it as well. In fact, Harvard’s introductory programming class even uses Scratch for part of the course. Here is the full lecture exhibiting the impressive capabilities of Scratch (Scratch begins at minute 26):
Some technologists resist drag-and-drop programming like Scratch but as they see more of the capabilities of Scratch they are almost always converted. Did you know that Scratch was created by MIT? Mitch Resnick, the Director of the Lifelong Kindergarten group at MIT Media Lab, gave a TED talk about the benefits of teaching kids to code and how Scratch is perfect for the job. It’s an excellent presentation that will reshape how you think about the benefits of your child learning to program. I highly recommend watching it.
Block-Based Programming
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 visual programming languages or block-based programming 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. However, they are still able to learn syntax rules as each block’s shape influences how it can be used.
Above is the Scratch programming environment. The left panel contains the various instruction blocks that are available for use. Kids will snap these together to make a sequence of blocks in the middle pane. This controls the various characters on the stage in the upper right.
Accessible to All
Scratch programming can be done online without needing to download anything. Scratch is also available on iPads and through the Google Play Store. While it is not used as much anymore there is even an offline version. If Scratch is a little too much there is even Scratch Jr. so kids as young as 5 can learn to program even before they know how to read using basic programming blocks.
The learning curve in drag-and-drop programming is gentle – anyone can sit down and make an interactive computer program. Several kids in my life still firmly believe that Scratch is the best video game, and I was the best babysitter for showing it to them. 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. With just 5 lines of code you can build a whole game but you can definitely build a more amazing game with a couple hundred lines.
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 interactive stories with custom-made characters. The older students will also gain important exposure to basic coding concepts that they will encounter again in their next language.
Important Programming Principles
Scratch includes important fundamentals of programming that 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 Scratch projects, especially 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. This allows students to push deeper into the logic of programming and learn key concepts, while remaining in the Scratch environment.
Students can even begin using object-oriented programming concepts by using clones.
Vibrant Community
Along with being a great programming environment, there is a way to allow 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 143 million projects added to the website! These projects are extremely diverse. There is something there for everyone to try out and maybe even remix.
Not only can you play other students’ games on the website, you can actually 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.
Learn if Scratch is Right for You
While we love programming with Scratch at Breakout Mentors, it is important to take into account the specifics of each student before making a recommendation on the coding language to learn first. So please contact us to discuss your son or daughter’s background and interests.
The start of the coding journey is the most straightforward. The tricky part is keeping students advancing and having fun, including navigating the transition from Scratch to Python. We have helped hundreds of students through this process and know exactly how to smooth out the bumps on the way.