Using NAO in the classroom

This year, our school bought a couple of new ‘toys’ for the classroom, to be used as little ambassadors for CS and physical computing: twin NAO robots. During 1st quarter, I used them to do mini-lessons with the 6th graders to teach them about various programming concepts, and teamwork, and to have a little fun. They are very engaging devices. I think some of the kids fell in love,  and I got many inquiries about whether they could take more computer classes to continue working with NAO.


They’re not easy robots to learn. They work with a language called Choregraphe, which is a block-based language with wires like LabView. If you dive into the blocks, there is Python code. My huge CS teacher confession is that I have never actually learned Python. It looks straightforward, but it’s overwhelming to add the new text language on top of the block language and other technical issues that came with programming the NAO – booting it up, connecting it to a network, understanding the center of gravity and the fall sensors, and so on.




Choregraphe software.

But as with everything else, I knew I would never actually learn the robot unless I had a compelling reason to, so I told my Robotics Engineering class we were going to put away the Legos for a few weeks and do a unit on NAO programming. I don’t know if I came off as knowing what I was talking about. I told them we would make the robots dance and use the sensors and do a project. They needed no convincing.

For the first project, I used the little NAO curriculum that Aldebaran sent us, and put together a tutorial on how to make the robot dance. I divided the kids into groups and asked each group to create a short dance sequence of 10 seconds or less. We would string all of the sequences together into a long class dance.

It ended up being a really interesting activity. It exceeded my expectations.

The students created their dance moves in the virtual robot in Choregraphe, and then had to test it on the live robot. If the robot lost its balance and fell over, I made the students fix the program and bring it back when it would run without the robot falling.  It took quite a lot of time for the kids to take turns on the real robot, so if your program didn’t work, you made fixes and it could be a half hour before you could try it on the robot again.

Lots of care had to be taken with the virtual robot... easy does it with speed and range of motion.

Lots of care had to be taken with the virtual robot… easy does it with speed and range of motion.

However this created a really interesting problem-solving dynamic. Kids are used to getting instant feedback on what they try – through online math exercises, games, quizzes – the “gamification” of education is a powerful motivator. But when the feedback wasn’t instant, they were motivated by quality and care – not speed or trial-and-error. I remembered when my dad said he had to create punchcards for his programs and then fly them to Kansas City to be compiled on the punchcard reader. Talk about a long feedback cycle – his punchcards had better be perfect or else the trip was wasted! Similarly, after the kids saw their programs failed once, I rarely saw them fail twice. They brought the programs back after more thorough testing and analysis showed they would not make the robot fall over.  I saw some very careful work going into every frame of movement so the robot would stay standing.

So while I love the ideas behind gamifying your classroom, I believe there’s something to be said for activities that reward precision and diligence rather than instant gratification.


Making sure the dance moves are stable.

Making sure the dance moves are stable.


I don’t know if I could articulate what skills or concepts I was teaching the kids, but the lesson created some excitement and suspense. It was also really difficult for classroom management. Once a group was done with their dance moves, some kids caused a little trouble with each other – horseplay and such. I was consumed with unzipping files and bringing them into the Choregraphe software, and giving feedback to the kids, so I let things be more rowdy than I was comfortable with.

I’m totally building this plane as I’m flying it. I am learning a lot more this way than if I were exploring with no urgency or purpose, but it’s stressful. The next lesson I will do with the kids is to have them make a speech-recognition program that has the NAO ask trivia questions. I will blog about it then!



Tags: , , , ,

About dupriestmath

I'm a former software engineer who has taught middle school math and computer science for the past 6 years. I believe every kid has the right to be a thinker. I started this blog to save resources for integrating programming in the Common Core math classroom. I also use it to save my lessons and reflections from teaching budding computer scientists! Coding has transformed how I teach and think. You'll love what it does for you. You should try it.

2 responses to “Using NAO in the classroom”

  1. gflint says :

    The NAO is programmable in several languages. I do not have one ($$$) but MSU in Bozeman has a prof that is involved with the product design. He does demos for the schools in the State. He uses primarily Python but has used a number of languages with it just to see how they would work. As for learning Python, it is one of the easiest languages to learn. Here is a great free book I would use Python for as low as the 6th grade if kids are really willing. I am always “building this plane as I’m flying it” with this kind of stuff. It just has not been done enough to have a curriculum and goals are always a bit fuzzy. Doing anything that makes the kids think and solve is always worthwhile.

    • dupriestmath says :

      Thanks for the resource and I appreciate the commiseration on building planes while flying. This is what the job is all about. You have to be comfortable with a lot of ambiguity and have a sense of adventure.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: