Proceedings of The 6th International Conference on Modern Research in Education, Teaching and Learning
Arduino-Style C++ Coding in the Browser: Experience in an Introductory Robotics Module for General Engineering Students
Jakub Orłowski, Paul Cuffe
Project based learning, which engages “students in collaborative focus on a specific project, often organised around a driving question”  is a proven way for students to acquire practical skills and to situate those abilities in a meaningful context. Assessed projects of this kind in universities often appear as group work, where each team member handles a different aspect of the project. While this allows students to tackle complex projects in a limited time, it also means that some group members may be awarded credit without actually mastering the skills that form part of the course curriculum.
In the “Robotics Design Project” module, EEEN10020 at University College Dublin, first year engineering students work in groups to construct an Arduino-based Lego robot to compete in an adversarial ball-catching competition at the end of the Spring trimester. The students do not necessarily have any prior experience with the Arduino platform and, since they do not have access to the microcontroller hardware outside of scheduled lab times, some students have historically struggled to achieve the module learning objective relating to C++ programming for embedded hardware.
In the academic year 2022/2023 we sought to ameliorate this situation by introducing the students to the Autodesk TinkerCAD  browser-based development environment. TinkerCAD allows simple simulation of electronic circuit components and allows the execution of Arduino-style C++ code within an accessible online platform having minimal setup friction. Students were given an individual graded assignment to be completed within TinkerCAD as part of the continual assessment of the module.
In this work, we present our own findings about the suitability of TinkerCAD as a teaching tool for microcontroller programming skills. While not a drop-in replacement for the physical robotics hardware, we found it a useful tool to (a) allow the students to practice programming in their own time and at their own pace (b) permit teams to prototype aspects of their final competitive codebase outside of lab time and (c) assess the programming abilities of individual students. In future offerings of this module, we intend to offer more livecoding tutorial sessions with the students, to minimise the “chalk and talk” delivery style and instead maximise programming and robot construction activities.
keywords: project-based learning, microcontroller programming, browser-based environment, university module