Scratch is the new Powerpoint

I keep hearing the phrase “Scratch is becoming the new Powerpoint” – teachers all over the country (nay, the world) are using the same programming teaching tool to teach with. So why is it that in a world with so many free tools for teaching kids to code, everyone seems to be using the same one?

I have a reason. Because the excessively complex installation process or the dreadful user interface of most of the other tools renders them completely unusable in education.

So it turns out that there are a lot of benevolent developers out there who really want to help improve the standard of CS education in our schools. They spend time building tools with kids in mind and then release them open source. I really appreciate that people do this – there’s some fantastic software out there (e.g. Sonic Pi) which is aimed at kids, free and frankly awesome. However, there’s also a lot of software which could be awesome but is missing something. Here are my top 3 peeves:

  1. If the website for your tool holds a thinly veiled contempt for Windows users (or no Windows installers), it’s unlikely it will ever see the light of day in education. Regardless of the pros, cons, rights and wrongs of the issue, the vast majority of schools run Windows networks and turning that juggernaut around ain’t going to happen overnight.
  2. OK so your software looks interesting, I decide to test it at home to see if it’s any good. If it takes me more than half an hour to install your product on my home computer because I have to work out which installer to get, install a dependent library, edit a config file and then perform 20 star jumps while turning the lights on and off in time to “Spice Up Your Life”, imagine how much I’ll be looking forward to asking the technicians to install it on the school network.
  3. I finally got the software installed, so I head to the “newbie tutorial”. Here’s something I learned – a lot of software creators have NO FREAKING CLUE what a newbie tutorial is. When I’m new to something, I want you to show me how to get started in a really basic way. Pygame, I’m looking at you here as an inexcusable offender. The top of the Pygame “learn” page has the sentence

“The PYGAME Documentation page has a number of tutorials.
A Newbie Guide to pygame is very good.”

Go on, click the newbie guide link, I dare you.

PSYCH! IT’S NOT A NEWBIE GUIDE! It’s not even a guide! It’s not remotely in the least bit helpful to an intelligent person who knows Python but who has just downloaded this library in the hope that it might be interesting to look at with A Level Comp Sci’s. (I’m asking for a friend *cough*) It even says (paraphrased) in the guide “if you get stuck, don’t ask anyone for help – spend hours trying to solve the problem yourself”. Wooooowww, such welcoming, many warmth. With introductions this good, is it any surprise hardly anyone uses Pygame in education when it looks like it has SO MUCH potential? (I hear there is now Pygame Zero but I found that similarly mystifying…what the hell is this pip of which you speak so casually?)

I guess what I really want to say is, if you’re making some software to help kids learn – THANK YOU. However, your software isn’t going to get the attention it probably deserves if things like the interface and the installation process are a bodged after thought. People just won’t bother to install it. Don’t confuse “I learnt how to do this a long time ago” with “this is trivial” when it comes to the installation procedure, and don’t think that people will be so blown away with your awesome backend implementation that they’ll forget Windows 3 called and wants its interface back.

