Cardoso 2017 PDF
Cardoso 2017 PDF
Abstract
Usually, in course units of programming, the process begins with the teaching of algorithms, and later
the knowledge of logic learned being applied to a specific programming language.
In the course of Informatics Engineering of the Informatics Engineering Department of School of
Engineering, Polytechnic Institute of Porto (ISEP/IPP) one of the course units that first directly deals
with this training is called APROG (unit of Algorithm and Programming). This unit starts with the
teaching of algorithm followed by the programming language JAVA.
In recent years, we used the EduScrum teaching methodology, where the student follows a set of
procedures focused on the needs and indications of a Product Owner. The subject is structured in:
programming fundamentals, programs codification, classes, modular decomposition, arrays and text
files manipulation.
During the next year we intend to add to the process a new tool, with the main goal of evaluating its
potential for the teaching process of programming. This tool is the VPL (Virtual Programming Lab) that
will be incorporated into the Moodle (Modular Object-Oriented Dynamic Learning Environment) of the
course unit of APROG. With this study, we intend to analyse the potential of the tool and verify if it is
possible to provide to student’s validation of their own programs by previously providing a set of data.
In this way, we will have an overview about the potential of the tool and correlate the results with its
pedagogical potential.
This paper is part of a preliminary study on virtual laboratories in programming teaching.
Keywords: Teaching programming, algorithms, Learning Management System (LMS), EduScrum,
Virtual Programming Lab.
1 INTRODUCTION
Given the importance and relevance of computers and information technology in contemporary
society, teaching programming becomes essential for the development of computer applications and
for technology evolution.
The training of professionals in this area is very diversified and one of the fundamental roles remains
to be played by Higher Education Institutions linked to the Engineering areas and in particular in the
field of Computer Engineering.
This document intends to present a reflection on the teaching process of programming in the School of
Engineering, Polytechnic Institute of Porto using for this purpose one of the basic course units,
APROG.
In APROG, in the last years, an EduScrum methodology was adopted using LMS (Learning
Management System) Moodle (Modular Object-Oriented Dynamic Learning Environment).
This study intends to evaluate the use of virtual programming laboratories in teaching programming,
using, for this, some classes of prototype in the next academic year.
7147
Management Systems (LMS) became one the most used and powerful tool to promote learning, in
which educators can define an environment where learners can access resources, research, drills and
assessment tools.
1.3.1 LMS
LMS is a framework that interconnects both sides of the learning process simplifying the relationship
between teachers and students. LMSs advocate a new teaching paradigm, breaking with a logic of
face-to-face and centralized teaching, facilitating access to teaching materials and providing
assessment mechanisms [1]. They promote teacher-student communication (synchronous or
asynchronous) and the simplification of the learning process by providing resources that reinforce
student motivation and an easier understanding of program content. LMS are also a valuable tool to
teachers helping them to manage the learning process, identifying and evaluating learning and training
goals and collect data to supervise and monitor the process to reach the goals.
In recent years, LMS has been raised its importance in schools at various levels, from the basic to the
university linking teachers, students and community stakeholders with a single platform and improving
the workflow efficiency and productivity.
1.3.2 Moodle
In Portugal Moodle is certainly the most popular and widespread LMS.
Moodle is an open source software under General Public Licenses (GNU), with a business model that
allow to use some basic elements for free, but charge for extra options. It is often used for distance
education, blended learning, face-to-face classroom and other modes of e-learning in companies,
schools and universities.
In order to use Moodle, it is just needed a basic computer, an internet connection and internet
navigation skills. So, to the average student is very simply to use Moodle, almost like use Social
Media, doing comments, posts, view or share pictures, videos, etc.
Table 1. Number of registered students in APROG in the most recent school years.
2013/2014 351
2014/2015 361
2015/2016 383
2016/2017 343
These numbers are the result of the annual admission of, usually, more than 250 students (from
national access contest plus others from special contests), and the remaining ones are related with
retention of students from previous years.
7148
2 Identify and describe the requirements of a problem, analysing it, design an algorithm for its
computational solution and conceive an appropriate test? Plan for its validation.
3 Know and understand Java programming language in the perspective essentially procedural
and apply it to algorithms? Implementation. Testing the solutions using the appropriate test
plan.
4 Analyse and designing algorithms as models of computational processes structured in modules,
creating and reusing modules and implement them.
5 Know, understand and use indexed data structures as well as manipulate text files.
6 Apply the acquired knowledge to solve real problem.
In the case of APROG, the course unit used in the case study that carries out, the curriculum unit
form, establish this sequence of contents: programming fundamentals, programs codification, data
types reference: classes, modular decomposition, data types reference: arrays, text files manipulation
and developing applications.
To achieve that goal, in APROG, the students start programming with JAVA language.
APROG usually has about 350 students every year. Theoretical classes involve all the students that
attend the course unit. This kind of classes are taught at various moments and typically we have about
75 students on each theoretical class which is taught in an amphitheatre. Each one of those classes
are an important moment for the process of programming learning and, usually, where the main
programming concepts are transmitted.
It is however verified that the students often skip theoretical classes, what could compromise the
learning or the acquisition of the fundamental knowledge of the programming by them. Thus, to
reinforce the transmission of this knowledge was created theoretical-practical classes.
The main difference between theoretical and theoretical-practical classes are:
− Reduction of the number of students (about 50% less);
− Explanation of some solved exercises related with the theoretical topics of the week.
The third set of classes are the practical ones where students work in a class room with computers,
and where they apply their knowledge of theoretical and theoretical-practical classes. The number of
7149
students in each class is about 20 and, usually, they work in pairs. During these classes, the students
must codify computer programs in the selected programming language (in this case JAVA) to solve a
set of problems proposed by the teacher and available in Moodle. To codify, students use an
Integrated Development Environment (IDE) which has been, in the recent years, NetBeans.
Number of
Class type Hours by class Total week hours
classes by week
T 1 1 1
TP 1 1 1
PL 2 2 4
With so many students and hours of classes, several teachers are needed to ensure the teaching.
In the last academic year the distribution of teachers by type of class was as shown in the table 3.
Class type T TP PL
Number of teachers 1 3 7
Number
Sprint Contents
of weeks
1 4 Algorithms
2 2 Implementation of algorithms in Java and modular decomposition
3 3 Arrays and files
4 3 Integrative application of all contents
2.3.1 EduScrum
On the last years on these course unit, we applied EduScrum methodology.
7150
As known, teaching computer programming is a complex and challenging task for any teacher, mainly
for those who have beginning students. This activity is very different from teaching any other subject,
so the approach should be different to.
Scrum is a framework for developing and sustaining complex products. Therefore, it is widely used in
software development and became mainstream in this area and it been used as an iterative and
incremental agile software development framework. Companies use the Scrum methodology to
promote team work and to foster a productive and enjoyable way of working. Although Information
Technology (IT) is the preferred field of application for Scrum, its use has been tested in many areas,
including education.
So EduScrum is a variation of Scrum for the educational system where students are responsible for
the learning process by teacher delegation [2]. In EduScrum there are six formal events: Team
formation, sprint planning, stand-up meeting, sprint review, sprint retrospective and personal
reflection.
The scrum team own a board that gives an overview and the structure to make the group’s work
transparent. The work is organized by sprints, usually of three weeks each. There must be a sprint
planning meeting to define and clarify the sprint goals and every next session should start with a short
(five minutes) stand-up meeting. In this meeting, it should be remembered what have already been
done, defined what should be done in the present session and, if there is any blocking take advices
and replace the work. During sessions, the Scrum board must be updated after each changing.
In EduScrum methodology there are roles for team members, such as Product Owner (the teacher),
the Scrum Master (one of the students) and the other team members (the other students). Student
team should be self-organizing and multi-disciplinary.
The team must be autonomous and responsible, flexible and collaborative, creative and motivated.
Weeks 1 2 3 4 5 6 7 8 9 10 11 12
PL A A A A
At the beginning of each sprint, there must be a sprint planning meeting, where the teacher presents
the team formation (which can have adjustments between sprints), the global learning objectives and
the global work planning.
At the beginning of the first class of the week (5 to 10 minutes) the week's work should be planned
indicating:
• What is expected of the group: learning objectives and evaluation acceptance criteria;
• Exercises to be solved in the week (each task with an indication of the units of effort), by what
order, and by whom, balancing the units of effort per student.
Students must begin to carry out their work according to plan and register the Scrum board with the
work situation. Scrum board is an essential and mandatory tool that must be always updated and
available for all team members and for the teacher.
7151
At the beginning of the second class of the week students and teacher must have a brief stand up
meeting where each student must answer:
− What was done?
− What am I going to do today?
− Is there any blockage?
After an assignment and its verification by another colleague the teacher can ask any team member
about to better gauge if students understood what they did. If the assignment have errors or the
students couldn’t answer in an accurately way, teacher should not accept the assignment order to
redone it.
At the end of each sprint there must have a sprint review where students will solve, individually, a set
of exercises. One week after the sprint review the teacher should disclose to students the results of
sprint evaluation. The final grade of each sprint is calculated be:
− 30% sprint tasks assessment (heavy average of tasks performed successfully);
− 70% mark individual evaluation.
After that students should have a moment to do a sprint retrospective and a personal reflection by
each student.
In central area of Fig. 2 we can see how the contents are available to the students, organized by a first
section (general) that contains examples of exams, announcements, news and a welcome message
for students. Below are sections (per week) with content for each of the weeks, by class type, and may
contain other materials, suggestions for studies, messages, or link for submission of assignments for
the evaluation.
On the left side are available some functionalities like request print services, the list of all participants
in the course unit, or access to the contents distribution by week.
7152
Figure 3. APROG Moodle assignments submissions
In Fig. 3 there is an example of information about the assignments statistics, namely the number of
students enrolled in Moodle, the number of assignments submitted, the deadline for submission and
the time remaining for the submission limit.
So, Moodle is a simple and efficient way to provide contents and promote communication between
teachers and students.
3.1 VPL
VPL is an open source software product developed by the Department of Computer Science and
Systems, University of Las Palmas de Gran Canarias, Spain. This tool allows the management of
programming assignments on Moodle, and the incorporation of the software development environment
in a virtual classroom. The architecture contains a Moodle module, a source code editor applet and a
special Linux process that runs as background process, commonly called a daemon, which allows the
remote execution of programs in a secure way. VPL helps out in the follow-up and personalized and
continuous orientation of the student's learning process, thus contributing to address the difficulties
that the student faces in carrying out programming activities. It intent to provide a simple and intuitive
development environment, in particular to new students entering the programming courses.
7153
Nowadays, ethical and moral issues are very important and matters like plagiarism are crucial to the
institutions credibility [4]. VPL includes a tool which allows to detect plagiarism [5] among source code
searching for similarity between files. The tool has the main goal to detect plagiarism among
submissions for the same task by different students in a course. However, it can include other
sources, like submissions for the same task in previous years or similar tasks from other sources.
Learning to program is a difficult process to many students. To learn to programme computers student
must have motivation and to program a lot. That is a hard task that demands a lot of effort and
training. The assignments may present specific difficulties for the students, mainly for those you never
programmed before. So that requires a constant monitoring by the teacher. Usually, until the work is
evaluated, the students do not know if they did correctly their tasks. In addition, assessment requires
time and effort by the teacher due to the number of students, the number of submissions required and
their complexity. The availability of an automatic grading tool [5, 6] to assist personalized monitoring
and guidance in a continuous learning process, will reduce the initial difficulties faced by the student,
improving students’ programming skills and optimizing the teaching staff time [7].
All students will have the same assignments, and will be evaluated in the same way. The expectation
is that those who used VPL will be able to practice more because they will need less supervision from
teachers to verify the results.
With this model is expected that teachers will spend less time assessing assignments. However, in the
first instance, they will need more time to prepare the environment to use VPL, as well as building
exercises and validation data so that they can be evaluated in an automatic way.
4 CONCLUSIONS
In this paper, we present a work in progress that is being carried out in Informatics Engineering
Department of School of Engineering, Polytechnic Institute of Porto and where combining technologies
and methodologies is expected to provide an even more effective teaching learning process to
students of Computer Engineering.
7154
With this preliminary study related to Virtual Programming Labs in laboratories in programming, we
intend to study the impact of virtual laboratories on learning. We will use a real unit course on a real
course of Computer Engineering to promote and support his case study.
We have the expectation that the process will lead to an improvement in the programming learning
process. If that happens, the use of the VPL should be extended to all APROG students and, if
possibly, to other course units or even to other courses.
ACKNOWLEDGEMENTS
This work was partially supported by the European Union’s Horizon 2020 research and innovation
programme under Grant Agreement No. 732049 – Up2U.
REFERENCES
[1] E. Dahlstrom, D. Christopher Brooks, and Jacqueline Bichsel. The Current Ecosystem of
Learning Management Systems in Higher Education: Student, Faculty, and IT Perspectives.
Research report. Louisville, CO: ECAR, 2014. Retrieved from http://www.educause.edu/ecar.
[2] J. Sutherland, Scrum: The Art of Doing Twice the Work in Half the Time, Crown Business, 2014.
[3] J. Rodríguez-del-Pino, E. Rubio-Royo and Z. Hernández-Figueroa, “Uses of VPL”. 5th
International Technology, Education and Development Conference (INTED), pp. 743-748, 2011.
[4] V. Crittenden, R. Hanna, and R. Peterson. "The cheating culture: A global societal
phenomenon.", Business Horizons pp. 337-346, 2009.
[5] J. Rodríguez-del-Pino, E. Rubio-Royo and Z. Hernández-Figueroa, "A Virtual Programming Lab
for Moodle with automatic assessment and anti-plagiarism features," International Conference
on e-Learning, e-Business, Enterprise Information Systems, & e-Government, 2012.
[6] A. Patil, "Automatic grading of programming assignments", 2010.
[7] D. Thiébaut, "Automatic evaluation of computer programs using Moodle's virtual programming
lab (VPL) plug-in.", Journal of Computing Sciences in Colleges 30.6, pp. 145-151, 2015.
7155