How we convinced the next generation of roboticists that fixing bugs is for everyone

Intro

I founded the Robotics Summer Camp without a template, but with a vision. I imagined the kids in twenty years, reading articles on autonomous cars and thinking back to the lessons on obstacle avoidance from their long-ago summer camp. It was a lofty and blurry goal which shrank in magnitude in a humorous kind of way.

The first idea was to duplicate the Amazon Robotics Challenge (ARC) for a younger generation. I was intimately familiar with ARC, having participated in 2017. Amazon sponsored the event to "strengthen the ties between the industrial and academic robotic communities and promote shared and open solutions to some of the big problems in unstructured automation." Realistically, they needed help figuring out robotic pick and place solutions for the millions of items in their warehouses. But to compete in a robotics challenge, the kids would first need to know how to code. That was the first pivot. Rather than being dedicated to robotics, the camp would dedicate the majority of its content to the art of programming. Likewise, unlike VEX or FIRST, I would not focus on hardware. Hardware is not my strength anyways, so why try and teach them something that I would be learning simultaneously? I am experiencing enough intellectual challenges in my Ph.D. program.

Abandoning competition as the main goal of the camp was smart. Ideally, students would be intrinsically motivated to learn – that is, motivated simply by a desire to understand instead of external pressures, examinations, or contests. Judging success only by comparison to others may harm the well-being of students. As Atkinson (1964) describes, the very concept of this success necessitates the possibility of failure. In this sense, children can be driven more by a fear of failure than by a desire to succeed. DiMenichi's (2015) studies suggest that competition can improve attention in a physical effort task, but not in memory tasks. Learning under pressure does not translate to long-term educational gain.

To sum up, the summer camp focused on the basics of programming using a commercially available toy robot.

The budget

With the above conclusion in mind, I finalized and submitted the following budget to the Office of Outreach and Engagement (OOE) for a Micro Grant award. The budget includes a salary for an undergraduate helper and all the hardware components for a Cue robot.

DescriptionQtCost Per ItemTotal
Cue Robots4$200$800
Gripper Kit4$40$160
Cue Curriculum Guide1$80$80
Undergrad Assistant54.24 hrs$15.0/hr$813.75
Total without GAIR$1,853.75
GAIR (7.89% tax)$146.26
Total with GAIR$2,000.01


The team

While recruitmenting for the undergraduate assitant role, I got in touch with many interesting and interested people. By the end of the program, we were a team of four people from the University of Colorado Boulder (CU Boulder). We were a collection of undergraduate, graduate, and post-doc students.

Another important contact was Renée. Early in the organizational journey, we contacted OOE and OOE forwarded our ideas to Renée Jacobsen, the librarian of the city of Lafayette. She became the liaison between us and the community. We discussed our plan, timeline, space needs, and other logistical issues. Renée offered help with recruiting volunteers and middle schoolers from the community. In our arrangement, she handled the kids and we handled the tech. In the end, due to the limited resources, we capped the participation limit at 8 middle schoolers. The students formed 4 groups; 2 students per robot.

The curriculum

Together, my team and I began to develop a curriculum. The summer camp was scheduled for a total of 5 days, 3 hours/day. Monday through Thursday would be an introduction to programming. Friday, a day of rest. Saturday, they would be given longer puzzles -- requiring the use of all of their programming knowledge gained in the previous days. Below is a rough overview of the schedule. It revolves around small challenges, tasks, and puzzles. Each one highlights a programming concept exhibited in a robotic behavior.

