In “The Future of Jobs Report 2020”, the world economic forum (WEF) built a list of ten skills that will be most required in jobs by 2025, one of them being “technology design and programming”. In response to the above, in recent years, many projects have been launched to increase programming knowledge for different audiences and in different parts of the world. One of these projects was developed through a collaboration between a university in Colombia and a worldwide company from the technology industry. The purpose of the project was to teach programming skills to the underserved population in Colombia. For this, different programming languages were taught, one of them was the visual programming language Scratch®, in conjunction with a hardware platform to help students understand the interaction between hardware and software.
The hardware platform provided for the project had some limitations, like not working with the last version of Scratch®; research for other platforms showed that few existed, some were too expensive, or were no longer available on the market. These problems led the authors of this article to design and develop a new platform that interacts with the latest version of Scratch® and included more sensors and actuators that help students to develop their computational thinking.
For the conception, design, and implementation of the hardware platform, we followed a top-down methodology, starting from a high-level idea, and increasing the detail of each module until reaching a minimum viable product that was tested following a predefined test protocol. We used Finite States Machine as a theory of computation to model the behavior of the platform and to develop the embedded code. To secure the operation of the platform, we added new blocks to the source code of the latest version of Scratch®, this was a difficult challenge because it implied modifying complex programming sources, for this, a structured design strategy was followed. Finally, a function-oriented design was used to develop a software bridge in Python to assure communication between the above two components.
This project resulted in three main components being developed and fully tested. First a shield for an Arduino Uno board, with sensors and actuators compatible with Scratch’s functions, second a standalone modified version of Scratch, that can run from a free access webpage or can be downloaded to run locally, and finally a software bridge that allows the communication between the hardware and the software. The resulting solution works properly with Scratch® codes that use the built-in blocks as well as the ones developed in the project.
The project attained its objectives and made a contribution to the development of educational tools for teaching computational thinking. The entire solution will be used in summer camp training to teach programming skills to a young audience in Colombia. New projects have derived from the results, like the development of instructional guides for practices that use the solution, and the development of enhanced versions that can reduce the costs of production and introduce wireless communication.
Are you a researcher? Would you like to cite this paper? Visit the ASEE document repository at peer.asee.org for more tools and easy citations.