12 thoughts on “Scratch is the new Powerpoint

  1. Agreed. To make a rough comparison with other subjects, when you want them to learn about something, you really don’t want to spend 4 lessons figuring out how to open the book.

  2. 100% Agree! At Lancaster Uni we’ve been set coursework to create a Micro:Bit Emoji editor in Java. Great project technically and it really made me think about how a kid could actually use the software, I very much doubt many others consider the user effectivley when writing software in this sector.

  3. Exactly! If you can get your application or programming language running in a browser then that’s a good 80% of the way to acceptance. Teachers don’t have to ask, beg, grovel the IT team to get anything installed. Then, just make sure that it doesn’t behave oddly for something really simple, build in some decent examples, no spelling mistakes or stupid interface choices to put a teacher off (I can’t stand Ok rather than OK, or dialog boxes that ask a yes/no question but don’t label the choices yes/no, …), and you’ve got another 10%. The final 10% is indefinable: I think you know when you see it but can’t define it.

  4. As the author of an intro to coding for non-coders (using Pygame no less,) let me agree with you on everything youve said here. However, I would like to extend the picture a little bit. Your logic on why one tool is so popular is flawless– “It’s the installer” (and many other things.) Python is one of the best things to use, and one of the worst to install. Even I dont like pip, and i wrote a programming language.

    Now to talk about things from my end: for a while, I gave away computers with Debian pre-installed, and the install process for running my intro environment is 1. Copy a file 2. Right-click and make it executable. That’s it: Pygame is an optional extra, even the features that use Pygame have a fallback.

    It also runs on Windows, but thats where it gets messy. You see, Windows likes to change things around. And I dont like to keep up with those things, because I don’t use Windows. Not only that, but while I support 2K, XP, Vista, 7 and 8, I consider the (anti)-features of 10 so unethical, I will not help anyone with 10. This isnt thinly-veiled, I will NOT do it!

    But I will give away equipment with stuff pre-installed, and this saves the user 100% of installation woes. As for newbie tutorials, I’ve started several (just finished one.) The time I don’t spend on Windows 10, I’m focusing this year on the documentation I started writing various versions / levels of a year ago. Will it be in schools? Probably not. But then tutoring happens it seems for every subject except computers– time to change that I think.

  5. My son and I wrote a free data acquisition system (https://bitbucket.org/abe_k/pterodaq) intended for schools, science fair students, and universities. The software is free and runs under Python 2.7 and Python 3 on Linux, Windows, and Mac (with a choice of at least 4 different cheap microcontroller boards for the hardware interface). It turns out that making programs installable on multiple platforms is surprisingly difficult—every time there is a new release of Mac OS X or Windows, they break things for 3rd-party developers. I understand that IOS is even worse.

    We do have installation instructions, which we’ve made as simple as we can (like using no Python modules beyond the ones in the standard minimal installation), but students with damaged Python installations (about 10% of college students it seems) still have trouble with the install.

    We don’t have usage instructions yet—I plan to extract the relevant parts out of my book, rewrite them, and put them on the wiki, but haven’t had time yet.

  6. Greg Wilson tweeted something a while ago that sticks in the back of my mind: “Installation-focused computing”. He suggested all developers should focus on making their software easy to install. I’m fairly pleased with our process nowadays: it’s one MSI or ZIP on Windows which includes the JDK, one ZIP on Mac (with .app in it) which includes the JDK, one DEB on Debian/Ubuntu which causes the JDK to get installed. (It would be nice to have packages for other Linuxes, but it’s rapidly diminishing returns.) But for some languages it can be hellish, especially if you are installing libraries rather than just a finished executable.

    1. Actually I think Greenfoot is pretty straightforward (even better if you no longer have to separately install the jdk). I just forgot about it when I was writing the article. I don’t mean “I like Scratch and everything else is crap”, I actually wrote the article when I was in a rage because I couldn’t get Pygame working!! 🙂

      1. We have all been there. Pygame is a monumental pain in the **** to install.

  7. Why does everyone push Python as the language to teach children? Why not progress from Scratch to Squeak when going from block based to text based?

    1. I don’t push Python for children (Scratch is better for kids), but for high school and college students, Python has a lot going for it. There are a lot of libraries for doing scientific computation, web servers, scientific graphics, USB communications, … . You are not limited to building everything yourself or playing only in a small sandbox.

    2. Sorry, I only just saw this comment. I’ve never even heard of Squeak until your comment, so I suspect the answer is that most teachers haven’t either 🙂

      1. I suspect that even most computer programmers have not heard of Squeak, and of those that have, very few have used it. It is a niche language which is probably best known for being the language that the first version of Scratch was implemented in. (I don’t think that they use Squeak for Scratch any more—they moved on to better-supported languages.)

Leave a reply to codeinfig Cancel reply