DayDescriptionExample Challenge
1The purpose of this day is to learn the interface to the robot and how to use the "action" and "event" components of the Cue API. This day is intended as a warm-up day where the kids struggle and ask questions. Many of these exercises were copied from or inspired by the Creative Writing Section of the Cue Robotics Curriculum.Sketch it! Take a marker and a piece of paper. First, draw a large square on the paper. Place the robot in any corner. Program the robot to move along the boundaries of the square. Once completed, program the robot to do the same with a triangle and an octagon.
2The purpose of this day is to learn more concrete concepts of programming. The first 15 minutes are dedicated to having a volunteer student present functions. Then, the kids would solve challenges related to functions. The same was repeated with Variables and Loops. We dedicate 1hr/concept for a total of 3 hours.spinBot! Local variables allow you to modify values in a function, without changing the function at all! Make your robot crazy by making the robot spin and then doubling the spin.
3The purpose of day 3 is to continue learning the concepts of programming. This day is used to address any problems the students are having with loops and arrays. In the original design, this was used as a buffer day in case we were moving too fast through the curriculum.Blinky! Create one array of colors. The array should have at least three components. Program your robot to change to those colors in order. Repeat the exercise with sounds.
4The purpose of this day is to learn more about robotic components and their shortcomings. The students build a gripper from the pre-prepared set of lego-like components. The students then use the gripper to have the robot interact with its environment.Picker upper! Part 1: Program the robot to pick up a block at one location and drop it off at another location. Part 2: Program the robot to pick up the orange ball and drop it off at another location. Part 3: Program the robot to pick up a pencil or marker and drop it off at a different location.
5On the final day the students are asked to put their knowledge to the test.First, have the robot navigate a maze using its sensors. Second, have the robot dance. Here, we incorporate a balance of robotics and creativity.


How did it go?

Overall, the kids worked through the puzzles and learned to program. It was not systematic, and often chaotic, but interesting.

Some of the chaos we actively encouraged. For example, see that the kids were getting tired of the puzzle and decided to steer away from the curriculum. We invented a cool new game. It was a version of robot soccer. The idea was to have the robot as the ball -- which you do not kick and have the person's foot be the motivator for the robot's motion. The robot had to reach and "score" a goal by avoiding dynamically placed obstacles. The kids were gentle at first but the empathy wore off. They began to nudge the robot towards the goal harder and harder. Some might have been disheartened to see the children kick a robot after having spent so much time programming it. There was no sense of having kicked an intelligent being. It was becoming clear that there was no evident transformation or enchantment with robots. The only enchantment was that these robots could provide a source of entertainment. We observed similar behavior when teaching for-loops. Once one student understood they could make the robot scream an infinite number of times, chaos emerged.

Rules also change day by day, what was entertainment before, was no longer entertainment. The dance-off scheduled for the last day did not generate much enthusiasm. Some groups could not decide on a song and some students did not want to dance, while others cooperated fully. Likewise, the maze ended up an impossible task due to the limitations of the robot and of the materials we used to build it. We used lego blocks and cardboard, quickly patched together an hour before use. The balance between the robot's sensor and how much it moves to make a turn ended up being hard to tune. However, the kids tried and we learned the limitations together. The gripper also proved to be inaccurate. Our impromptu hand-off challenge between robots turned into long sessions of debugging on the floor. The graduate and middle-school students invested their time, effort, and patience into the challenges. Their focus was at times unparalleled.

I would say that 70% of the time, the students actively worked on robotics and programming. Some were inspired, others curious. And so perhaps they will remember this robotics summer camp with some fondness. However, those memories will not be a glorification of the robot system and how it brought them to power. It will be the idea that robots can be captivating, even if just for entertainment purposes. My favorite quote from a middle schooler is, "Robots are dumb -- but if you have a smart programmer then robots can pretend to be smart."Otherwise, take a look at the

Yes, be that smart programmer. I dare you.

Hints for future programs

Below are some hints to remember when building your organizatinal structure and curriculum.

  • Have a buffer day every two or three days in case you need time to explain some concepts more clearly.
  • Let the students veer off exploring but do not let it hinder their progress. Turn them back to the original challenges after 15 minutes or so.
  • Have a way for students to save all of their programs in case they want to refer back to it or show its functionality to a family or friend.
  • It is important to have a community leader who will help communicate with the kids and their parents.
  • Plan for breaks in between the puzzles.
  • Prepare more challenges than you expect to use. Some will be discarded and some will take more time. It is good to have options so you can adapt to the level of their knowledge.


Contact me if you'd like to learn more details about the summer camp. I'd be happy to share any content or materials. Otherwise, take a look at the photos. Thanks for reading!