MakeCode for Lego Mindstorms EV3

Computer Science is nowadays very popular and requested in almost all companies. Many companies would like to have more IT professionals. Therefore, we would like to motivate students from the beginning of their education to learn Computer Science, especially programming. There are many educational aids, which could be used for showing students, that programming is not so hard, as they think. The contribution describes our experience with using the online environment Microsoft MakeCode and the most popular educational robot Lego Mindstorms EV3 in an extracurricular activity for primary school children at Matej Bel University, Slovakia. In this paper, we present environment MakeCode and examples of tasks, which we are using for teaching programming in this environment. Keywords—Programming, LEGO EV3, Microsoft MakeCode , block-based language


Introduction
Children are not very motivated to learning computer science, especially programming. Most of them think that programming is very hard, and they haven't brain for programming. The teachers all around the world are trying to motivate them by using special aids such as educational robotics. The most famous brand for kids toys Lego launched their first educational Lego in 1998 -Lego Mindstorms: The Robotics Invention System. Lego Mindstorms is a product of the Danish company LEGO, which has been building kits since 1932. Its name consists of the Danish words "leg godt", which in English can be translated as "play well". The company also has an educational component called "LEGO Educational Division", which develops and manufactures construction kits for educational purposes [1]. Since the first version, there are two other generations of Lego Mindstorms: Mindstorms NXT (launched in 2006), and Mindstorms EV3 (launched in 2013).
The creative use of LEGO could help children to learn not only in acquiring manual and technical skills but also in acquiring theoretical knowledge. These kits can help in teaching various subjects such as physics, chemistry, polytechnic education, computer science and so on. They also have a place in the extracurricular activities of pupils [2,3,4].
Many types of research showed that in Slovak republic are primary school furnished mostly with Lego Mindstorms. Research of [5] showed that in the academic year 2016/17 are 92.43% of all construction kits at schools (according to completed questionnaires) are from the LEGO MINDSTORMS group. The LEGO MINDSTORMS NXT second-generation kit is used by up to 40.91% of respondents. The LEGO MINDSTORMS EV3 kit is used by 34.85% of respondents (Fig. 1).

Fig. 1.
Types of used robotic kits on Slovakia in academic year 2016/17 [5] Lego EV3 is using mostly in primary schools, occasionally in high school. The most used programming language for EV3 is the ROBOLAB graphics tool based on Lab-VIEW, consisting of dragging and placing blocks on the screen. This method is not suitable for teaching at the universities or upper levels of technical schools. Few of them know, that it is possible to install on the Lego EV3 brick full-featured Linux, which is actually a modified Debian. Moreover, its use does not affect the original firmware, so it is still possible to work with Lego brick as before [6].
The alternative to Lego software (ROBOLAB) and installing Linux on EV3 brick could be using online environment Microsoft MakeCode , which offer programming in block and JavaScript programming language.

Extracurricular Activity FNS UMB
In our Department of Computer Science FNS UMB we are organizing third academic year extracurricular activity for pupils from primary schools. In this academic year 2019/2020 we have this activity twice in a week for 1,5 hours. The students of Teaching of Computer Science program and Applied Informatics program were involved as lecturers or tutors in this activity. Each of our student teaches 1-2 children from primary school (Fig. 2). The main focus of this activity is to obtain additional teaching experience for our students and increase motivation for studying Computer science (programming). This year we have 25 pupils from different primary schools.

Fig. 2. Extracurricular activity in FNS UMBwith university students
In our extracurricular activity, we are using many types of educational aids such as micro-bit, Ozobot, mBot and Lego EV3 (Fig. 3). The Lego EV3 is for students the most interesting educational robot. We are using many types of tasks.

Microsoft MakeCode
Microsoft MakeCode is a free, open source platform for creating engaging computer science learning experiences that support a progression path into real-world programming [7].
MakeCode offer interactive simulator provides students with immediate feedback on how their program is running. For programming, it is possible to use Block and JavaScript editor. Block editor is suitable for students, who are new to coding. They can start with blocks (similar to Scratch language) that they can drag and drop onto their workspace to construct their programs. JavaScript editor is suitable for computer science experience students, that want to use a full-featured JavaScript language.
Microsoft MakeCode offer possibilities to program educational devices such as micro-bit, Circuit Playground Express, Minecraft, Lego EV3, Cue by Wonder, Arcade and Chibi Chip (Fig. 4)

