Co.Design

Cargo-Bot, An Addictive iPad Game That Teaches Programming Concepts

Learn the fundamentals of coding by losing yourself in these simple-but-devilish puzzles.

The key to learning to code is learning to think like a computer--which is a hard thing to do. "It requires structured thinking, ability to abstract details away, and there’s little margin for error--one little typo and your program might do something entirely different from what you wanted," says game developer Rui Viana. "The real world just doesn’t work like that, so it’s hard to get your head around it." Which is precisely why Viana created Cargo-Bot, a simple iPad app that turns "thinking like a computer" into a genuinely addictive puzzle game. It’s like
Angry Birds crossed with Codecademy, and it’s total genius.

Most of the press that Cargo-Bot has gotten so far focuses on the fact that the game was itself programmed entirely on an iPad (using another app called Codea). That’s pretty great, but it’s missing the larger point: who cares what device you can or can’t program stuff on, if you never want to program anything? That’s the problem that Cargo-Bot so brilliantly solves. It’s designed to make programming seem not just doable, but fun: something you’d want to do just to enjoy yourself, not as a means to some other end ("This is how I’ll make the next In$tagram!"). Not even Codecademy manages that.

Cargo-Bot’s Tetris-like simplicity is the key to its charm. The goal is to tell a robot arm how to move colored boxes around on a platform into different patterns. That’s it. It does contain a few technical-sounding terms (like "program" and "loop"), but mostly, says Viana, "I wanted it to be a game about moving blocks around with a claw, and make you forget that you are in fact programming."

The first time I played Cargo-Bot, I lost myself in it for an hour--but not because it magically turned me into a good programmer. Quite the opposite: I spent most of that time "debugging," or correcting malfunctions or inefficiencies in my code. In most coding tutorials, this feels like drudgery--your program doesn’t work, you don’t know why, and you have no choice but to scour each barely intelligible line of code to find the error. But in Cargo-Bot, debugging is the fun part. By watching the cartoony robotic claw execute your instructions, you can literally see your code in action--and see exactly where and when it fails. Watching the claw do something you didn’t expect, or crash into the side of the wall and break, immediately makes you want to fix it. Even better, Cargo-Bot rewards you not just for solving puzzles, but for solving them efficiently: shorter programs earn you more points.

Sound like the dorkiest thing ever? Maybe. But in the 21st century, programming is the new literacy. "Cargo-Bot is a great way to demo what programming is about in a fun and visual way," says Viana. "If you 'get’ Cargo-Bot, you can go through other coding tutorials and pick up a lot from them by yourself." In other words, it’s the ultimate gateway drug. Consider this five-star review of the app in iTunes:

Happiness is pair programming with my son. What a way to celebrate his fourth birthday!

That nearly brought a tear to my eye. Four years old. Cargo-Bot isn’t just fun. It’s damn near noble.

[Read more about Cargo-Bot]

Add New Comment

9 Comments

  • Sf2013

    Very proud mommy moment, just got a note from my 11 year old's teacher.. " Kaia solved a level of one of our iPad programming games called Cargo Bot in less moves than the programmer of the app even did."

  • Bryan Glover

    I think that the key here is not to get pedantic and let this article tweak your inner nerd, but more to show that work can be fun and fruitful.  This game allows for critical thinking if persisted.  Children learn differently than adults do.  Children are very literal where as we have too much knowledge to allow us to make simple decisions like a child would.  Children are very much "if, then, go to" where we try to see all the variables and make that decision based on knowledge plus experience.  I think that this game is a great way to introduce mechanics and critical thinking on a digital level.

  • ezakto

    Do you know the flashgame Lightbot? Same thing, very very useful for teaching programming concepts. Of course, not as fancy as an ipad app, but it's awesome too.

  • Susan Silver

    I don't know if I agree with the analogy at the start of this post. At least to me, coding is an exercise in logic. Similarly, bad reasoning leads to a false premise and the argument falls apart. To really think like a computer you need to reduce your vision further to binary. Everything is either on or off. Code is the language that tells the computer in what order it needs to do things for the program to run. 

    Wondering what other people think? 

    I totally agree with the opinion in the last paragraph. Coding is now a common language that people need to know. Despite all the wonderful people graduating with a CS degree, there is still a great need in the work force for those who know java script and other languages. 

  • Oluseyi

    Your interpretation of the expression "think like a computer" is far too literal. There is next to no value for most people to learn to think like a modern CPU, whether in binary words or equivalent symbolic mnemonics. Approximating how a computer evaluates commands - thinking like an interpreter (in the Python sense), if you will - on the other hand is still quite useful, and can lead to significant efficiency gains such as learning to automate a system or script a utility.

    More importantly, What the market needs are people who know how to think and can adapt themselves to whatever domain-specific tools are appropriate. Languages aren't important; *concepts* are.