So your class has gone through the ROBOTC Video Trainer Curriculum (VEX or LEGO), are comfortable programming in ROBOTC, and the robots are starting to zip across the room: however, some students are absorbing the programming knowledge quickly, while others are taking a little longer to grasp the core concepts. Where should a teacher look to if a student (or classroom) advances beyond the pace of the class? In this post, we will take a look at some of the many advanced programming resources available for ROBOTC.
Because ROBOTC is a C-based programming language, there are many C programming features that students can lean about and implement in their code. The first resource to investigate is the ‘Programming Tips and Tricks’ section of the ROBOTC wiki. This special subsection contains samples of some of the more advanced C-based operations that can be executed using ROBOTC and are pulled from a variety of sources. Topics include structs, switch statements, tertiary operators, and more. Because all of the information is available for free online, students can research and test the topics at their own pace and gain a deeper understanding of the subjects.
Next, you may want to take a look at tutorials on the ROBOTC wiki for implementing advanced programming concepts with different sensors. Also be sure to check out ROBOTC’s Sample Programs (via the ‘File -> Open Sample Programs’) as many of the programming concepts have pieces of advanced code that can help the students understand exactly how they are applied in real-world scenarios. There are also several multi-robot projects (for the NXT) that can be found on ROBOTC’s Multi-Robot wiki and a thread dedicated to advanced ROBOTC programming with VEX which will both offer unique challenges for students to conquer, as well as a wealth of community created projects showcased on the ‘Projects Discussion‘ section of the ROBOTC forums.
Once the students have sufficiently expanded their knowledge of advanced ROBOTC programming, they will be ready to tackle more complex robotics projects. This is a perfect opportunity to encourage creativity and inventiveness with preexisting challenges (and is a perfect example of where differentiated instructions can positively impact a classroom). By utilizing differentiated instruction in the classroom, you will be able to not only challenge the newer programmers with the basic programming examples, but will also be able to engage the more advanced students with complex programming options, such as making their robots perform a challenge quicker, more efficiently, or more accurately (or a mix of all three).
– John Watson