Ten years ago, I was teaching a multimedia graduate class in which we were looking at different multimedia environments that could be used to develop educational content. The course culminated with an Adobe Flash project, but we explored other applications along the way.
One of those applications was Scratch and I wrote about it back then. At the time, Scratch was a program that was downloaded and used offline. Finished projects could be uploaded to the web site for sharing. You could also download projects from the website and remix them using the desktop application. About four years ago, the Scratch programming environment went online. Since that time you can do all your coding using only a browser at https://scratch.mit.edu.
There are several things about Scratch that make it an excellent place to learn to code. One of the most important is the price. Scratch is completely free. There is no required software installation because everything is done in a browser. If you can get online, you have full access to all the features in Scratch. If you do not have Internet access, you can still download the application and do the same activities offline. Anything created with the application can be uploaded to the website when you do get online.
Students can be successful with Scratch right away. Scratch has a section called tips with tutorials and PDF guides. There are thousands of Scratch tutorials on YouTube. A student can start with a guide that introduces the programming environment, shows how to create content and share that work with others online. Students can create and publish simple projects in one class period. Last year, my wife and I worked with a group of elementary students at her school. We developed an activity where participants created a game. It was a simple game where the player moves an object along a path to a “treasure” at the end of the path. Touching the treasure wins the game. By adding a timer, it became a game where users could compete for the best time. We had a computer lab full of kids and they created their own game in one hour. It was a simple project with detailed instructions, but every student who wanted to complete it did so. Some of the excited kids came back the next day and told my wife they had worked on their game at home and added extra features.
The ability to share projects with other people is one of the most powerful features of Scratch. This has two advantages. A student can make a project with a specific target audience and then share that project with that audience. For instance, a student can make a birthday card for grandma and then send grandma the link. All grandma needs is a browser and she can see the card and hear her granddaughter talking. More importantly, since all projects are “open” to all users, a student can look at all the code from any project to learn how specific programming problems can be solved. A student can take any existing project and “remix” it to make something new. Consider this Origami project. It has been remixed more than 3000 times. If you look at the remixtree, you will see that the Origami project is actually a remix of another project.
Finally, Scratch is powerful. You can program anything from a game of checkers to a fully functional flight simulator. The graphics editor has both bitmap and vector editing capabilities. If you want to import graphics from an advanced program like Illustrator or Photoshop, you can do that too. You can also generate graphics as part of the programming, as in this SpiroGraph project.
Each year, we participate in the Hour of Code project. Some of our students program with Scratch during the hour of code using activities shared on the site. This year, some of our high school students are creating activities in Scratch that can be used by younger students during the hour of code. A project like this permits us to use Scratch at every level. Older students create Scratch modules that younger students can use to make new Scratch projects.
If you have an idea for a project, you can probably find something similar to use as a starting point. I found this Asteroids game and used some of the spaceship navigational controls in my own version of the game. I called it Ionoids. Different ions are randomly generated and you must “shoot” them with the proper ionic charge to destroy them. All of the graphics were created in Scratch. I shared it with students who tested it and made suggestions on improvements. The finished product is used by the science teachers as a fun way to help the students memorize the common charges for ions. Scratch gave me an environment that I could use to quickly create this project. I don’t think I could have done it without Scratch.
Now if you Google “ionoids”, my project is the first thing you see.
All my projects are here.