There's been quite a bit of discussion lately about whether programming should form part of the standard K12 curriculum. My own personal view is that yes, it should - but not necessarily for the reasons that are being proposed. As with math, writing, the arts, history - pretty much everything that we teach, come to think of it - there are (at least) three good reasons to teach programming:
It is clear that the "write one boring Hello World program after another" approach is very far from what I would recommend. Instead, I suggest that the topic be taught in such a way that every child can apply it immediately in an area of their interest. And for people who might say that "first you need the basics before you can make anything" all I can reply is: sorry, but you're not doing it right. It is in fact possible with modern tools to jump-start students in creation right away, while developing a framework of concepts and skills that allow for rigorous and deep development. Come to think of it, that's been possible for quite some time - after all, the reason I learned to program by punching cards in FORTRAN IV many moons ago was because I had some questions that I couldn't answer with a slide rule, pencil, and paper, and once I got those questions out of the way, I turned my attention to more formal computer science.
As with many other areas, the beauty of the mobile device as lively sketchbook in programming is that it allows users to quickly write snippets of code anytime, anyplace, in response to passing curiosity, phenomena in the world, or ongoing inquiry. Students stand to gain much more from writing code frequently and spontaneously than from waiting until they find themselves in traditional coding scenarios on a more sporadic basis. For best results, the toolset has to be agile: complex languages with involved compile sequences and slow turnaround are a poor fit here. Fortunately, several tools have sprung up which are an excellent match for these requirements. In my next blog post I'll discuss several such tools for the iPad, together with the features that make them great.
Posted by Ruben at April 30, 2013 5:53 PM | TrackBack