Microsoft MakeCode for LEGO EV3
Coding with MakeCode for LEGO EV3 is done entirely in a web browser. Students can create programs on any device or platform (PC, tablet, mobile phone, etc.) with a USB port and an internet connection. No software to download or install! Only condition for using MakeCode is to have a firmware version of 1.10E or higher installed on your brick (updating firmware is easy, it is possible to use webpage https://makecode.mindstorms.com/troubleshoot).
There are plenty of tutorials, projects and code samples to get people started using MakeCode for LEGO EV3 (Fig. 5). The Tutorials on webpage https://makecode.mindstorms.com provide step-by-step guidance on how to use each sensor or motor, etc. keywords.

Fig. 5. LEGO EV3 -MakeCode main page
For programming, it is possible to use many types of block commands, which are connected into the following parts: • Brick -Blocks for displaying texts/numbers/ animations or colors on EV3, pressing buttons on the brick, etc. • Sensors -Blocks for using touch, color, ultrasonic, gyro, infrared sensors, remote infrared beacon and calibration • Motors -Blocks for controlling motors.
• Music -Blocks for playing sound effects, tones, setting volume, etc.
• Loops -Programming basic syntax such as blocks forever, on start, pause, loop repeat, loop while, loop for, break. • Arrays -Using array blocks.
• Extensions -Using third part extensions.
MakeCode brings dual Blocks and JavaScript editors, which means that users can switch between these languages anytime (using the buttons in the center) and to see another syntax. Fig. 6 shows block editor.

Fig. 6. MakeCode block editor
The LEGO EV3 simulator show students what sensors and motors are connected to which ports on the brick.

Create a program, that will display the heart tick animation (note add block "show image" and select expression Heart Small and expression Hear t Large to gradually changed these images 4x).
The solution is displayed on the Fig. 7. Students have to find the solution by themselves. iJOE -Vol. 16, No. 14, 2020 After a successful solution student have to modify their solution, where they should use only 4 blocks. In case that they have a problem, the teacher can help them, that they have to use a block from loop part (Fig. 8).

Modification
• Modify the previous example so that the heartbeat does not start until you press the "enter" button. Fig. 9 shows the student, which is in the process of solving the task. Solving these tasks was very interesting for students because the blocks are familiar to them from the program Scratch and also because the environment is similar to programming BBC micro-bit. Most of them came to the solution with cycles quite quickly.

MakeCode task -Brick display text
Create a program that displays "Hello, how are you?" on line 1 after the start. The user can choose what will display on line 2 after buttons "UP", "DOWN", "LEFT", "RIGHT" are pressed: • "UP" -displays the text "I am very good." • "DOWN" -displays the text "I am very bad." • "LEFT" -displays the text "Not bad." • "RIGHT" -displays "Nothing much." The solution is displayed on the Fig. 10.   Fig. 10. Block solution of the task -displaying text on the brick Modification of the previous task: When you will press the button "enter" the text "What will we program today?" will be displayed on line 3. The user can choose answer on the question by pressing "UP", "DOWN", "LEFT", "RIGHT". His answer will appear inline 4.
• "UP" -displays the text "LEGO EV3 motors." • "DOWN" -displays the text "LEGO EV3 sensors." • "LEFT" -displays the text "LEGO EV3 animation." • "RIGHT" -displays "LEGO EV3 music." The solution should contain using variables. The result is displayed on the Fig. 11.   Fig. 11. Block solution of the modification task -displaying text on the brick with variables This task was for the students more difficult. After solving this task, they said that now they better understand how to use variables.

Methodology and result
In our research in the academic year 2019/2020, we used Lego EV3 for learning programming in our extracurricular activity in the Department of Computer Science, FNS, Matej Bel University. The main aim of our research was to find out, whether we can increase students' interest to study programming by using Lego EV3 and online environment Microsoft MakeCode . We used the questionnaire for measuring data of our research. We asked 23 students several questions in the questionnaire. The questionnaire filled 23 boys. The respondents were 11-14 years old.
First question Were the activities difficult for you? after the gender selection was focused to was aimed to complexity of tasks. Fig. 12 shows that, 34,8% said no and 65,2% said rather no. Second question Do you think that after completing such classes, informatics is more interesting for you? was focused whether such using robots in teaching process would improve interest in informatics. 78,3% of respondents said yes, 17,4% rather yes and only one student said no (Fig. 13). Fig. 13. Do you think that after completing such classes, informatics is more interesting for you?
In our extracurricular activity we used many robots during the academic year. We wanted to know how much the students enjoyed programming Lego EV3. Answers from the question How much did you enjoy programming LEGO EV3 robots? showed that 78,3% like programming EV3,13% rather yes, and 2 respondents said no (Fig. 14). We created owned tasks for programming Lego EV3 in Microsoft MakeCode environment. With another question we focused on how did the students like our tasks. 73,9% said they like, 13% rather yes, 8.7% they don't know, 4,3% said rather no (Fig.  15). For programming LEGO EV3 we decided to use online environment Microsoft MakeCode . We wanted to know how the students like this environment. The results (Fig. 16) show that students like this environment.

Conclusion
In this paper we focused on using an online environment MakeCode as an alternative to Lego Mindstorms EV3 block programming environment (ROBOLAB). We showed our tasks for Lego EV3, which we created for developing algorithm thinking of primary school children. Using this environment with educational robot Lego EV3 may increase students' interest in studying Computer Science, especially programming. In the future, we will continue with using online environment MakeCode for teaching programming with LEGO EV3 and we will do research if using this environment increase students' interest in studying Computer Science. For the measuring data we used questionnaire, which showed that students like programming Lego EV3 in online environment Microsoft MakeCode.

Author
Patrik Voštinár is a lecturer, who is working at the Matej Bel University, at the Faculty of Natural Sciences, Department of Computer Science. He teaches subject such as programming web pages (HTML, CSS, JavaScript), creating mobile applications (programming Android, iOS application), discrete mathematics. He is member of two national projects aimed to using information and communication technologies in the education process (m Learning and eLearning). Email: patrik.vostinar@umb.sk.