Teaching Programming Using Dedicated Arduino Educational Board

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

Received: 24 October 2018 | Accepted: 19 May 2019

DOI: 10.1002/cae.22134

RESEARCH ARTICLE

Teaching programming using dedicated Arduino


Educational Board

Izabela Perenc | Tomasz Jaworski | Piotr Duch

Faculty of Electrical, Electronic,


Computer and Control Engineering, Abstract
Institute of Applied Computer Science, This paper presents a new approach to teaching programming to undergraduate
Lodz University of Technology, Lodz,
computer science students. A dedicated Arduino board along with custom
Poland
application programming interface (API) was introduced into programming
Correspondence classes with a view to strengthen students’ engagement and improving the
Tomasz Jaworski, Faculty of Electrical,
attractiveness of the course. The students were presented with basic
Electronic, Computer and Control
Engineering, Institute of Applied functionalities of the board, which gave them a possibility to accomplish their
Computer Science, Lodz University of own projects—typically video games—without any background in electronics.
Technology, Stefanowskiego 18/22, 90‐537
Łódź, Poland.
The level of engagement of the participants was observed by the tutors during
Email: tomasz.jaworski@p.lodz.pl classes and also reviewed based on questionnaires filled by 347 first‐, second‐,
and third‐year undergraduates. The results indicated that the proposed
Funding information
Lodz University of Technology, Faculty of approach was well received by nearly 80%, while nearly 75% of the participants
Electrical, Electronic, Computer and expressed a wish to continue their Computer Science education using Arduino.
Control Engineering, Grant/Award
Number: 501/12‐24‐1‐5418 KEYWORDS
Arduino, Educational Board, introductory programming, learning‐by‐doing

1 | INTRODUCTION course path depends on the university). Courses typically


