How Root Wants to Bring Coding to Every Classroom

Root is a programmable robot that solves the main problem with teaching kids to code: it helps grown-ups learn to code too

6 min read
Root educational robot
Image: Root

This is a guest post. The views expressed here are solely those of the authors and do not represent positions of IEEE Spectrum or the IEEE.

The push to teach coding in U.S. schools has been growing: Thanks to initiatives like the White House’s CS for All program, computer science is now recognized as a core skill for today’s students. A new study by Gallup and Google revealed that 90 percent of parents want their child to learn CS, yet only 40 percent of K-12 school districts offer some kind of CS course. Teacher recruitment and training efforts are beginning to solve the problem at the high-school level, but in K-8 schools (where very few schools offer CS and many teachers are generalists) the challenges are different. Many teachers without much coding experience understandably feel anxious about integrating this new literacy into their classrooms.

Our team at Harvard University is hoping to change that with Root. Root is a new kind of robot that colors outside the lines of the educational robotics category by providing unique capabilities along with a programming interface that grows with its user, bringing coding to life for all ages. After nearly three years of development, Root and its companion app, Root Square, have emerged as a solution to ease teachers’ anxiety about adding coding to the lessons that they teach.


Root is intentionally designed as one single piece, setting it apart from many other educational robotics platforms because students can dive right into the programming and computational problem solving without having to grapple with parts assembly. In our pilot classrooms, teachers who were previously intimidated by complex and messy boxes of components approached Root with a sense of ease and playfulness. The robot is ready to go right out of the box, it’s easy to put away after class, and it’s much easier to share it between students and classes, which makes it significantly more affordable for schools.

Root educational robot hardware overviewImage: Root

Another way that Root stands out in classrooms is by taking advantage of the great robot arena already at the front of most classrooms: whiteboards. Root is a magnetic robot; although it can work perfectly well on a table, floor, or on a piece of paper or poster board, it can drive vertically on a metal-backed, magnetic whiteboard. This was a significant technical hurdle for us to solve because of the need to compensate for drift due to gravity when driving on vertical surfaces. What may look like a small, simple package actually has sophisticated sensors and firmware inside: Root uses high-resolution encoders, a 3D accelerometer, and a 3D gyroscope to accurately interpret speed, orientation, and wheel position. This helps us correct the motor commands in real-time for drift due to gravity (actually caused by stretching of the tires).

As a result of the attention we gave to tuning Root’s self-correcting driving algorithm, Root can draw with high precision using its on-board marker. With a nod to the robotic “turtles“ that came before it, Root has a gripper driven by an internal motor in its geometric center. The gripper holds a standard marker that can be programmed to lift and drop. And for those who also want help cleaning the board, Root can lift and drop its embedded eraser. In our pilot testing of Root we’ve found that the writing surface is as much a part of the programming experience as the code and the robot—in essence, it brings the inputs and outputs into a medium that is not only tangible, but familiar to anyone who has ever drawn a picture.

Working with Root can lead students to the type of “wow moment” that has become more elusive as daily life has been increasingly saturated with technology. The experience of physically interacting with Root and programming it in an understandable language is likely to be new and exciting for most students.

One of Root’s most important capabilities comes from the row of 32 color sensors on its underside. This is similar to a 1D camera, or a small color scanner. Color sensing is a great way to get kids to interact with Root both through the commands they give it and also through the environment they create for it on the whiteboard. Root’s color sensing capability isn’t only engaging, it’s also versatile enough to be used to solve the kind of complex problems (SLAM, path planning, and more) that students might encounter in a college-level class.

For connectivity and control, Root can talk to any Bluetooth LE device, and Root is also expandable: third party boards and other accessories (like Raspberry Pi, Arduino, BBC Micro:Bit, cameras, sensors, etc.) can be connected through an USB-C connector on the robot’s back.


It’s not just the physical robot that matters in robotics education—the programming interface can make all the difference when working with newcomers to coding or robotics. While most programming tools are often overwhelming to novices, programming with Root is approachable because it is scaffolded: Beginners use a graphical interface with a limited instruction set that lets them get right to programming without having to learn syntax and structure. Regardless of age, people’s faces light up when they tap Play and see Root move according to a simple program they wrote themselves in just a few minutes. Reaching a quick win encourages learners to keep going.

However, as skills advance, they need to be given tools that are “just right” for their developmental level. For that reason, a big portion of our research effort focused on developing the software for programming Root. Root’s programming interface (“Root Square”) is multi-level, ending with a choice of textual languages including Python, JavaScript, and Swift. Here’s how it works:

Root educational robot programming levelsImage: Root

Level 1 Programming

Root Square’s Level 1 interface is designed to be accessible to kids as young as 4, and for novices of any age who have never experienced coding before. There are a deliberately limited number of blocks, no words, and no numbers greater than twenty. This means that kids can start coding even before they learn how to read, and adults are not intimidated by an overly-complex interface. Some unique features that make this entry-level interface easy to program with are:

  • The user’s program can be modified even while it’s running. Adding, deleting, or modifying instructions (blocks) even inside a running loop is absolutely possible; the user’s program will just keep running with the new modifications. This capability makes it ideal for working with young kids, as they are really playing with the code while it runs.
  • It’s been optimized for touch screens. While graphical programing languages are not new, many follow a paradigm that has not changed in over a decade. Root Square’s user interface intentionally breaks some of these norms by optimizing for touch-screen interfaces, which we think many children will be most comfortable with.
  • Powerful programs can be written with surprisingly few blocks. Root Square Level 1 is completely events-based and thus, with very few blocks, it’s possible to solve complex problems that would require far more syntactic complexity in other environments. However, brevity does not mean that overpowered blocks hide important details: the student must still create each rule and program each response for the robot.

Level 2 and Level 3 Programming

For more advanced users, and for beginners who are ready to go beyond Level 1’s limits, Root Square provides a powerful instruction set in its Level 2 graphical programming language. Level 2 introduces variables, sensor values, units, flow control statements, arithmetic operations, recursion, and parallelism. Both Level 1 and 2 are accessed from the same app, and previously written Level 1 code can be automatically converted to Level 2 to ease the transition.

Programs created with Level 1 and Level 2 can also be converted into Python, JavaScript, or Swift code (Level 3). Root offers a rich and open API and a development kit (SDK) that opens the door to all kinds of advanced applications and interactions with other devices.

Root educational robotImage: Root

How to Bring Root to Your Classroom and Home

Working with Root can lead students to the type of “wow moment” that has become more elusive as daily life has been increasingly saturated with technology. The experience of physically interacting with Root, dynamically creating and changing its environment with markers on a whiteboard, and programming it in an understandable language is likely to be new and exciting for most students.

Perhaps most important, we hope that enabling early experiences with robotics and programming through Root will help to close the diversity gap in technology fields. Root’s appeal to all ages, genders, and backgrounds, plus the ease with which teachers can bring it into the classroom, make it a strong candidate to help more kids experience these foundational learning moments.

Root is the result of more than three years of research and development. Now that it has been prototyped and pilot-tested extensively, it’s ready for production on a large scale. We’re excited to take the project out of Harvard’s research labs and into classrooms and homes everywhere. You can support the effort (and order your own Root!) on Kickstarter today.

The Conversation (0)