Student programming with Scratch and The Finch

No readers like this yet.
open source button on keyboard

The growing shortage of qualified programmers, computer scientists and software engineers is gathering significant attention in the media and popular press. Recent efforts from the non-profit organization have helped shine light on the problem—software is the defining industry of the 21st Century and the pool of skilled talent is slim. Conversely, for students who pursue software development the opportunity for employment is colossal: By the year 2020, it is estimated that there will be one million more programming jobs than available students.

Consider for a moment the tremendous power and influence that programmers wield. Consumer technology gives the illusion of choice, while, in fact, it is somewhat more akin to an electronic Skinner box. Software is essentially a series of prewired options, preselected by programmers to create a prefabricated experience. Facebook is a great example. On the surface, the social media site presents like a choose-your-own-adventure story; one may customize a cover photo, fill a timeline or compile a listing of favorite books or movies. However, changes to the site framework are foreboden. Facebook customers are not permitted to reorder content sections, change site colors, experiment with alternate site graphic designs or play with the overall layout. Feel free to live in the house—just don’t rearrange the furniture or paint the walls.

Of course, not every technology imposes such draconian interface restrictions. However, all software fundamentally constricts the end-user to a series of choices and options preordained by programmers. Douglas Rushkoff deeply explores this idea in his book, "Program or Be Programmed." Rushkoff eloquently cautions: "In the digital age, we must learn how to make the software or risk becoming the software. Otherwise, we are at the mercy of those who do the programming, the people paying them, or even the technology itself."

In the context of our planned 1:1 high school laptop program, my team and I have been thinking a great deal about how to return creative and constructive agency to our students. We recently witnessed the incredible impact of student apprentice programmers. As educational leaders, how do we break out of the box and help more students gain control of their digital lives? Are there simple, engaging student tools for coding, inventing and learning?

In the past I’ve written about the Raspberry Pi as a gateway for teaching students to code. There are a couple of other additional starting points to help students transition from software consumers to creators, and possibly launch a career: Scratch and The Finch.

Scratch the surface

Designed for children aged 8 to 16, Scratch is a free programming kit from the MIT Media Lab. Friendly and intuitive, Scratch is an easy-to-learn environment where kids can build interactive games, animations, simulations, stories and artwork. To encourage creative collaboration, projects may be shared and remixed with other "Scratchers" via an online community. At Penn Manor, students have been using Scratch to learn the basics of programming and game design as part of our middle-level technology course.

Once available as a local application for Linux, Mac and Windows, Scratch was recently updated and released as a cloud service. Version 2.0 of the toolkit is accessible from any flash-enabled web browser. For educators, the ScratchEd Community is a treasure trove of project ideas, resources and best practices from around the globe.

Welcome The Finch Robot

Put down the slideshow and embrace the age of automatons. Beginning this fall, miniature finch robots will be under the command of Penn Manor students. The Finch is a programmable robot for computer science education by Carnegie Mellon University. Designed and developed in collaboration with educators and students, The Finch is an engaging and low-cost gateway to practical coding and engineering.

Built into The Finch is a suite of environmental sensors for light, temperature and orientation. A sample student starter project would entail programming the Finch to avoid ground obstacles as it roams around a classroom floor. As students master basic programming principles, they can easily move on to designing more complicated behaviors such as dancing or geometrical drawing via a built-in pen mount. Remember the original Logo Turtle? The Turtle has evolved into The Finch!

Support for more than a dozen programming environments makes The Finch a versatile choice for a diverse array of teaching needs and software comfort levels. While advanced students may jump in and begin programming in Java, the most accessible software starting point for younger students is UC Berkley’s Snap!, a modified descendant of Scratch. Building on the same familiar drag-and-drop interface that makes Scratch so intuitive, students may quickly transpose their existing knowledge to the Snap! program. Like Scratch, Snap! is free and open source; it runs on Linux, Mac and Windows systems.

The Finch costs $99, or less if purchased in bulk.

Originally posted on Penn Manor Technology Blog. Reposted with permission.

User profile image.
Charlie is the CIO for Penn Manor School District in Lancaster County, Pennsylvania and the author of The Open Schoolhouse.


I'm really disappointed that Scratch 2.0 is a Flash-based web app. It does present a barrier to children who have a computer at home, but not decent internet access. I think is it safe to say that a lot of people learn programming through copious amounts of experimenting on top of other lessons (vs. just classroom learning), so having access to the programming environment at home, without barriers, is a huge boon. Thankfully, Scratch 1.4 is still available to download, even though the two versions aren't compatible. (Scratch 2.0 projects can't be opened in Scratch 1.4, but Scratch 1.4 projects can be shared on the web site.)

And for schools and students using Linux, <a href="">Gambas</a> is a wonderful step up from things like <a href="">Scratch</a>, <a href="">Etoys</a>, etc. It is a Visual Basic like environment with lots of nice options. It makes for a more gradual introduction to programming, before you start using things like Zed A. Shaw's <a href="">Learn Python the Hard Way</a>. ;-)

At first glance I too am disappointed that version 2.0 is a Flash based web app. We are targeting kids in rural communities and to me Flash is proprietary software that I try to avoid. This is an Open Source forum. Lucky for Open Source there is always the branch option!
We must expose our youth to kewl toys! :)

An offline editor for Scratch 2 is available. It is in beta but appears to be coming along nicely:

Thanks for the Gambas tip, Joshua!

Thanks for pointing out the offline editor.

Unfortunately, the offline editor requires Adobe Air, so Linux users have to install unsupported and outdated software in order to use it. The current version of Air is 3.9, but version 2.6 is the last version available for Linux.

Scratch is still very nice, but the Flash & Air requirements are really an unfortunate step backwards in openness.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.