While we were recording our podcast this weekend and discussing the various stories I'd written throughout the week, Steve Hargadon counted up the number of posts I'd penned in my Mozilla research series and asked a really important question: Why should my readers care?
To recap: my research is part of the organization's larger learning and literacy efforts and involves researching practices and pedagogies and interviewing teachers, learners, technologists about tools for teaching programming for the Web. The research and writing I'm doing now is very very exploratory, in no small part because I've only just begun conducting interviews. Of the handful of folks I have spoken to so far, our conversations have addressed a number of issues surrounding Web-literacy, Web-building, computational thinking, community and creativity -- spiraling around the topic, perhaps, rather diving right into the specs of what a tool that could help teach Web-building might look like.
What I've written up from each of these conversations has really just been a polished version of my notes -- perhaps not terrific reading, but for me an important part of the process of thinking through the topic. It's also important -- for me and for Mozilla and hopefully for readers as well -- that I'm being as transparent as possible as I do so. (That also means if you think you are someone I should talk to or if you know someone I should talk to, feel free to drop me a line.)
But I should note here that "Scratch for HTML5" is really a short-hand to describe the sort of tool Mozilla might (or might not!) build. And it seems as though that short-hand is worth explaining:
Why Scratch?
Scratch is a development environment that introduces novices to programming. Developed by the MIT Media Lab, Scratch is easy to use and create with as it avoids one of the big obstacles to learning programming -- syntax -- and instead utilizes a drag-and-drop graphical user interface. That interface helps teach conditions, iterations, variables, and arrays (among other things) -- all foundational programming concepts. Scratch teaches computational thinking: logic, problem solving, model-building, pattern recognition, and algorithmic thinking.
That computational thinking element is just part of what makes Scratch an interesting and important model for other learning-computing efforts -- the gold standard, I'd go so far as saying. Scratch is also project-oriented -- with it you can build a game or an animation, for example. This isn't simply learning to code for the sake of learning to code. Scratch is also open source (the code has been released with a non-commercial license), and the projects that Scratch-ers themselves build are licensed CC-Share Alike. That in turn means there's an emphasis on building and remixing -- something crucial (although often unrecognized) for creativity (coding or otherwise).
And finally -- and this is incredibly important, I would argue, when we think about building for and on the Web -- Scratch has a strong and vibrant community of users, learners, teachers, and builders alike.
Why HTML5?
The argument for building a Web-building tool modeled on Scratch is an easy one to make (in education circles, at least, and I really do hope in tech circles too although, frankly, I'm not so confident on that accord).
"Why HTML5?" is a lot more complicated, I think, in part because we're still answering the question "What is HTML5?" A partial answer: HTML5 is the latest version -- the fifth, go figure -- of the HTML standard. But HTML5 isn't just a shinier version of Web mark-up. HTML5 is an incredibly powerful and complex Web-building specification, with features that include audio, visual, and canvas elements; Web storage and offline capabilities; Math markup; a rethinking of the DOM and APIs, and as such an emphasis on scripting.
That's quite different than plain ol' HTML, which as plenty of techies will be quick to tell you, is "just" Web mark-up and not "real" programming. But that distinction is blurred when it comes to HTML5.
That's not to say that HTML-as-mark-up doesn't matter. It's not to say that thinking about Web building for novices shouldn't start at the very basics (versus, say, starting with an Intro to JavaScript). But it does mean that when we think about a tool to introduce Web-building and HTML5, that rabbit hole goes pretty deep: HTML plus CSS plus Javascript plus...
I should add here too that the anwer to "Why HTML5?" must account for why someone would want to build for the Web (as opposed to building native apps, for example). (See: Mozilla's Mark Surman and Mozilla's Erin Knight on some definitions of Web-making)
Metaphors We Live By
Of course, once I describe this research project in terms of "Scratch for HTML5," my shorthand becomes an analogy of sorts, and as such, could limit what we could and should be talking about. I certainly don't want to restrict my exploration of the topic -- a tool to help teach Web-building and Web-thinking. When I look at the phrase "Scratch for HTML5," I think that both sides of that phrase could be problematized -- "Why Scratch?" and "Why HTML5?". Nevertheless, when I use this shorthand -- "Scratch for HTML5" -- I do so to imply that I mean the best possible educational tool in the service of the open Web, creativity, and community.
So as to Steve Hargadon's question as to why my readers should care, the answer is both simple and (clearly) complex: because I think enabling Web-literacy should involve computational thinking and community and openness and creativity. It should also involve understanding the Web in terms of its technological building blocks and in terms of its technological, educational, cultural, creative, computational, community potentials.
All that being said, when I talk to folks for this project, I'm far more interested in what you have to say on the subject...