Is the Lego Mindstorms robotics kit a good way to teach programming?
This user comes from

Short description (~1 to 3 sentences)

Nathan Torkington says no.

More details

Nathan Torkington, who's board member of The Perl Foundation among other achievements, delivered a keynote address at OSCON 2008 called "Spawning the Next Generation of Hackers."

Declaring—rightly, I think—that "Programming is now a basic life skill," Torkington shared his experiences in teaching programming to grade-school children. Here's a few of the points he made in his presentation.

One lesson he learned is that robots aren't cool. Torkington started teaching the children using a LEGO MindStorms kit; it let them build a robot by programming the central controller. It sounded cool to him but he came to this conclusion: "Robots are lame." The killer app for the MindStorms robot was to make it follow a line on a page, he said, and it didn't even do that consistently. So children could work really hard on a project and have it still fail to work right, through no fault of their own.

Instead, he found, a better tool for teaching kids to program is the sprite-based Scratch from MIT.

Rating (1 to 100) 75 = very good; 50 = good; 1 = unknown

To see articles on the same topic, click the links below the name of the author at the top of this page.
Authored by Anonymous on Aug 26, 2008.

What you missed about teaching with robotics is the robots exist in the real world. A small bump in the surface can send a robot off track. Unlike the perfect digital world where the "surface" is programmed to be perfect every single time.

Robotics teaches skills valuable to future inventors and engineers.

Authored by programming.editor on Aug 26, 2008.

Hi Anonymous,
Thank you for your comment. It's an interesting point of view, and one I actually haven't come across. Your 4 sentences don't quite convey the entire argument. Can you point us to any web pages that explain this perspective in more detail?

For example, when you program, you certainly encounters lots of problems, and bugs, and issues with things not doing what you wanted. So I'm not sure what's the difference you are referring to.