ZDNet's Larry Dignan featured Google's new Android programming tool for the masses this morning in his piece, "Google's master Android plan: We're all mobile app developers now." While the business case for this is pretty clear and handily flips the bird to Apple and their closed App ecosystem, as Dana Blankenhorn notes, a lot of people are awfully concerned about the venture. From my perspective, though, this is probably the most relevant tool we can use to teach kids algorithmic thought and programming approaches.
In 2010, not everyone needs to be a programmer or engineer to interact with the technical pieces of our world. In 2020, straight coding skills will be largely irrelevant, both because of the sophisticated visual development tools that we can only begin to imagine and because off-shore development costs will be so much lower than in developed countries (including, by that time, China and India). However, what won't be irrelevant for the students of today (and therefore the knowledge workers of 2020) will be logic and reasoning skills as well as the ability to leverage technology to get things done quickly, efficiently, and in a completely individualized way.
So how do you teach kids these skills? You let them program their bloody cell phones! Google App Inventor isn't just for crowdsourcing the next 150,000 apps so that the Android Market can have bragging rights over Apple. As the App Inventor website points out,
The educational perspective that motivates App Inventor holds that programming can be a vehicle for engaging powerful ideas through active learning. As such, it is part of an ongoing movement in computers and education that began with the work of Seymour Papert and the MIT Logo Group in the 1960s.
This is incredibly exciting stuff. While Scratch and LOGO have made programming quite accessible for students in ways that teach universally important skills without diving too deeply into serious programming, the App Inventor gives students and teachers the chance to experiment and learn on more than just their screen or with Legos or more abstract tools. They can literally tap into a phone's GPS, calling features, or Web APIs while using all of the programming structures that have general applicability in STEM fields (and beyond).
As described on the App Inventor site,
But app building is not limited to simple games. You can also build apps that inform and educate. You can create a quiz app to help you and your classmates study for a test. With Android's text-to-speech capabilities, you can even have the phone ask the questions aloud.
To use App Inventor, you do not need to be a developer. App Inventor requires NO programming knowledge. This is because instead of writing code, you visually design the way the app looks and use blocks to specify the app's behavior.
Could you imagine an English teacher being able to easily lead his or class through development of an App that frames writing an essay or allows quick notes to be taken and emailed when researching a topic? Or a biology teacher writing an App that her students can use to take pictures and catalog plant species? Or an elementary math teacher helping his students write a tip-calculator App that teaches fractions, percents, estimation and rounding, all on a cell phone.
Setting up a computer and phone to use App Inventor is also fairly straight-forward and any Windows (XP/Vista/7), Mac (OS 10.5 and 10.6), or Linux (Debian-based systems, including Ubuntu) can run the software. Tutorials and detailed instructions can be found here.
With App Inventor you build apps using a web browser and a Java Web Start application. Through a USB connection App Inventor connects with your phone and apps appear live as you build them. To make all this work you'll need to download the "App Inventor Extras" software and adjust some settings on your phone. Also make sure that you have the USB cable that allows you to connect your phone to a computer (most Android phones come with one).
There are also simple examples available, including a quiz App. Finally, there is a Google Group that allows users and developers to interact. When I get my first App built tonight, I'll be sure to post some additional impressions.