An open letter to Google on how to enhance computer science teaching
I guess if I really wanted you to read this, I should use blogger, but I’ll give this a shot.
Now I want to talk about how we can achieve a vision that sets a goal of having students graduate with an understanding of computational thinking.
You have the power to significantly transform how computer science is taught around the world. Here are few stories to get you thinking about this. I’ve got an iPad, and it’s awesome, but for the most part, it’s all about consumption. Sure there are a lot of great apps comping out that let me draw, paint and write, but there isn’t anything that lets me program. Imagine the power of giving a young child a tool that allows him/her to begin to explore the world of computational thinking to program the iPad to do things, right on the iPad itself.
Not a fan of iPads? I know. Most people think you should program on a real computer. Great. Have you tried to take a complete novice and show them how to do this? Just try python—the first thing I see when I go to their website is 7 different versions of python—egads! You shouldn’t have to download, install and muck around with a bunch of software just to be able to write a program. This is especially important because at many schools, computers are locked down in such a way that students can’t install new applications, and so that 8 year old who wants to try out programming by installing scratch is mostly stuck.
Here’s where you come in. You guys are the “cloud” people—you’ve created Google docs, which has had a huge transformative effect on education. When you got fed up with old browsers like IE 6, and users who couldn’t upgrade it because of IT restrictions, you actually created a Chrome Frame to run inside IE to give the user the experience of a modern browser. You’ve also got the Google app engine, which lets developers create web applications that run on your server.
Here’s my idea. When a student wants to learn to program in a language, say Python, they would just go to google apps, and open up a code window, just like they might open a spreadsheet today. They can start programming right away, and when they run their code, you’d actually execute it on your servers, and display the output right there for the users to see. This would be incredible for student learning since there would be nothing to install, and students would get the thrill of literally programming applications to run on Google’s servers. This would be the perfect compliment to Google Code University.
I teach my students how to program visual models of physical systems using vpython. My students love this, but getting over the hurdles of installing python and then vypthon, can present a hurdle, and I imagine for some students and teachers, this hurdle can be insurmountable.
Ok, I’m not a computer scientist, and I’m sure there are a ton of reasons why you could never let random users just have willy nilly access to be able to execute whatever program they wrote in python on your servers. But I don’t think these problems are deal-breakers. I’m sure you guys can figure out how to create a safe enough sandbox this purpose that will keep malicious programs from doing any real harm. I mean, next to getting cars to drive themselves, this problem seems pretty easy.
If you can pull this off—think how big it would be. Now anyone, who simply has access to a web browser can learn to program. Even the kid who has to go to the library for internet access can begin to experiment.