Back in the Year 2016 when we started Dhack Institute, we initially struggled with the concept of programming for kids. How can 6-year-olds learn to code? Upon research, we found that we couldn’t be more wrong. There was a very strong movement about “STEM for kids” or “Computer Science for kids” especially in the United States. We knew then that we were not alone.
Note: STEM stands for Science, Technology, Engineering, and Mathematics. While we are not advocating that every child have a STEM career, we believe that every child needs to have basic knowledge about Technology, irrespective of their career path. Moreover, STEM is one of the ways for kids to develop important life skills like Creativity, Critical Thinking, Problem Solving, and Collaboration.
One of the first programming languages for kids we stumbled upon was Scratch. It was exciting. A visual programming language meant that kids could focus on creating and worry less (for the moment) about typing and syntax. Also, the fact that the blocks could snap together LEGO-style was mindblowing. With Scratch, you can create awesome stuff like stories, animations, games (kids’ favorite), videos, and really, anything you can imagine. The flexibility of Scratch is amazing.
Scratch is developed by the Lifelong Kindergarten Group at the MIT Media Lab. It is available for free at https://scratch.mit.edu and also has an offline version that can be installed on PCs.It is aimed at kids 8 years and older even though younger kids can also be exposed to it. The current version is Scratch 2.0 with Scratch 3.0 expected sometime in Summer 2018.
Hint: A better alternative for younger kids (5-7 years old) is ScratchJr which is available as an app on tablets.
Creating projects in Scratch is quite intuitive: you have characters (sprites) on a stage (backdrops) being told what to do using scripts. You can choose from different sprites and backgrounds or upload your own. You also have a lot of blocks with which to create scripts. In summary, a lot of fun possibilities while learning programming concepts.
As you must have noticed from this article so far, we absolutely love Scratch. For the sake of readability, let’s talk about some of the benefits of using Scratch to introduce kids to programming.
First, Scratch is free! Anyone anywhere can sign up and use Scratch for free. This is very important especially for kids in underfunded areas. Of course, you still need a computer to use Scratch but then you don’t have to worry about extra software license costs.
Secondly, the awesomeness that can be created by kids in Scratch is out of this world. We’ve had kids in our programs create projects like a two-player fighting game, car race game, and a dress-up game. Also, since Scratch is not only used by kids, there are some really advanced projects on there like this Ninja game.
The fact that Scratch is community-based can be a two-edged sword (as discussed below). However, Scratch generally has a great community. You can get lost in the “Explore” page on the Scratch site with the over 20 million projects shared, projects which you can see their code and also create your own remix. There’s also a Scratch Wiki where you will find answers to almost anything that’s bugging you, along with various tutorials.
While it is possible to use Studios to organize projects in one place, teachers will love the Teacher Account even more. With a Teacher Account, you can create classes, add/invite students, organize projects in studios, and many more.
Scratch can do almost no wrong in our eyes. However, we need to highlight some of the areas we (and others) have struggled with Scratch, some of which are subjective.
One of the biggest challenges we’ve had to overcome with Scratch is that it is not natively supported on mobile devices. Since these devices are prevalent among kids, this can be a big deal depending on your setting. Thankfully, it seems Scratch 3.0 will address this issue because it is based on HTML5 (not Flash). It probably still won’t work properly on phones but at least, tablets should be fine.
Scratch, being community-based, can also be a problem. Since anyone can create anything and share it on Scratch, it means that kids are exposed to all shared projects, even content that may be deemed harmful. The Scratch team takes this issue very seriously so much so that you must agree to the community guidelines before sharing a project on Scratch. Content can also be reported as inappropriate and then reviewed by the Scratch team. However, if these measures are still not enough, you can just use the offline Scratch editor for your kids.
The initial reaction of older kids to Scratch is that it is childish and not serious enough because it is mostly 2D. However, as they come to find out, Scratch is so powerful that people have made full games in Scratch. Still, there are more advanced platforms for serious game development and animation.
Even though we had some technical background before Dhack Institute, we were still skeptical about teaching kids how to program. Programming/Coding was not an area of strength so how could we teach it? What if the kids asked questions we didn’t have answers to? All legitimate fears that you may also have.
However, you will find out, as we did, that it is okay to teach Scratch even without prior programming experience. Programming is really just logic. “If it’s raining, take an umbrella” – that’s basically an If (Else) statement in an everyday example. Also, teaching programming (and STEM skills in general) is not about having all the answers but about creating a learning experience for you and your class where you all find solutions to problems together.
At the time of discovering Scratch, we had our first STEM club coming up and we felt it was the perfect opportunity to try out Scratch. The next task was figuring out how to get started. Thankfully, the guys at Scratch have a fantastic guide that can be used in various settings like classrooms, clubs, and so on. This guide is called the Creative Computing Guide and is available to download free here.
You can actually use the Creative Computing Guide as-is by following the activities as they are listed. However, if you are looking for a more sequential or project-based approach, you may have to adapt the guide as necessary or come up with your own lesson plans altogether. For example, we created a free Introduction to Scratch course, suitable for both kids and teachers. Try it out!