Keywords

1 Introduction

Today’s citizens need specific occupational skills in professional, managerial and technical jobs to ensure economic growth and social well-being [1]. In 2018, the Council of the European Union issued “Recommendations on Key Competences for Lifelong Learning” (Fig. 1), aimed at preparing people for the skills needed for the world of work [2].

Fig. 1
figure 1

Eight European key competences for lifelong learning

Several studies report examples of the effectiveness of new approaches to teaching and learning, like tinkering, coding and making, for improving creativity, computational thinking, problem-solving and cooperation [3]. Tinkering is an approach involving hands-on activities where students can create or modify objects using recycled materials alongside technological features such as batteries, LED lights, small motors. Tinkering is about learning from one’s failures, and having unstructured time to explore and invent. The potential for innovation lies in the process of exploring and inventing [4]. Making has its roots in Papert’s Constructionism, but the focus is on the creative process rather than merely on the finished product. This process has different aspects ranging from design thinking to physical creation. There is also a social aspect: as they work in teams, students have to manage conflicts. Another area of interest is coding. Like other subjects, learning to code involves various skills. Students have to resolve an issue, debug code and try to understand where it is failing, break down large problems into small ones. There are many organizations in Europe whose aim is to bring innovation into teaching and learning. One of these is the European Schoolnet Academy, a not-for-profit organization that promotes numerous projects, including Scientix and STEM Alliance, which promotes and supports a Europe-wide collaboration for STEM. Scientix projects include many resources for code learning and makerspace activities. In 2015, the Italian Ministry of Education, University and Research (MIUR) introduced the National Plan for Digital Education (PNSD) and the related Law no. 107. The Ministry’s intention was to introduce the concepts of makerspace, school fab labs, robotics and coding to Italian schools. Since 2018, coding has been part of the national recommendations for the school curriculum in Italy. Several organizations around the world have established programs whose mission is to introduce computational thinking to children from an early age. Some examples are: Google CS First, code.org and its integration in the “Programma il uture” project developed by MIUR, MIT’s Scratch, a powerful tool for creating artifacts, and CoderDojo.

CoderDojo is a global movement of free, volunteer-led, community-based programming clubs for young people [5]. Anyone aged 7–17 can visit a Dojo, where they can learn to code, build a website, create an app or a game, and explore technology in an informal, creative, and social environment. Within the CoderDojo Movement there is a focus on peer learning, youth mentoring and self-led learning that aims to help young people realize that they can build a positive future through coding and community. We have been volunteering for about four years with our local CoderDojo in Pomezia (Rome), where our work includes coding, robotics and tinkering. About 100 kids have attended our workshops. This paper will present our experience teaching robotics and coding.

2 Robotics Workshops

2.1 Technical Resources

Many studies have been conducted on the use of robots in educational environments, and the conclusions drawn are that robots help schoolchildren develop their logical, creative thinking, and problem-solving skills, and learn mathematics, science and programming [6].

mBot robotic kits are the key features of the activities of CoderDojo sessions. mBot is an Arduino-based robotics kit that enables students to assemble the robot with motors and sensors, without having to know anything about electronics. Sensors and motors can easily be plugged into mBot, and the device can be programmed in a Scratch-like environment. The Arduino programming language can also be used, as mBot is an Arduino-based platform. Assembly of mBot is extremely easy, as the platform’s principal purpose is for learning programming. mBot can be controlled remotely. Figure 2 shows an mBot similar to those used during our workshops.

Fig. 2
figure 2

mBot robotics kit

2.2 Students’ Activities

Robotics workshops were attended by both male and female primary school students. Many workshops were held between April 2016 and June 2019. mBots were pre-assembled by mentors (CoderDojo volunteers). The robot is programmable and students can control the motor (wheels, belts, robotic arm) and can read and process the data measured by the robot’s sensors, such as distance, brightness, direction, etc. [7].

mBot can be programmed with mBlock, a free software similar to Scratch which allows the user to drag and drop blocks to create a code sequence. Figure 3 shows a sample program in which the red LEDs in mBot light up; then, if there is a black line on the left side, mBot turns left.

Fig. 3
figure 3

A sample code created with mBlock

We proposed various activities during the workshops with different levels of difficulty. Children were divided into groups of four or five (Fig. 4); each group worked with one mBot. The students followed the instructions to connect the robot to the software and program their code in the following steps:

Fig. 4
figure 4

mBot activity during a CoderDojo session

  • mBot turns on and LEDs light up with a color sequence.

  • mBot moves in regular geometric patterns (triangular, square, circle) and can repeat parts of the movement sequences.

  • mBot’s sensors detect obstacles and move it back away from them. If the robot turns 180° as it detects an obstacle, it can go back and forth endlessly between two obstacles facing each other. The robot can move into a space on the mat delimited by a dark line that is detected by the light sensor.

  • mBot has a pen stuck to it and children can draw shapes by moving the robot.

  • Once the children had got to know the software, they created a code that would allow it to follow a complex path marked by a dark line and two flags acting as traffic lights, as shown in Fig. 5. The flags are controlled by an Arduino Nano with two ultrasonic sensors. Two mBots follow the dark line, but when the ultrasonic sensor detects movement, a servomotor lowers the first flag to stop the second mBot. Once it has passed, the flag is raised again.

    Fig. 5
    figure 5

    mBot path with traffic flags

Except for the last activity, which was very complex and needed the mentors’ help, the participants enjoyed all the workshops. Since the children already knew Scratch, there were no great difficulties programming the mBots.

3 Conclusion

Students were enthusiastic about working with robots in particular and technology in general. The younger children drew and played with the robots. The older students appreciated the opportunity to create their own programs and to control the robot. They were all highly motivated to use mBots and to program them. They worked together, within their groups and with other participants. If one group improved something, other groups tried to emulate them, asked for information and suggested modifications. We observed an improvement in the students’ technical skills, social and peer collaboration skills and, what is equally important, they had lots of fun.