When I joined the group, I suggested that we engage in a backward design process and start by articulating the objectives of the course. While we shared a common desire to encourage more students to pursue careers in STEM, we were all coming at the problem from different directions and operating with different assumptions. To get on the same page as a group, we had to clarify our own thinking as individuals.
We agreed that the focus of the course should be on computational thinking. We wanted students to develop a conceptual foundation and habits of mind that would enable them to apply advanced computation in any field. Daniel and Tim wanted the course to involve robotics, but they didn’t want to focus on mechanical design and programming. They wanted students to experience robotics as a rich and engaging problem space driven by the interaction of hardware, software, and the environment. Finally, it was important for students to drill down to some form of ground truth when engaging in the engineering design process; we wanted them to have to consider and eventually learn about underlying mechanisms: what happens when the wheels in the differential drive system slip, the charge in the battery gets low, or you are limited by the sampling frequency of the sensor data and behavior arbitration system?
Designing a task aligned with our objectives took discipline. We needed a project where students would have to meet our objectives in order to complete the task. It would have been simpler and faster to design a fun and engaging task, and then layer our objectives on top of it, but it also would have been far less effective. After a great deal of thought and brainstorming, we came up with the idea of teaching a robot how to dance. Teaching a robot how to dance isn’t the same as programming a robot to follow a pre-scripted choreography to music. Students needed to figure out how to teach a robot to dance to unknown music and with an unknown robot dance partner, which means detecting the tempo of the music and the position and movement of the robot dance partner, and reacting appropriately. It is the kind of rich, complex problem that would engage and challenge an expert roboticist.
Once the task was defined, I began designing the course, breaking the task into sub-tasks and creating sequences of lessons to develop skills and concepts. I introduced the group to Moodle, a learning management system (LMS). We planned to deliver the course using face-to-face instruction, but we wanted to post assignments and materials online. I also often use threaded discussions to increase accountability, enable students who like to process their thoughts longer or need more wait time to participate more actively, and make it easier to follow up and build on earlier points in the discussion.
The group was impressed with how I developed skills and concepts in a logical and cohesive progression, but they had concerns that students would be unable to progress at the rate that I anticipated. Even though we had agreed that the course would be project-based with a constructivist approach, there was some desire to pull back and spend more time constructing foundational skills before getting to the heart of the project. We decided to test components of the course with small groups of high school students to see how they responded.
We challenged students to program a robot to track and follow an infrared (IR) beacon, which is one of the critical sub-tasks in Teaching a Robot How to Dance. We recorded the second session, and I documented it through a series of videos on the Computing Explorations website. (I also posted a short introductory video on YouTube.) Initially, the two students in the session, Amalia and Ariana, spend more time trying to get through questions than answering them. But later, they begin reasoning things out and using the tools and strategies modeled by Daniel, their guide and instructor. By the end, as their capabilities and understanding have expanded, they are visibly more confident and engaged in the task, and they are even questioning and answering each other.
I enjoyed the development of Teaching a Robot How to Dance on multiple levels:
- I had the opportunity to immerse myself in a new discipline and to view the world through the eyes of a roboticist.
- Starting with a blank slate, I was able to take risks and push myself to design innovative curriculum based on constructivist learning principles.
- We took the time to design a course that was cohesive and fully aligned with our objectives.
- I learned about new technologies and was able to share what I knew about curriculum design and instruction.
- By collaborating, we designed a course that none of us could have designed on our own, and we developed common understandings that will impact our thinking moving forward. We also built a level of trust that enabled us to uncover our own assumptions, take risks, and challenge core beliefs.
I believe that this is the kind of process that all educators should be going through in order to develop the curriculum and instruction our students need and deserve.