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 Code.org 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 forboden. 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. Here are two additional starting points to help students transition from software consumers to creators, and possibly launch a career:
Designed for children aged 8 to 16, Scratch is 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 programing 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 over 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.