Authors Glívia Angélica R. Barbosa, Maria João Varanda Pereira, Luís M. Alves, Marcela Viana P. Almeida,
License CC-BY-3.0
EasyCoding – Methodology to Support
Programming Learning
Marcela Viana P. Almeida
Research Centre in Digitalization and Intelligent Robotics (CeDRI),
Polytechnic Institute of Bragança, Portugal
CEFET Minas Gerais, Brasil
a42929@alunos.ipb.pt
Luís M. Alves1
Research Centre in Digitalization and Intelligent Robotics (CeDRI),
Polytechnic Institute of Bragança, Portugal
lalves@ipb.pt
Maria João Varanda Pereira
Research Centre in Digitalization and Intelligent Robotics (CeDRI),
Polytechnic Institute of Bragança, Portugal
mjoao@ipb.pt
Glívia Angélica R. Barbosa
CEFET Minas Gerais, Brasil
glivia@cefetmg.br
Abstract
Knowing that the programming curricular units in the first year of engineering courses have a high
failure rate and, assuming that this failure is due, in large part, to the lack of motivation and the
lack of autonomy of the student to program in context outside the classroom, a methodology based
on activity guides using attractive web platforms is proposed. The proposed methodology aims
to facilitate both the planning of activities by the teachers and the autonomy and motivation by
students. In order to receive a first feedback about this work, the methodology is being used by
programming professors from Polytechnic Institute of Bragança, but in the near future it will be
also evaluated by professors from the Federal Center of Technological Education of Minas Gerais
and from the Federal Technological University of Paraná, both from Brazil. Following this work,
a system is being developed that allows the automatic construction of guides based on exercises
available from the web and systems that facilitate the collection of solutions and analysis of results.
2012 ACM Subject Classification Human-centered computing → Visualization systems and tools;
Software and its engineering → Imperative languages; Social and professional topics → Computer
science education
Keywords and phrases learning programming, teaching programming, automatic activity guides,
programming motivation
Digital Object Identifier 10.4230/OASIcs.ICPEC.2020.1
Funding This work has been supported by FCT – Fundação para a Ciência e Tecnologia within the
Project Scope: UIDB/05757/2020.
1 Introduction
School dropout and failure in higher education has been the subject of many research studies.
Student dropout is an international problem that has social consequences and affect the
results of educational institutions [1]. This is due to several factors, such as the lack of
1
Corresponding author
© Marcela Viana P. Almeida, Luís M. Alves, Maria João Varanda Pereira, and Glívia Angélica R.
Barbosa;
licensed under Creative Commons License CC-BY
First International Computer Programming Education Conference (ICPEC 2020).
Editors: Ricardo Queirós, Filipe Portela, Mário Pinto, and Alberto Simões; Article No. 1; pp. 1:1–1:8
OpenAccess Series in Informatics
Schloss Dagstuhl – Leibniz-Zentrum für Informatik, Dagstuhl Publishing, Germany
1:2 EasyCoding
motivation and dedication of students in the face of the challenges that are proposed to
them inside and outside the classroom. Following this context, Mendes [14] quotes that the
first programming curricular units at the Department of Informatics Engineering from the
University of Coimbra suffer from high failure and dropout rates, as reported in many other
high educational institutions. As Silva Filho [18] quotes, in Brazil, the private sector invests
around 2% to 6% of higher education institutions’ revenues in marketing, in order to attract
new students.
However, in order to keep students enrolled, just short and punctual experiments have
been made in higher education contexts [17, 13, 16]. Moreover, developing a programming
logic can be a complex and challenging task. This is because, according to Moreno [15]
and França et al. [8], in addition to knowing the basic instructions, the individual needs to
understand how to use them to solve different problems. Furthermore, the applicability of this
content in other areas has expanded the profiles of people interested in learning it (e.g., high
school students). Therefore, it is necessary to diversify the approaches to teaching/learning
programming so that they are suitable for different profiles of interest [8, 15]. Regarding
this issue, given the constant unsatisfactory results in the first programming disciplines of
technology courses in Portugal and Brazil, a larger study on new methodologies to support
programming learning become essential in the search for better teaching quality and greater
enrollment of students.
Following the results analysis of the project NoviBraga [4], the objective of this study is
to avoid the lack of dedication of the first year programming students. To this end, teaching
methodologies are being developed to improve the quantity and the quality of the slots of
time that the student uses to program outside and inside classroom and consequently improve
the learning outcomes. According to Gomes and Mendes [9], when talking with programming
teachers, most of them claim that students don’t know how to program because they don’t
know how to solve problems and don’t have enough mathematical background. There are lots
of tools on the web that can be used by programming students and almost all of them have
some motivating features like animations, control flow graphs, interactive debugging, syntax-
direct editors, collaborative programming, chats, programs to complete, games, submission
platforms, rankings and so on. All these features can turn the programming activity more
attractive and easier if they are correctly explored. Moreover, these tools can be combined
to join the best of each one. In order to achieve this, teachers also need some support to be
able to propose the appropriate set of activities along the semester and get feedback from
the students. An activity guide is needed, and the exercises must be carefully chosen. It is
difficult to find in the web these activity guides already constructed. The main contribution
of this work is to propose a methodology based on web platform activities and to create
a system to automatically produce activity guides. These guides are based on free web
platforms whose features we believe that can motivate students to program. This work
presents two research questions:
1. Does the use of web systems that allow the resolution of programming exercises motivate
students to work outside the classroom? (Section 3)
2. Is it possible to systematize and automate the creation of programming activity guides
for both the teacher and the student? (Section 4)
Besides this introduction where some related works are presented, the section 2 introduces
the methodology proposed. The application of the activity guides is discussed in section 3
and based on this experience, a system to automatically generate those guides is presented in
section 4. In section 5, some conclusions will be presented as also some clues for future work.
M. V. P. Almeida, L. M. Alves, M. J. V. Pereira, and G. A. R. Barbosa 1:3
2 Methodology
In order to follow our approach, the following steps are proposed:
1. Collection of information on C programming web teaching platforms;
2. Creation of a classification system for web platforms, with the objective of using them
inside and outside the classroom context;
3. Classification of platforms found and creation of a website to make this study available
to C programming teachers;
4. Creation of activity guides to be developed during the first programming semesters with
the students, with respective monitoring;
5. Validation of the methodology, based on the results of the monitoring, the students’
academic success and questionnaires for collecting opinions from teachers and students;
6. Development of a system that allows teachers to assemble and generate new activity
guides, according to characteristics pre-defined by the classification model.
The result of the three first items can be seen in [3]. At the end of the project’s develop-
ment, the results will be analyzed and validated, and future perspectives and proposals for
improvement of the study will be pointed out.
3 Application of the Activity Guides
The present study considered an introductory programming course (Programming I) in
the context of higher education at Polytechnic Institute of Bragança (IPB). This course
unit has 218 enrolled students spread over two courses, namely, Informatics Engineering
and Management Informatics. Programming I is in the first year, first semester of our two
courses. At the end of these course unit, the student is expected to be able to design solutions
and implement C programs that solve small/medium complexity problems. In order to do
that, the student must apply concepts of imperative programming in the C programming
language, coding function-based structured programs to manipulate data structures. The
student must also be able to use an Integrated Development Environment (IDE) including the
debugging tool to get successful solutions. In this case, the IDE is the Microsoft Visual Studio
Community 2019. The syllabus of this course contains C language topics that are commonly
taught in introductory programming at the university level. Like other cases found in the
literature, Programming I also reveals a low student success rate. The teaching-learning
programming process is a difficult task, as is known to the community involved. This process
faces several challenges, the most important of them, it is to improve student motivation
to learn and to ensure that they do not give up learning. Another important challenge is
to enroll the students to work outside of the classroom. Aware of these challenges, in the
first semester of academic year 2019/2020 we applied the proposed approach to hold the
students involved in programming tasks. Thus, we create a set of activity guides that cover
the whole syllabus of programming I. These guides use a set of web platforms with exercises
well contextualized. In the classes, the teacher gave a brief description of each of these guides,
whose exercises were solved by the students inside and outside of the classroom. In a first
phase, we proposed the activity guides to 65 students that are divided into two different
classes. We decided to involve only these students for two reasons:
(i) The teacher, one of the authors of this paper, taught both classes, so he had full control
of the students;
(ii) The idea is to start just as a pilot project and adjust the guides during the semester.
ICPEC 2020
1:4 EasyCoding
The Figure 1 presents the results of the activity guides application. We enumerated the
activity guide from 1 to 5 and they are divided by topic. For each topic we have more than one
activity guide. The table shows also the web platforms used by the students to do the tasks. A
qualitative research was carried out on the main tools available online, which support teaching
C programming, focusing mainly on features considered useful for combating school dropout.
The chosen platforms are URI Online Judge, Codeboard, CPuzzles, C Tutor, CodinGame
and Coderbyte [11, 5, 12, 10, 7, 6]. They were chosen based on their characteristics like
quantity of exercises, contents scope, ease of use, free access and some extra features like
tutorials, animation, collaborative work and automatic assessment. All these web platforms
have different purposes and they cover a set of different functionalities:
1. URI Online Judge is a web portal that offers a variety of programming problems for the
students to solve and share knowledge, besides having a teachers’ module called URI
Online Judge Academic that lets the teacher manage the activities, students’ submissions
and grades, without having to use any other system. Its main features include real-time
correction, available problems separated by categories and use of gamification concepts,
with the application of a of a badges and ranks reward system.
2. Codeboard is a web-based IDE to help the students to learn programming by allowing the
teachers to create exercises as they wish and letting the students run and compile their
own solutions inside the IDE and after submitting to the teacher, that has total access
to the student answers. Codeboard also allows automatic grading to help the exercises
correction and has the possibility of exporting the results in spreadsheet format.
3. CPuzzles is a repository that contains a collection of C puzzles and solutions to supplement
the activities and assist the teacher. The puzzles inside the platform are divided in eight
groups, each one regarding a C subject. Each puzzle has a difficulty rating, in order to
help the teacher choose which exercise better meets students needs. Besides that, the
teacher can find an example of solution and a "code skeleton", which helps the student to
start the exercise.
4. C Tutor is a tool that assists teachers and students when writing code, making them
understand what happens as the computer runs each line of code and visualize each state
of data structures being used. When applicable, C Tutor also helps the visualization of
the contents present in the heap and the pointers. Finally, the system allows collaborative
work, by letting different users change the same code simultaneously and has an online
chat that allows students to discuss each problem.
5. CodinGame is a gamified platform for teaching programming languages. The system uses
game puzzles with high level animation and different difficulty levels. The website has its
own IDE where the students can run and compile their own code and submit their result
to the platform that has its own automatic correction. CodinGame also has a reward
system with the application of badges and ranks. There is still a forum dedicated to the
users for any doubts about the puzzles.
6. Coderbyte is a web system developed to offer challenges and courses with the aim to help
users to prepare for upcoming job interviews, as well as practicing more programming.
The system has an IDE where the students can run, compile and test if their solution is
valid, by going through the system’s automatic correction. The code challenges range in
difficulty and can be solved using different programming languages.
In Figure 1 we can see the code and the name of each exercise made by the students.
These codes were obtained by the platform itself. In the last three columns of Table 1 we can
see the number of total students to whom the activities were proposed, the number of student
submissions and the number of successful submissions. Based on these numbers we quickly
M. V. P. Almeida, L. M. Alves, M. J. V. Pereira, and G. A. R. Barbosa 1:5
Figure 1 Results of Activity Guides Application.
realized that the student involvement is much greater in the first activities and it has been
decreasing as the subjects have become more complex. The deadline for students to complete
the tasks of the last three activity guides is still open, so it is expected that more students
will complete them. The Coderbyte and CodinGame web platforms had less adherence by
students. In fact, some of the students referred some difficulties to use and to understand
the problem statement of these platforms. All the activity guides were transferred to the
students using Sakai platform. This is a web platform similar to the Moodle used in IPB.
During the classes, the teacher briefly explained the tasks for each of the activity guides.
The students received the activity guides by institutional email. The text of the email always
referred some encouragement words. Unfortunately, not all students read institutional email,
especially those who miss classes. We need to address this issue during the next semester
and use a different approach to convince students to do the activities.
After each activity the teacher opinion was collected and used to improve the next guides.
The idea now is to intensify the construction of new activity guides using the platforms
that had more success from the students’ point of view and also the ones that are more
appropriate for the contents of Programming II. Since data structures will be better explored,
we are aware that animation tools will be more adequate and useful.
4 A System to Automate the Activity Guides Construction
A system (Figure 2) called EasyCoding is being developed to automate the guides construction
and help teachers to produce new activity guides in order to use them with the students inside
and/or outside the classroom, with the aim of facilitating their planning and to motivate the
students by performing these exercises. The technologies being used for the development
of this platform are Javascript with JQuery library to simplify the scripts interpreted on
the client-side browser, jsPDF library which is a widely used solution for client-side PDF
generation, in order to generate the activity guides for teachers and students, and Bootstrap
front-end library to help prototype the system for a friendly and responsive experience. As a
ICPEC 2020
1:6 EasyCoding
Figure 2 EasyCoding - automatic generation of programming activity guides.
static platform, the system is being hosted on GitHub Pages host service. Therefore, the
system is capable of automatically generating activity guides, in order to explain to students
and teachers the correct use of each chosen web platform. The proposed exercises were
collected from the studied web platforms (when they had exercises available as a feature)
and also from the book “Linguagem C”, by Luis Damas. When using the system, the teacher
only has to choose:
1. Inside or outside the classroom context.
2. Programming subject.
3. Platform in which s/he wants to apply the exercises.
4. The exercises themselves.
Each exercise will have an estimated time in which the teacher can rely on to compose
her/his activity guide. Actually two guides will be produced, one for the teacher to prepare
the session and one for the student, that will receive it from the teacher, to follow the guide.
The results will be automatically collected, and the teacher can use them as s/he wants. The
system proposed is already available in [2].
The main reason for the generation of these two types of activity guides (teacher and
student guide) is that each web platform being used has its own way of use. Some of them,
like URI Online Judge and Codeboard have different functionalities for teachers and students.
Because of this, each guide is developed to help their understanding of the steps they have
to complete to accomplish the task. Thus, the teacher’s guide will assist the teacher on how
to use the web platform chosen to add the activities needed and show them to the students.
The students’ guide will assist them on how to have access to the web platform, perform the
given activities and send their results to the teacher. In order to evaluate the acceptance of
the analyzed web platforms, an interview was carried out with the students who participated
in this study. The interview revealed that the URI Online Judge, Codeboard and Python
Tutor platforms had a greater acceptance among the students. According to them, the other
ones seemed complex or without significant benefits. Due to this result, we opted to keep
on working, this next semester, only with these 3 web platforms and CPuzzles, to collect
exercises. Moreover, the EasyCoding system is being implemented to provide activity guides
using these 4 platforms also. Examples of generated teacher and student’s guides are shown
in Figure 3.
M. V. P. Almeida, L. M. Alves, M. J. V. Pereira, and G. A. R. Barbosa 1:7
Figure 3 First page of a teacher and a student’s activity guide applied.
5 Conclusion and Future Work
In this paper, a methodology based on the creation of programming activity guides was
described. The concrete application of the proposed approach to IPB students was explained
as well and the results from this initial research were analyzed. From the first semester
of application, we are able to conclude which are the most appropriate tools and what
kind of activity guides should be produced to enrich our system and improve the student’s
motivation. The student opinion about this was also collected and used to improve the
guides. The developed system has a database of activities that will be used by the teachers
to automatically generate more guides as they wish. At the end of this second semester,
the success rate of the Programming I and Programming II subjects will be analyzed and
this study will be able to show if the application of these activity guides with the use of
web platforms that have motivating features was satisfactory. For that, student and teacher
opinions will be collected again.
References
1 Leandro S Almeida and Rosa Vasconcelos. Ensino superior em portugal: Décadas de profundas
exigências e transformações. Innovacion Educativa, 2008.
2 Marcela Almeida. Easycoding – metodologia de suporte à aprendizagem de programação.
https://marciviana.github.io/projeto_mestrado.html. Accessed: 2020-04-01.
3 Marcela Almeida. Metodologia de suporte à aprendizagem de programação. https:
//mestrado-marcelaviana.webnode.com/. Accessed: 2020-04-01.
4 Luís Alves, Dušan Gajić, Pedro Rangel Henriques, Vladimir Ivančević, Maksim Lalić, Ivan
Lukovic, Maria João Pereira, Srđan Popov, and Paula Tavares. Student entrance knowledge,
expectations, and motivation within introductory programming courses in portugal and serbia.
47th European Society for Engineering Education (SEFI 2019), pages 1354–1363, 2019.
5 Codeboard. Codeboard – the ide for the classroom. https://codeboard.io/. Accessed:
2020-04-01.
6 Coderbyte. Code screening, challenges & interview preparation. https://coderbyte.com/.
Accessed: 2020-04-01.
ICPEC 2020
1:8 EasyCoding
7 CodinGame. Play with programming - codingame. https://www.codingame.com/. Accessed:
2020-04-01.
8 RS d França, VFS Ferreira, LCF de Almeida, and HJC do Amaral. A disseminação do
pensamento computacional na educação básica: lições aprendidas com experiências de li-
cenciandos em computação. In Anais do XXII Workshop sobre Educação em Computação
(WEI-CSBC). sn, 2014.
9 Anabela Jesus Gomes and António José Mendes. A study on student performance in first year
cs courses. In Proceedings of the fifteenth annual conference on Innovation and technology in
computer science education, pages 113–117, 2010.
10 Philip Guo. Python tutor – visualize code and get live help. http://pythontutor.com/.
Accessed: 2020-04-01.
11 Universidade Regional Integrada. Uri online judge. https://www.urionlinejudge.com.br/.
Accessed: 2020-04-01.
12 Bradley Kjell. Cpuzzles. https://chortle.ccsu.edu/CPuzzles/CPuzzlesMain.html. Ac-
cessed: 2020-04-01.
13 Christian Maekawa, Walter Nagai, and Claudia Izeki. Relato de gamificação da disciplina
projeto e análise de algoritmos do curso de engenharia de computação. In Anais dos Workshops
do Congresso Brasileiro de Informática na Educação, volume 4, page 1425, 2015.
14 António José Mendes, Luis Paquete, Amilcar Cardoso, and Anabela Gomes. Increasing student
commitment in introductory programming learning. In 2012 Frontiers in Education Conference
Proceedings, pages 1–6. IEEE, 2012.
15 Julián Moreno. Digital competition game to improve programming skills. Journal of Educa-
tional Technology & Society, 15(3):288–297, 2012.
16 Walter Nagai, Claudia Izeki, and Rodrigo Dias. Experiência no uso de ferramentas online
gamificadas na introdução à programação de computadores. In Anais do Workshop de
Informática na Escola, volume 22, page 301, 2016.
17 Walter Aoiama Nagai and Claudia Akemi Izeki. Relato de experiência com metodologia ativa
de aprendizagem em uma disciplina de programação básica com ingressantes dos cursos de
engenharia da computação, engenharia de controle e automação e engenharia elétrica. Revista
de Exatas e TECnológicas, 4(1):18–27, 2013.
18 Roberto Leal Lobo Silva Filho, Paulo Roberto Motejunas, Oscar Hipólito, and Maria Beatriz
de Carvalho Melo Lobo. A evasão no ensino superior brasileiro. Cadernos de pesquisa,
37(132):641–659, 2007.