A question I see a lot from teachers who have decided to use robots (or another physical computing device) to help teach coding is “how many do I need?”
Cards on the table: the team behind Edison robots believes that the answer is one robot per student.
“Sure,” you say. “The company selling the robots thinks you need one per student.”
I understand your scepticism. But I swear, it’s not just a money-grab. (If it were, we wouldn’t offer educator discounts pre-built into our pricing in the form of bundle-packs, making it so that a single unit of Edison is $49 USD, but in a class pack of 30 robots, each unit is discounted to $33 USD. But I digress…)
Having enough equipment for each student is critical no matter the subject. When too many students are trying to share one device, some of them are inevitably left sitting with nothing to do. Think about having five kids all sharing one microscope in a science class – it’s just not optimal.
So, yes, ideally, you want a 1:1 student-to-robot ratio. And, yes, the majority of coding lesson activities you will find are designed for a situation where each student has their own device, robot or otherwise.
That doesn’t mean that students should only ever work on their own when learning to code. Coding lends itself to different approaches in different scenarios. Individual coding, pair programming and group projects all have their place when teaching computer science.
Anyone who’s taught a class full of students knows that kids don’t all work at the same pace. And the more dynamic the subject, the greater the divisions can be.
As a subject, coding doesn’t lend itself well to rote learning. Experimentation and problem-solving are much better approaches. This makes coding great for developing key skills like critical thinking. However, it also means that it’s virtually impossible to keep everyone in a classroom entirely in synch. Individuals will start working on a task with different ideas for solutions, some of which will work better than others. Having the opportunity to try, and fail, then learn from that failure in the next iteration is one of the most valuable aspects of learning to code. It also means that students need the space to work at their own pace.
One of the great things about coding is that a classroom full of students can all be working on different things while all still learning programming. Coding is brilliant for differentiated learning: some kids can tackle projects that interest them, gaining skills as they go, while others start from a coding concept and then work their way through guided applications.
Providing the right materials is critical. Students need resources that offer enough explanation so that they don’t get stuck and frustrated but still present enough challenge so that they don’t get bored.
Choose lessons that are designed to enable independent, self-paced learning and are written to age-appropriate reading levels (like the Edison robot student materials).
And remember: effective computer science education should include plenty of room for investigation, creative problem-solving and revision. If, as the teacher, you swoop in and save a student from failure every time, you are robbing them of half their learning opportunities. Instead, provide scaffolded learning. The EdScratch lesson plans offer one example of how to do this, as this set contains three types of lesson activities:
- base activities that introduce new concepts and explain key ideas,
- less-structured extension activities which reinforce skills and concepts, and
- open-ended challenges that provide new pathways to apply the previously presented material.
Allowing students to move through lessons at a pace that suits them, while having plenty of additional challenges for fast-finishers, enables every student to learn the material well and enjoy the learning process.
When done correctly, pair programming is a lot more than just having students work with a partner. In addition to the opportunities to practice 21st Century skills and develop their metacognition, pair programming offers students the chance to pool resources and take on more creative and complex projects.
Take, for example, activities using the Edison robot’s IR messenger system, including the popular treasure map EdScratch challenge (activity U5-1.4c Hey Edison, where do I go?).
In the activity, students use two Edison robots, one driving and one navigating, to get through a treasure maze.
This project is ideal for collaboration and pair programming. It’s not just that students need two robots to complete the project; they benefit from working with a partner to construct their treasure map and plan their programs. Because the programs required for this project need variables, using pair programming to code the robots can help students avoid getting lost in the data or make typo-style errors, allowing them to program both Edison robots and reach their goal successfully.
Many types of coding-driven STEM projects are improved by partnering students and sharing resources. Projects comprised of multiple components can be overwhelming for a single student but actually enable more freedom in how students work when they are teamed up. For example, the EdCreate EdBuilds consist of both an engineering and a programming component. Students may choose to work on both elements together, or to divide the work between them, collaborating as their sections overlap.
Pair programming empowers students to undertake more difficult, and more interesting, challenges while ensuring everyone is engaged and involved in each lesson.
When it comes to open-ended challenges and project-based learning, groups are the way to go. Working with multiple peers brings both benefits and obstacles: more brains buzzing leads to more ideas, but also more opinions about how to proceed. Group work makes practicing the four ‘C’s (critical thinking, creativity, collaboration and communication) an inevitable part of the project – a major bonus given how necessary these skills are for students now and in their futures.
One thing to keep in mind when it comes to group work with physical computing devices like robots is that students don’t need to all work on each stage all together. Team members can create individually, then review each other’s work. They can then collaborate to implement the feedback into multiple final projects or combine ideas into a single final project.
Take, for example, the DoodleBot challenge in which students must attach a pen to an Edison robot so that the robot can draw a shape. One option is to approach this as a staged project. First, everyone comes up with ideas for how to build the DoodleBot and what shape it should draw. Students can then work on prototypes individually or in smaller break-out teams. The group can then compare all the prototypes together, seeing what is working well and what needs further modifications. Students can help each other by offering suggestions based on their own discoveries, improving each other’s designs. Alternatively, they can take the best bits of multiple prototypes and combine them into a new creation.
Group projects let students take control of their learning by giving them chances to learn from, and teach, each other, all while tackling complex problems.
Conclusion: mix it up!
Depending on what you are looking to do, and how your students like to learn, teaching coding with kids in groups, pairs and on their own are all great options. Mixing up your coding curriculum to include a variety of lessons will give students the chance to try out different programming approaches to see what works best for them.
While different projects work best with different mixes, remember that no matter what, students must have enough of the right tools and materials. Having the supplies they need allows students to invest in their own learning, getting more out of every lesson.
What coding approaches do you use in your classroom? Do your students have a favourite way to program? We’d love to hear your thoughts. You can send us your comments at email@example.com. Are you using Edison robots in pairs, groups or one-to-one? We’d love to see! Add your pictures and videos to the online community of Edison awesomeness on Pinterest, Facebook, Twitter, Instagram or YouTube.