Programming is one of the basic skills that students must acquire. However, learning to program is not an easy task. Also teaching programming is an arduous but challenging task, requiring close follow-up and constant and meaningful feedback.So the main question is: how can we help teachers and students to achieve these goals? We identified a tool that can be useful to this purpose. That is Virtual Programming Lab (VPL), a Moodle plugin that allows students to submit their code and get prompt feedback without the teacher's intervention. In order to test this concept, an experiment was performed with several classes of beginner programming students, in two editions of Algorithms and Programming course unit of the degree in Informatics Engineering lectured at the Informatics Engineering Department at the School of Engineering, Polytechnic Institute of Porto. The students were challenged to test their assignments in VPL with a set of test values previously defined by the teachers. After the experiments, we used surveys to gather the involved students' and teachers' opinion, and more than 70% of the students answered that they considered the VPL an added value for the teaching-learning process. The dynamics verified in the classes, the general opinion of the teachers, and the acceptance and participation of the students allow to classify the experience as positive.
K E Y W O R D Sautomatic assessment, Java, teaching programming, virtual programming lab (VPL), eduScrum
| INTRODUCTIONNowadays information technology is everywhere. However, only 50 years ago was its use limited to scientists and some strong sectors like banking. By the end of the last century, with the generalized use of personal computers and, later, with the decrease of prices and overall performance improvement in laptops, the use of computers was extended to all areas of activity and for a myriad of uses. Nonetheless, for computers to be useful, software is needed. Thus software development is a crucial activity for technological development in the era of information and knowledge. Therefore, also teaching programming has become essential for the development of computer applications and technology at large.Computer-related jobs have huge employability and, usually, good salaries (Mehta & Uhlig, 2017). There is a great demand for professionals in this area, and they all must have programming skills. As mentioned by Mehta and Uhlig (2016), there are not enough students enrolling in computer science degrees to narrow the gap between candidates and job openings. These professionals, mainly, graduated in higher education institutions linked to engineering areas and, in particular, in the field of computer engineering (Elliott, 2017).