Visual Programming
We wanted to give a group of visiting high school students a feel for problem solving using robotics and programming -without having enough time to teach them either. Everyone in the lab was instructed to come up with a few ideas.
I had an idea to replace programming with tangible objects that represented code for controlling the robot, a sort of “visual programming” language where code is replaced by color. For example, if the robot ran over a red piece of paper it would turn right, blue would turn left, green would speed up, yellow would slow down, etc. This was difficult to develop and TinFan Wu, a PhD student in the lab, and I spent a great deal of time getting the robots and the color sensors to work together in a fluid, and predictable way.
The visual programming system encompassed the basic concept of representing physical changes as discrete commands that could be arranged to solve problems. We then introduced obstacles that they were asked to navigate around, which introduced the notion of using programming to overcome environmental constraints. The other lab members had the idea to use line avoidance, where the robot could not cross lines and therefore would have to stay within the bounds of the track. This led to the development of a large poster-board race track that had several difficult areas to navigate through.
The teams were given these tracks and instructed to use the colored squares to “program” the robot to navigate the maze. There were a few races where all teams competed over who could navigate the entire maze 3 time. The fastest teams got ribbons. A good amount of the students expressed interest in the robots and there was some bonding between the students and their team mentors, which is great for encouraging them to pursue science.
The event was written up by CalIt2: http://www.calit2.net/newsroom/article.php?id=1879