OK, here’s the setup:
- Despite having never seen Star Wars, my kids love BB-8.
- Star Wars partnered up with Code.org to make a cool tutorial.
- My 5 year old can read.
- It was very very cold outside and we needed something to do.
From there, the next steps were pretty obvious. But would it work?
We went for the blocks tutorial on an iPad. This is a simple environment that looks a lot like Scratch. I liked how they kicked each level off with a step or two filled in already, preventing (or at least reducing) blank page syndrome.
The first six levels involve setting up simple driving instructions. You need to count squares and enter a series of left, right, up and down moves to get BB-8 to finish the mission (collecting scraps while avoiding obstacles and bad guys.) It took 2 or three of these for my guy to get in the groove (we laid some papers around the iPad with the directions so he’d keep his lefts and rights straight,) and some of the paths he chose were a little roundabout, but no issues overall.
One thing that was pretty cool here was that you could set up the first few steps and run the program, then reset and add some more steps, allowing for an incremental approach. This was a nice parallel to writing simple code of any kind in an iterative manner, and he took to it without any prompting from me. We didn’t get into editing what was already there, hence the roundabout results I mentioned, but I’ve seen some pretty unoptimized code from adults in my day, so he’s got time to pick that up.
The next missions were a bit trickier. They involve wiring up event handlers so the droid moves around when you click/tap them:
This presented a few challenges:
- After spending half an hour counting blocks, he wanted to do the same here, so in the picture above, he’d want to put four “go ups” on the up arrow event, where the system’s apparently only set up to handle one, the idea being that you’re driving around (also, I know it says “hold down these buttons” in the instructions, but that’s easy to forget (er, for both of us,) so he tapped a lot at first.)
- After level 9, the targets you’re trying to catch are moving around the screen, and he’s not used to that kind of game so there was a bit of frustration when he’d have it coded up correctly but would still run out of time. We ended up using a system where I’d be the “tester” and do the driving.
- Also, I’m not sure he really “got” the concept of events, and it took a bit of prompting from me. Eventually he’d just do what he did in the previous level to wire the buttons up, but I don’t think he had a strong concept of why he was doing it. Again, I’ve seen that kind of behaviour from junior programmers lots of times, so I’m not too worried about it.
A small confession: in the later levels it’s possible to cheat a bit by increasing the number of points you get or otherwise moving yourself closer to the goal. I may have added a few of these during “code review” to keep the pace moving. This led to a level where I wasn’t sure if he misunderstood the instructions or was adding cheats of his own, but either way he was meeting my expectations 🙂
Once you get through all the levels, you’re left with an open environment where you can create your own games. These games are pretty limited in scope (you can catch things and then make more things appear and/or get points) but constraints are probably a good thing.
We didn’t go too far in the game-building area for a few reasons:
- We ran out of time/energy. Even splitting the hour (it took us about that long) into two half-hour chunks, fatigue set in after a while.
- No BB-8! Despite being in the first few levels, you can’t make a game featuring BB-8, which took a lot of the excitement away (my kids haven’t seen Star Wars yet because I’m holding onto the pipe dream that it’ll be more meaningful when they’re older even though they know the story, including spoilers, from the schoolyard already.)
- Young kids need a few more instructions. Your mileage may vary, but “you can make the computer do anything you want” is a little too vague for a five year old (or at least my five year old.) I know imagination’s a powerful and wonderful thing, but odds are “anything” will either fall into an area that the system won’t support (making droids fly and so on) or will just result in a blank stare. I found that my suggestions, no matter how inane, were met with enthusiasm.
So, the verdict? If your child can read, they shouldn’t have much trouble going through these levels with a little supervision (and honestly, you’re going to want to help out, because it’s super cool to see kids figure this stuff out for the first time.) I’m looking for some activities that we can follow this with, not necessarily from Code.org, so we can build on these early experiences with “this is like that time we…” connections.
Oh, and it turns out that they’ve got a course specifically for grades K-1, which we’ll have to try out on the next bad weather day. I’d still recommend Star Wars as a starter that’ll capture interest right away.