The complex syntax of computer programming languages makes the prospect of becoming a true geek daunting for many.
But Scratch is so simple, even kids can do it.
Mitchel Resnick and his colleagues at the MIT Media Lab, supported by the National Science Foundation, are focused on getting young people excited about computer science by using technology as a means to express themselves in creative ways, including through computer programming.
The target audience: ages 8 through 16. But you can use it, too.
In Scratch, coding is done with graphical blocks. A student writes code by snapping together blocks, much like LEGO bricks or pieces of a puzzle. Additionally, the blocks are designed to fit only in ways that make syntactic sense. This eliminates the dreaded syntax errors that often frustrate and discourage young computer programmers.
To create a program, students drag-and-drop the blocks to create procedures.
For example, a student could code a procedure that would make a figure dance. Scratch is easy for people to get started, but still provides the complex environment that allows people to design more complicated projects. This is the ideal combination for encouraging novices, while still providing a challenging environment for Scratch experts.
When Resnick and his team launched Scratch in 2007, they also launched a Scratch website that allows Scratch programmers to publish their projects on the web and share it with others. This creates an online community where people share and collaborate on Scratch projects.
Since launch, there have been almost 800,000 projects uploaded to the Scratch website.
One practical use: Students are using Scratch in English courses as a tool to use in their book reports. Resnick and colleagues say that injecting computer programming into non-computer science courses more accurately reflects the present day world where computer-programming skills are needed in a diverse set of professions.
Resnick worries that today's kids use plenty of technology but may not be digitally fluent.
Resnick points out that to be fluent in a foreign language, one must be able to explain a complex idea or tell a story, not just be able to say a few phrases in the language. Analogously, he claims that to be digitally fluent, one would need to be able to construct things with the digital tools, not just be able to use them.