take the form of writing console programs, which are not
Learning never stops, acquiring new information is our very appealing due to the poor graphical appearance and
daily routine—this is what the current direction of lack of interesting ways to interact with them. The problem
technology development demands. Learning new skills with engaging students in such courses results from the fact
has become key in becoming competitive and also opens that writing console applications offers few possibilities for
new possibilities on the job market. One of the essential personal development of novice programmers. Students are
competencies of our century is computer programming. encouraged to choose IT majors mostly due to the ubiquity
In recent years, it has been strongly popularized in many of technology; however, all they usually receive during the
disciplines. Moreover, the increasing level of digitaliza- first few terms is a text window‐based software. This is not
tion and automation in almost every aspect of life means to say, however, that console programming does not allow
that basic programming skills will generally be as any coding practice of most commonly known and
expected as the use of word processors, spreadsheets or recognized algorithms. It simply lacks the visual attractive-
other office software is today. ness and user‐friendliness that have become a norm in IT
One of the challenges inherent in teaching programming environments—web applications, mobile interfaces, ready‐
is how to make it less theoretical and more engaging. to‐use game engines, and so on.
Programming classes may serve as an example of a course To address the issue, the authors have attempted to
that can be improved in this respect. During classes, improve selected classes of Computer Science at the Lodz
students learn to program in C, C++ or Java (the actual University of Technology. Two courses were chosen

Comput Appl Eng Educ. 2019;1–12. wileyonlinelibrary.com/journal/cae © 2019 Wiley Periodicals, Inc. | 1
2 | PERENC ET AL.

for this purpose: Introduction to Programming Interesting results can also be achieved by using the
(a two‐semester course for the first‐year students) and gamedev approach where students create simple games in a
Intelligent Autonomous Systems (IAS; an elective two‐ provided environment. The entire process can be organized
semester course for the third‐year students). The goal was via e‐learning tutorials that act as guides through basic
to provide students with an opportunity to observe concepts of programming, as well as algorithmic [10] or
physical effects resulting from the code that they were object‐oriented programming (OOP) [11].
tasked to write. To that end, the Educational Board and All these improvement efforts are crucial since
mobile platforms (programmable vehicles) were devel- increasing technological development and its social
oped so that the students could implement their own impact demand introduction of STEM (science, technol-
Arduino‐based project of their choosing. ogy, engineering, and mathematics) elements in the
education of children from an early age [8,12]. One
cannot forget that young people, despite being raised
2 | RELATED W ORK around new digital technologies do not acquire the ability
to utilize them in a natural way [1].
The modern‐day students belong to the so‐called Digital Many students decide to choose Computer Science
natives [1] demographic. They were born around 2000 studies because of previous experience with computers,
and since birth, they have become accustomed to new predominantly with games for mobile devices, consoles
technologies—TVs, computers, tablets, game consoles, or PCs. Hence, integrating games or play‐to‐learn
and others. Their perception of technology has been approaches into the study curricula may potentially
influenced by those media, and consequently, the old increase students’ engagement in the programming
approach to teaching programming, for instance starting course due to their familiarity [13,14]. Another approach
with the traditional “Hello world” program is no longer would be to incorporate into the learning process
appealing to them. They expect content that is both more elements of gamification [15–17], which utilize the
engaging and interesting and more relevant to the times concept of rewards, for example, achievement systems
and contexts in which they function – the technologies that are common in computer games [18]. Consequently,
that they see in mainstream media such as, for example, students are motivated to perform tasks and gather
the Internet of Things (IoT). badges or decorations which are then presented in the so‐
The trend to change programming courses to become called hall of fame [19,20]. Some universities are
more student‐friendly is evident at various universities. implementing this idea in their entire Computer Science
Traditional methods of teaching programming, based on education program [21–23].
writing only console programs, are no longer interesting for On the other hand, new programming platforms such
students and can distort their view of programming as such. as Intel Galileo, Arduino or Raspberry Pi can be
Students feel that instead of learning things that may be introduced into classes and lead to increased interest on
useful in their future work, they have to devote all of their the part of students. The low‐level nature of those devices
energy into learning syntaxes of programming languages makes it possible to easily expand their capabilities by
and, consequently, the practice of writing programs is various available input/output modules. Using Arduino
usually reduced to the trial‐and‐error approach [2,3]. in the learning process on how to design one’s own
A modern approach to teaching programming usually system is an approach whose aim is to improve
involves introducing interactive media assets with visual programming skills among novice students [23–29].
feedback such as Scratch [4–6] or Alice [7] that allows to Theoretical knowledge gained by students can be
set a student's focus on understanding programming implemented in real‐life applications [25], for example
concepts like loops, conditionals, and data variables. It for building LEGO robots [12,30] and thus the learned
facilitates learning through visualization of code in concepts can be practiced and motivation level increased,
environments in which the results are pleasing to the which is key in learning programming by engineering
eye. Scratch can be especially helpful since it incorporates students [31] and can be achieved through games and
a graphical block‐snapping programming method [1,5] entertainment [10,28,32].
and lacks a syntactical barrier typical for a general‐
purpose programming languages [4,8].
Scratch is, however, targeted at primary to high school 3 | MOTIVATION
students and, hence, can be considered merely a basic
and simple teaching aid. More advanced tools are Lecturers often work with students that lack motivation
available for both students and educators such as and interest in learning. This leads to poor grades and
CREATE Lab Visual Programmer [9]. low rate of knowledge retention. Both the observations
PERENC ET AL. | 3

made by the authors and the available literature intended tasks, which is quite important, since excessive
[10,30,33] show that the efficiency of knowledge acquisi- and diverse functionality of professional tools (e.g., MS
tion increases when a student can see and understand the Visual Studio) can be overwhelming for first‐year students.
practical application of what he/she has just learned. The device can be programmed through a USB cable on
Moreover, the student's personal engagement in the any computer/laptop that is able to handle the Arduino's
application as such has a positive effect on this efficiency. integrated development environment, and it is a great
Therefore, to provide an attractive and high‐quality advantage in comparison to classical microcontroller
learning experience, dedicated aids were prepared. The educational boards, which might be cheaper, but require
basic assumption was to impose only minimal limitations specific programming hardware and technical knowledge.
on the student creativity when solving problems, The users’ community focused on the Arduino
sufficient to lead them through prepared teaching ecosystem is also of great significance. Since Arduino is
problems and tasks but without actually forcing them very popular among electronic enthusiasts, programs,
into particular solutions. and various other creators [39], there exists a large variety
Electronics is closely related to Computer Science and of resources on the Internet. Students can look through
can facilitate the demonstration of certain phenomena. them for hints while working on their assignments and
Light emitting diodes, displays, buttons or buzzers seem find answers to common problems. It relieves the lecturer
to be interesting for students, and using them offers a but, most importantly, it teaches students how to
possibility to create individual projects based on students’ formulate questions, search for and process available
own ideas. Creating software with such devices in mind data as well as analyze the ideas of others.
seems to be more engaging than a typical console‐based The experience gained while conducting the Computer
programming, characteristic for C‐family language Science course allowed the authors to notice that students
classes [30]. However, as students of Computer Science are often afraid to connect components with cables by
have little to no knowledge of electronics, the optimal themselves for fear of damaging it (some teachers adopt
solution would be to reduce involvement in electronics to the principle “you break – you buy,” which results in the
a minimum, for example by completely ruling out any teaching outcomes that are opposite to the intended ones).
low‐level implementation details. In addition, those actions take a lot of time before reaching
The desired effect is to give students a versatile tool the functioning setup. Although students are gaining
that they could use in many ways to develop projects knowledge during the process, it is not a direct goal of
related to their own interests and ideas. The concept of a programming classes. For this reason, the authors have
simple and compelling project is especially important for decided to design a custom electronic printed circuit board
first‐year students, who are beginning to learn to (Figure 1), with a variety of input/output modules such as:
program despite limited skills[34]. Another appealing Eight LEDs – light emitting diodes (12), a LED matrix
concept is to teach students about the IoT [27,35–37] as display (6), a 128x64 graphical display (4), an alphanu-
an idea that is gaining popularity on the high‐tech meric display (5), a four seven‐segment displays (10), two
markets (e.g., intelligent buildings [36]). Through giving two‐axis joysticks (13), two keyboards – one with arrow
students a possibility to communicate between devices in keys (15) and the other one with numerical keys (14), a
a classroom environment, it would be possible to create potentiometer (8), a buzzer (2), a Bluetooth module (3), an
interesting projects and develop new ideas in the domain audio amplifier (16), an ultrasonic distance sensor (11),
of IoT. The key concept is to give participants a variety of configuration switches (9) and a socket for connecting four
communication methods between a set of devices, for servo motors (1). All those modules are connected to the
example, Bluetooth, Wi‐Fi, GSM or connectivity through central unit – an Arduino Due board (7).
commonly used platforms, such as mobile devices [38]. In addition, a dedicated library was prepared to
facilitate the use of the Educational Board. The design
principle was to relieve the student of any low‐level
4 | EDUCATIONAL BOARD implementation details that could be considered distract-
ing and/or boring. Also, since the library is designed to
The electronic Educational Board was designed to satisfy work with only one hardware configuration (the Board)
the above‐mentioned considerations. Arduino Due board and only one toolchain (Arduino IDE + specific version
was chosen from among many available platforms, due to of GNU C compiler), its installation on the student
its popularity, price, and performance. Due can be computer involves basic file management abilities—a
programmed with a free Arduino IDE tool, which is an provided archive needs to be extracted into the user’s
official integrated development environment for Arduino standard Documents directory, typical for most com-
products. Moreover, it is very simple yet sufficient for the monly used operating systems.
4 | PERENC ET AL.

FIGURE 1 Educational Board


designed for the purposes of the
Computer Science course

A students’ workstation (Figure 2) includes the according to their needs. The goal is to give ambitious
Educational Board and a computer – Raspberry Pi 3. Its students a possibility to develop their own ideas and to
use clearly demonstrates that the concept of a computer is touch, modify, check how electronics modules work.
quite broad and at this point both Raspberry and the
Board satisfy its definition.
In addition, for ambitious students, if they express 5 | T H E ED UC A T I O N A L B O A R D
such interest, they are granted access to sensors, direct API L IBRARY
current (DC) drivers, cables, and other modules, such as
Bluetooth or a camera; so, provided they are experienced The Educational Board was designed primarily for first‐year
users of the Board, they can tailor the equipment to their students of Computer Science, who were just getting
own ideas and preferences. In such a case, they are acquainted with the C programming language. Their lack
allowed to connect and prototype their own modules of experience along with a need to hide low‐level
programming details was taken into account during the
board’s application programming interface (API) designing
process. The main reason was to facilitate programming of
all available modules and to prevent discouragement of
students due to the possible information overload. The
library [40] was prepared in such a manner that it appears
to the user as a set of C functions despite its internals being
written in C++ (which is the base of Arduino firmware).
A part of the library’s functionality is similar to that of
console application; however, it is much more appealing
for the user from a visual point of view. For example, a
student can read a value from a computer’s keyboard and
display it on the screen, but it is more interesting to press
a button and display the chosen text on an LCD display.
Here, the change of working equipment makes the
FIGURE 2 A student workstation: Raspberry Pi, Educational difference. A first example is the classic Hello World
Board, computer monitor, mouse, and keyboard program, written with the developer API and compared
PERENC ET AL. | 5

to a console version presented in Listing 1 and Listing 2.


The student includes a single header file, which
constitutes all the necessary functionality.

#include <ISA.h>

void setup() {

lcd_print(hello, world!);
FIGURE 3 Hello World on the LCD display (Educational
}
Board)
void loop() {}

Listing 1: A classic Hello World program written with the


#include <ISA.h>
use of the developed library.
void setup () {

int i;
#include <stdio.h>
for(I = 0; I < 128; I++)
void main() {
oled_setPixel(i, i*0.5, true);
printf(Hello world);
}
}
void loop() {}

Listing 2: A classical Hello World console program. Listing 3: A line drawing code for the graphical display.

The informational outcome along with the complexity


of both the programs is exactly the same; however, the #include <stdio.h>
difference is in the visual perception. Both of them are int main() {
shown in Figures 3 and 4, respectively.
int i;
Thanks to the provided API, students were not
forced to find and read technical datasheets of each for(I = 0;i<30;i++)
used module, because all the necessary information printf("%*.0c /n", i*2, ’*’);
was gathered in one document. Using the library does
not require programming in C++, so the students were return 0;
not overloaded with new OOP concepts and could }
focus on the core activity of the course—programming
itself. Listing 4: The line drawing code modified for a text
The second example is a line drawing assignment console.
as it is a relevant instance of code simplification.
Listing 3 presents a shortcode that draws a line on the
graphical display. Listing 4 contains a code for the
same task but executed in a Linux terminal. In the
first case, a student uses an intuitive SetPixel
routine, which assumes as parameters coordinates of a
point to be set, while in the second example, to obtain
a similar looking output, advanced printf format-
ting techniques, such as ignoring positional argu-
ments or the formatting syntax itself, have to be
introduced.
Those changes in the code make a significant
difference for students who learn how to program since
the mathematical interpretation of the created algorithm
is more intuitive than using spaces and asterisks (Figures FIGURE 4 Hello World is shown in a console (a typical
5 and 6). operating system)
6 | PERENC ET AL.

FIGURE 5 The outcome of the code in Listing 3

FIGURE 8 A console output of a disk drawing program

(additional libraries, e.g., SDL ‐ Simple DirectMedia


Layer are required). The provided API allows students to
generate graphics quickly and without frustration. The
presence of the display device was one of the factors that
enabled developing simple graphical games as presented
in Figure 9.
The third example of the Board capabilities is a disk
drawing task. The finished codes are shown in Listing 5
and Listing 6 and the visual outputs are in Figures 7 and
8. Even if both the codes seem similar, the visual
difference is substantial. The mathematics in both the
cases is exactly the same (checking open disk equation);
FIGURE 6 The outcome of the code in Listing 4 however, in the case of the console, a student has to
know that characters are not square, hence the straight-
forward implementation results in an ellipse. Moreover,
the code in Listing 5 uses Cartesian coordinates to
address a point on the screen while classical console
needs a character‐printing approach.

#include <ISA.h>

void setup() {

int i,j,r = 30;

for(i=0;i<64;i++)

for(j=0;j<64;j++)
FIGURE 7 A disk drawn with the Listing 5 code oled_setPixel(i+32, j, sqrt(pow(ri,2)
+pow(rj,2))<r);

void loop() {}
The mentioned graphical display offers also an
opportunity to generate simple graphical projects, which Listing 5: The source code for drawing a disk on the
would not be possible with the console approach graphical display.
PERENC ET AL. | 7

#include <stdio.h>
calls causes the game to stop until the player makes a
move. It is not possible to move beyond blocking calls
#include <math.h> without any user interaction. In the case of Arduino
int main(){ programming, this problem does not exist. The main loop
is running infinitely while most of user input reading
int i, j, r = 8;
functions are non‐blocking – actions such as pressing a
for(i = 0; i < 20; i++){ button or moving a joystick can be smoothly included in
for(j = 0; j < 20; j++) a game state. So even with only basic programming
knowledge, students were able to create some simple
printf("%s", sqrt(pow(10i,2) games on their own.
+ pow(10j,2))<r While attempting to write their games, students could
practice their programming skills and also see the results
? "@@": " ");
of their work. The assignment was interesting for them
printf("/n"); and gave them an opportunity to explore new algorithms.
} The goal could be achieved without any sophisticated
tools or software libraries. Figure 9 presents screenshots
return 0; of selected projects. The video recordings of the game-
} plays are available online [41].
The most commonly implemented game was Snake. The
Listing 6: The source code for drawing a disk in a console.
students were using various combinations of input and
display API calls to show the game board and present
6 | P R OJ E C T S D O N E B Y player scores. Another example of a popular game was
STU DENTS Tetris. The students were learning to process simple shapes
and to display them in the Cartesian coordinate system. The
The Educational Board and Arduino were introduced as game of Space Invaders allowed the students to learn how
a pilot class for first and second year, hence participating to use arrays. Among other games, there were Pacman,
students already had some basic knowledge of program- Tanks, Falling Fruit and simple arcade games. There was
ming. The first‐year students were finishing their first also one multiplayer implementation of Tanks in which two
part of the Introduction to Programming course while the boards communicated via Bluetooth.
second‐year students were more advanced as they had
already finished the entire course. During the classes, the
students were given two sets of tasks. The first consisted 7 | A R D UI NO MO B I L E V E H I C L E S
of tutorials with increasing difficulty to acquaint them
with every module available on the Educational Board, to The Educational Board was also used during IAS course
familiarize them with the board itself and to practice (third year of studies, an elective study path). The guiding
basic programming instructions using the new environ- idea of this course is to program an autonomous mobile
ment. Consequently, the loops were practiced using platform that would be able to drive ahead and navigate
LEDs, for example, creating a light animation known through an area, avoid obstacles while sensing the
from Knight Rider TV series, conditional statements were surroundings. To achieve this goal, the students have to
used to handle user input (buttons), for example creating create software that would drive the vehicle through a
a simple calculator or time‐based operations were maze with the use of Fuzzy Logic and/or a PID controller
introduced while generating a Morse signal from a (both theories’ details were given to the students by
hardcoded text. tutors). The used vehicles were primarily built by the
After completing tasks from the first set, each student authors and the students were supposed to expand them
progressed to the second one, which introduced activities by adding additional equipment of their choosing and by
closer to gamedev concepts, for example, a memory game developing the controlling software.
with eight LEDs visual pattern, an arcade game based on In the case of IAS course, the Educational Board was
the ability to keep the rhythm when pressing a button treated as a tool to facilitate an introduction to low‐level
during sound beeps and without them. hardware programming of sensors and actuators, so that
The biggest challenge of writing games using simple C after completion of the course the participating students
instructions and console programming is to prepare a could create more complex projects involving mobile
game loop that would work whenever there is any input platforms with different physical peripherals. It was
from the user. A simple while loop with scanf or getchar possible because the design of both the Board and
8 | PERENC ET AL.

FIGURE 9 Examples of games


created by first and second‐year students;
starting from top left: Tetris, platform
game engine, Pacman, two‐player tank
war game

vehicles is mostly unified – they share the same hardware ultrasound sensors to obtain distance readings between
(such as Arduino module, Bluetooth module or ultra- the vehicle and obstacles.
sound sensor) and programming concepts. They were given ample freedom in vehicle altering/
While the participants had basic knowledge of general construction tasks, which resulted in a variety of mobile
software programming, they lacked an intuition at the platform concepts, as shown in Figure 10. Students have
point where computer science meets electronics and also learned the concepts of control systems and
mechanics. Hence, the developed Board functions as a regulators (both PID and fuzzy). The video presenting
prototyping platform to which students can connect the their work is also available online [42].
supplied sensors and actuators of the handed mobile
platform and then interact with them through their own
software. Students were allowed and actually encouraged
to connect external devices necessary to create a moving
vehicle.
Such an approach allowed the students to gain new
programming experience in a controlled environment of
reduced physical influence. For example, the students
learned how to programmatically control a DC motor
with a pulse width modulated (PWM) signal by analyzing
dependence between the programmed signals and the
behavior of the platform’s wheels without the ground’s
friction interference, as it would normally happen.
Moreover, the majority of students realized the need
for writing optimal code for time‐critical tasks such as FIGURE 10 The vehicles constructed during classes of
sound travel time measurement as they needed to use Intelligent Autonomous Systems
PERENC ET AL. | 9

Besides the Arduino, students could also use onboard T A B L E 2 The results of the survey conducted among the
Raspberry Pi with a video camera as a source of second‐year students (rounded to integers)
additional sensory signal of the surroundings. Hence,
Grade Q1 (%) Q2 (%) Q3 (%)
the students practiced their creativity in three areas:
1 0 2 0
software interfacing hardware equipment, real‐time
image processing, and inter‐system communication. 2 6 13 2
3 14 28 20
4 52 31 34
8 | R E S U L T S AN D D I S C U S S I O N 5 28 26 43

To verify the students’ opinion about the courses and


Arduino, a survey was conducted in each group. The S1. The course encouraged me to obtain more
questionnaires in all three groups had similar questions knowledge in the field of Computer Science.
which were supposed to asses the overall perception of S2. I would like to take part in another course
Arduino supported courses. The survey was filled out by involving Arduino.
203 students of the first year, 123 students of the second S3. I would like that other courses would also involve
year and 21 students of the third year of Computer additional equipment enabling me to test the practical
Science (IAS course). The survey form was exactly the use of the presented material.
same for the first and second‐year students and included S4. Thanks to the possibility of experimenting with
the following questions: how a program works on a physical mobile platform I
have learned more.
1. How would you rate the usefulness of the acquired The results of the survey conducted among the first‐
knowledge during laboratories as a programmer? year students are presented in Figure 11. The usefulness
2. Will the ability to program Arduino devices be useful of the proposed course was negatively assessed by merely
in implementing your own ideas? 2% of students, 12% (Q2 grade 1 + grade 2) consider the
3. Would you like to attend programming classes carried gained knowledge not to be useful for implementing their
out on the presented educational Arduino board? own ideas. The negative approach to future classes with
similar activities was submitted by 5% of students, which
In response to each question, the students could corresponds to 11 individuals. Of the respondents, 85%
assign a number ranging from 1 to 5. In the case of Q1 claimed that the acquired knowledge will be helpful for
and Q2, the students rate the usefulness on the scale of 5 them as programmers, and 51% found it useful as a
to 1 (5: high, 1: low) and for Q3, the willingness to hobby. The majority (76%) received the course well and
participate in similar classes (5: the high will to would like to participate in more similar activities. One
participate, 1: strongly reluctant to more similar classes). out of five students was neutral to taking part in more
The survey results for the first and second‐year students classes involving Arduino programming.
are presented in Tables 1 and 2, respectively. The data from the second‐year students’ question-
The third‐year students were given questionnaires naires are presented in Figure 12. None of them showed
with four statements and 1 to 5 rating scale, indicating strong negative opinion about the usefulness of the
how much they agree with the presented statement proposed classes (for a programmer) and future such
(1: strongly disagree, 2: partially disagree, 3: neutral, 4: courses based on the use of a microcontroller. Respec-
partially agree, 5: strongly agree). Percentage results are tively, 2% and 6% of students were rather against this and
presented in Table 3. The statements were as follows: further classes on a similar matter. About 80% of the

T A B L E 1 The results of the survey conducted among the first‐ T A B L E 3 The result of the survey conducted among the third‐
year students (rounded to integers) year students (rounded to integers)

Grade Q1 (%) Q2 (%) Q3 (%) Grade S1 (%) S2 (%) S3 (%) S4 (%)


1 0 1 0 1 0 5 0 0
2 2 11 5 2 10 10 0 0
3 11 26 18 3 19 10 19 14
4 45 33 32 4 52 38 33 38
5 40 28 44 5 19 38 48 48
10 | PERENC ET AL.

FIGURE 13 Responses of Intelligent Autonomous System


FIGURE 11 Responses of first‐year students
Students

course participants were enthusiastic towards the course mobile platform, which means that the time spent on
and showed a willingness to continue their work with learning is not perceived by them as wasted. 81% of the
Arduino. This was reflected in the levels of participation students would like other courses to have practical
in the elective courses, 25% of them decided to continue equipment so that the learned knowledge can be applied
learning Arduino programming as part of the IAS elective practically. The majority (86%) of responses indicated
course. Both, the first and second‐year students found that thanks to the use of mobile platforms students are of
acquired skills more useful for them as programmers the opinion that they have learned more.
than as hobbyists. The responses were much more
restrained in assessing the usefulness of Arduino in their
own projects – there was a high percentage of neutral 9 | C O N C L US I O N S AN D
opinions. F U R T H E R PL A N S
The charts for questionnaires from IAS course
students’ are shown in Figure 13. Only 21 questionnaires The results obtained from the questionnaires indicate
were submitted (100% of the course participants), so each that the assumed approach brought quite a positive
answer has a higher impact on the score for each outcome. The students liked the classes and would like to
question. Only 14% of the students disliked the Arduino‐ continue studying similar courses. The use of additional
based course and found the presented knowledge useless, equipment—Arduino‐based Educational Board and Mo-
76% claimed the opposite, and 71% would like to bile Platforms—raised interest in the subject and
participate in other courses involving Arduino program- facilitated more understanding of the taught material.
ming. Respectively, 10% and 19% of students had a The students that were able to see tangible results of their
neutral attitude to the accomplished course and future work had greater motivation to learn. In addition, some
courses of similar subject. The students were very of the IAS course students decided to continue work
enthusiastic towards additional educational help, none related to this subject as part of their bachelor thesis. In
of them negated the statement concerning the practical addition, an interesting observation about a teacher’s
use of the presented knowledge, and none of them workload was made apparent during the classes: a
claimed that he/she would learn more without the properly prepared activity with readable handouts and
friendly documentation allowed students to quickly
process information and search for other sources of
knowledge such as, for example, books or online pages,
almost without absorbing the teacher. Meantime, the
teacher could work with the students that had difficulty
embracing the new platform and reaching the final goal.
The positive reception of the proposed teaching aids has
encouraged the authors to introduce the educational board
into programming for all students that attend any form of
“Introduction to Programming” classes. While the idea of
increased attractiveness and added range of human‐
machine interaction will be kept without major changes,
FIGURE 12 Responses of second‐year students we analyze the possibility of improving both hardware and
PERENC ET AL. | 11

software by introducing a couple of replacements. The 6. D. Topalli and N. Cagiltay, An Enriched Introduction to
audio output will be replaced with a tone generator. The Programming Course with Scratch, In 11. Bilgisayar ve Öğretim
current audio generator based on a digital‐to‐analog Teknolojileri Sempozyumu, ICITS 2017, Mayıs, pp. 24‐26.
7. C. Kelleher, et al., Storytelling alice motivates middle school girls
converter was not used by students at all due to a large
to learn computer programming, In Proceedings of the SIGCHI
amount of memory needed to fit acceptable samples along
Conference on Human Factors in Computing Systems, New
with interrupt‐driven code required to output those samples York, NY, USA, 2007, pp. 1455–1464.
in the background. The students have also complained 8. S. Uludag, M. Karakus, and S. W. Turner, Implementing IT0/CS0
about the limited functionalities of the graphical graphical with Scratch, App Inventor Forandroid, and Lego Mindstorms,
display so we would like to replace it with an RGB 320×240 Proceedings of the 2011 Conference on Information Technology
touchable one. The used Bluetooth module proved to be Education, West Point, NY, USA, 2011, pp. 183–190.
very problematic when more than 4 to 5 of them were 9. J. Cross, et al., A visual robot‐programming environment for
multidisciplinary education, 2013 IEEE International Confer-
running simultaneously. And as this technology is less and
ence on Robotics and Automation, Karlsruhe, Germany, 2013,
less frequently used, we would like to replace it with full
pp. 445–452.
TCP/UDP WI‐FI connectivity which could contribute to the 10. T. R. da Silva and E. H. da S. Aranha, Online game‐based
students’ designs becoming more interactive. We are also programming learning for high school students — A case study,
considering using a different CPU module. The Arduino In 2015 IEEE Frontiers in Education Conference (FIE), El Paso,
Due that we currently use has numerous powerful TX, 2015, pp. 1–8.
competitors (e.g., Teensy 3.6). However, in this case, we 11. J. Livovský, and J. Porubän, Learning object‐oriented paradigm
need to be sure that we maintain the learning curve still by playing computer games: concepts first approach, Open Comp
Sci 4 (2014), 171–182.
acceptable and fun for first‐year students that have never
12. R. N. Beyers and L. van der Merwe, Initiating a pipeline for the
written any code before. computer industry: Using scratch and LEGO robotics, In 2017
Conference on Information Communication Technology and
Society (ICTAS), Umhlanga, South Africa, 2017, pp. 1–7.
ACKNOWLEDGMEN T
13. N. Adamo‐Villani, T. Haley‐Hermiz, and R. Cutler, Using a
This study was financed by the Lodz University of serious game approach to teach ‘operator precedence’ to
Technology, Faculty of Electrical, Electronic, Computer introductory programming students, 2013 17th International
Conference on Information Visualisation, London, UK, 2013,
and Control Engineering as a part of statutory activity
pp. 523–526.
(project no. 501/12‐24‐1‐5418). 14. P. Lavin‐Mera et al., Mobile game development for multiple
devices in education, iJET 4 (2009), 19–26.
15. F. L. Khaleel, et al., The Study of Gamification Application
ORCID Architecture for Programming Language Course, Proceedings of
Izabela Perenc http://orcid.org/0000-0002-8761-4472 the 9th International Conference on Ubiquitous Information
Management and Communication, New York, NY, USA, 2015,
Tomasz Jaworski http://orcid.org/0000-0001-8600-3760
pp. 17:1–17:5.
Piotr Duch http://orcid.org/0000-0003-0656-1215 16. J. Paiva, J. Leal, and R. Queiros, Design and implementation of
an IDE for Learning Programming Languages Using a
Gamification Service, In Gamification‐Based E‐Learning Stra-
REFERENCES
tegies for Computer Programming Education, 2017, Hershey,
1. M. Resnick, Mother’s Day, Warrior Cats, and Digital Fluency: PA: IGI Global, pp. 295‐308.
Stories from the Scratch Online Community, In Proceedings of 17. G. Polito, M. Temperini, A Gamified Approach to Automated
the Constructionism 2012 conference: Theory, practice and Assessment of Programming Assignments. In: M. Chang et al.
impact. Athens, Greece, 2012, pp. 1‐7. (eds.) Challenges and Solutions in Smart Learning. Lecture
2. V. H. Allan, and M. V. Kolesar, Teaching computer science: A Notes in Educational Technology, Springer, Singapore, 2018,
problem solving approach that works, ACM SIGCUE Outlook 25 pp. 3‐12.
(1996), no. 1‐2, 2–10. 18. B. Huang, and K. F. Hew, Implementing a theory‐driven
3. J. Bennedsen, M. E. Caspersen, and M. Klling, Reflections on gamification model in higher education flipped courses: Effects
the Teaching of Programming: Methods and Implementations, on out‐of‐class activity completion and quality of artifacts,
Springer Publishing Company, Incorporated, 2008. Comp. Educ. 125 (2018), 254–272.
4. D. Özoran, N. Cagiltay, and D. Topalli, Using Scratch in 19. G. Barata, et al., Improving participation and learning with
Introduction to Programming Course for Engineering Students, gamification, In Proceedings of the First International Con-
2nd International Engineering Education Conference (IEEC2012), ference on Gameful Design, Research, and Applications ‐
vol 129, Antalya, Turkey, 2012, pp. 125‐132. Gamification ’13, Toronto, Ontario, Canada, 2013, pp. 10–17.
5. I. Ouahbi et al., Learning basic programming concepts by 20. M. Ibáñez, Á. Di‐Serio, and C. Delgado‐Kloos, Gamification for
creating games with scratch programming environment, Proce- engaging computer science students in learning activities: A case
dia Soc Behav Sci 191 (2015), 1479–1482. study, IEEE Trans. Learn. Technol. 7 (2014), 291–301.
12 | PERENC ET AL.

21. S. Azmi, N. Iahad, and N. Ahmad, Gamification in online 33. C. Martin, J. Hughes, and J. Richards, Designing Engaging
collaborative learning for programming courses: A literature Learning Experiences in Programming. In: P. Escudeiro, G.
review, ARPN J. Eng. Appl. Sci. 10 (2015), 1–3. Costagliola, S. Zvacek, J. Uhomoibhi, B. McLaren (eds.), Computers
22. S. Combefis, G. Beresnevicius, and V. Dagiene, Learning Supported Education, CSEDU 2017. Communications in Computer
programming through games and contests: Overview, character- and Information Science, vol 865, Springer, Cham, pp. 221–245.
isation and discussion, Olympiads in Informatics 10 (2016), 34. S. Deshmukh and V. Raisinghani, ABC: Application based
39–60. collaborative approach to improve student engagement for a
23. M. Ortiz, K. Chiluiza, and M. Valcke, Gamification in programming course, In 2018 IEEE Tenth International Con-
Computer Programming: Effects on learning, engagement, ference on Technology for Education (T4E), Chennai, India, 2018,
self‐efficacy and intrinsic motivation, Proceedings of the 11th pp. 20–23.
European conference on games based learning (ECGBL), At 35. H. Aldowah et al., Internet of Things in higher education: A
Graz, Austria, 2017, pp. 507–514 study on future learning, J. Phys.: Conf. Ser. 892 (2017), 012017.
24. P. Duch and T. Jaworski, Enriching computer science 36. M. Asadullah, and A. Celik, An effective approach to build smart
programming classes with Arduino game development,” In building based on Internet of Things (IoT), J. Basic. Appl. Sci.
Proceeding of 11th International Conference on Human System Res. 6 (2016), 56–62.
Interactions (HSI), Gdańsk, Poland, 2018, pp. 148–154. 37. D. Assante et al., Internet of Things education: Labor market
25. S. Ferrán et al., Correctness assessment of a crowdcoding project training needs and national policies, In 2018 IEEE Global
in a computer programming introductory course, Comp Appl Engineering Education Conference (EDUCON), Tenerife,
Eng Educ 26 (2018), 162–170. Spain, 2018, pp. 1846–1853.
26. Y. Jang, W. Lee, and J. Kim, Assessing the Usefulness of Object‐ 38. R. Chacón et al., Development of IoT applications in civil
based Programming Education Using Arduino, Indian. J. Sci. engineering classrooms using mobile devices, Comput. Appl.
Technol. 8 (2015), 89–96. Eng. Educ. 26 (2018), 1769–1781.
27. K. Karvinen, and T. Karvinen, IoT rapid prototyping laboratory 39. M. H. Shaikh, Study of Arduino for creative and interactive
setup, Int. J. Eng. Educ. 34 (2018), 263–272. artwork installations, In: B.S. Chowdhry, F.K. Shaikh, D.M.A.
28. F. M. López‐Rodríguez, and F. Cuesta, Andruino‐A1: Low‐cost Hussain, M.A. Uqaili (eds.), Emerging Trends and Applications
educational mobile robot based on android and Arduino, J. in Information Communication Technologies, IMTIC 2012.
Intell. Robot. Syst. 81 (2016), 63–76. Communications in Computer and Information Science, vol
29. M. A. Montironi, B. Qian, and H. H. Cheng, Development and 281. Springer, Berlin, Heidelberg, 478–488, 2012.
application of the ChArduino toolkit for teaching how to program 40. T. Jaworski and P. Duch, Projekty Studentów, available at https://
Arduino boards through the C/C + + interpreter Ch, Comp Appl github.com/InteligentneSystemyAutonomiczneIIS/ISAFirmware
Eng Educ 25 (2017), 1053–1065. 41. T. Jaworski and P. Duch, Projekty [Podstawy Programowania],
30. A. Behrens et al., MATLAB meets LEGO mindstorms—A available at http://pp.kis.p.lodz.pl/doku.php?id=public:projekty
freshman introduction course into practical engineering, IEEE. 42. T. Jaworski and P. Duch, ISAFirmware: Firmware for arduino
Trans. Educ. 53 (2010), 306–317. educational board, Inteligentne Systemy Autonomiczne, Instytut
31. V. Dolgopolovas, T. Jevsikova, and V. Dagiene, From android Informatyki Stosowanej, Politechnika Łódzka, 2018. Available at
games to coding in C‐An approach to motivate novice engineering https://www.youtube.com/channel/UCLjKTKvFybsxxnzlf1eBEcA
students to learn programming: A case study, Comp. Appl. Eng.
Educ. 26 (2018), 75–90.
32. D. Assaf, Enabling Rapid Prototyping in K‐12 Engineering
How to cite this article: Perenc I, Jaworski T,
Education with BotSpeak, a Universal Robotics Program-
Duch P. Teaching programming using dedicated
ming Language, Proceedings of 4th International Workshop
Teaching Robotics, Teaching with Robotics & 5th Interna- Arduino Educational Board. Comput Appl Eng
tional Conference Robotics in Education, Padova, Italy, Educ. 2019;1–12. https://doi.org/10.1002/cae.22134
2014, pp. 19–26.

You might also like