I don't usually post reviews of things by friends. In this case, however, I'm making an exception because many people have asked me about “programming for kids” given both my research and my #parenting
postings. But please see the full disclosure at the end.
Code Master is very elegant. There are 60 levels. At each level, you are given four things [I'm simplifying!]:
• a map of routes
• a set of moves
• some crystals that lie in certain places
• a program template
Your task is to put the moves into the holes in the template so that, when interpreted against the map, it takes you on a route that meets certain objectives. These are [again, simplifying!]:
• it must begin at the designated start
• it must end at the designated end
• it must pick up all crystals along the way
• it must not make false moves
• it must use all and exactly the allocated moves
With each level the complexity ratchets up. There is complexity in the kinds of maps, in the kinds of routes on the maps, and in the kinds of moves. You start writing straight-line programs, then migrate to conditionals and some oddball stuff.
The game's parsimony comes from reuse of both maps and move configurations. There are only ten of the former and about as many of the latter, and these are mixed-and-matched into the different levels. I really enjoyed this.
Curiously, it's a single
-player game. There's no scoring. You just complete a level and move on to the next level. And keep going level after level, hopefully not messing up any moves. (If you misinterpret the board, as our kid did once or twice, you could mistakenly think you're done with a level, too, when testing your solution: correlated failure is easy.)
I saw the game announced this morning. We bought it this afternoon, ripped it open after dinner, and the kid and I played it for an hour this evening. Of the 60 levels, she made it through the first ten. (This is not at all
proportional: she'll need much longer than six hours to get through all sixty!)
She loved it. I loved it. I heartily recommend it. That said, I do have a few complaints about the current form.
• It's not really what I'd call “programming”. The “programs” are almost all straight-line (with some conditional) codes, and interpreting them is essentially trivial. Let's just say that it's rated 8+ and a 6.5-y.o. needed absolutely no explanation of what to do. I dislike the use of “programming” here.
Rather, it's actually about constraint-solving. You are given a set of moves, and you have to use all the moves exactly to get to the target (and pick up the crystals). Nothing more, nothing less. It's about finding paths that satisfy constraints. It's really great
for practicing path exploration. (More on this below.)
In short, I wish it were advertised more accurately. However, nobody wants to buy a “constraint solving” game and many, presumably, want to buy a “programming” one. I understand, that's how marketing works. This game is smart enough that I can live with that without more than the above complaint.
• Even if we accept this is “programming”, it presents a terribly artificial idea of what that means. (I have the same criticism of some of Code-dot-org's materials, which have this same flavor.) I have never had a genuine programming activity where I was told, “you can use two assignment statements and three variables and one conditional and use all and nothing but those to solve the problem”. Of course there are sometimes constraints in programming, but these are interesting from a computing perspective, not arbitrary. The extreme syntactic nature of these constraints presents a distorted view of what programmers do.
• The starting and ending points are represented by a pair of really ugly, clunky plastic pieces that look 3D-printed. In a game that otherwise has very good production values, I'm not sure why these were included in this form.
For the most part, this is just an aesthetic judgment, and a very minor one at that. However, on level 10, both my kid and I were stumped. (Up to that point, I'd solved every puzzle in a few seconds flat, so this was especially surprising.) The kid was really struggling, and asked me for help. I admitted I
had no idea what to do, either. We soldiered on.
Once I realized I couldn't just “guess” the solution, I began to fear there wasn't one (but there should be!). I started working systematically. I ruled out one vertex as being part of the solution. Ruled out another. Then ruled out a path. Then started to make counting arguments to prove that certain sub-graphs could not be part of the solution. I eventually ruled out half the map and started to attack the other half.
The kid and I are both really steaming up now. Wanting to get a clearer view of the board, I move one of the clunky pieces. I stop. She stops. We look at each other. We laugh. The solution is trivial. The clunky piece had covered up a critical part of the board
In a way, this ties back to the first point. After a few random tries, my kid began doing what I did: systematically ruling out part of the board. She was able to argue why certain vertices could not be part of the solution. In some cases she was right, in others jumping the gun a bit, but the key thing is she was doing constraint solving in the best possible sense: identifying high-level patterns of what could and couldn't be in a solution, and essentially constructing (tiny) proofs of impossibility. I was really pleased with that. In fact, I think a much more interesting version of this game would have unsolvable levels, too. (Of course, designing these to not be too frustrating is not easy.)
Overall, I heartily recommend the game. I like it far more than the very popular Robot Turtles (which has two features over this: more than one can play, and it has subroutines). The kid said she liked it much more, too. I asked her why. She thought for a while, and said, “This one is actually difficult for me.” If you have a child who likes doing Sudoku puzzles, this would be perfect for them.
Full disclosure: This game is designed by +Mark Engelberg
, whom I've known for years through our outreach programs, and whom I greatly admire as a really smart and thoughtful person. Furthermore, Mark asked the manufacturer to ship a free copy to +Kathi Fisler
and me. However, we'd already located a copy in the area (though it hadn't even made it out into the display shelves yet: the employee had to go fetch it from the boxes in the back!), so we declined the freebie. Still, if I hadn't checked G+ I wouldn't have known about the game until it showed up in my mailbox, so this could
have been a review written in return for a free copy. #parenting #review