polito.it
Politecnico di Torino (logo)

Gamification applied to Java development and testing

Matteo Favretto

Gamification applied to Java development and testing.

Rel. Marco Torchiano, Riccardo Coppola. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2023

[img]
Preview
PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (1MB) | Preview
Abstract:

Gamification is defined as the use of game design elements in non-game contexts. Such elements include scores, leaderboards, as well as visual elements like progress bars or customizable avatars, but also social aspects like user interactions, discussions and competition. The purpose of gamification is to enhance users' engagement and participation in an activity, therefore promoting desirable behaviours by the user as well as discouraging undesirable ones. Gamification has been applied in various fields and contexts, from habit design to fitness, as well as learning and education, where it has shown a powerful effect in encouraging user's engagement and participation in learning experiences, and therefore enhancing the didactic effect altogether. An example of this is the gamification website Exercism, a platform where users can learn coding concepts for various programming languages by being rewarded when submitting a correctly solved exercise, interacting with each other by discussing and voting each other's submissions, and exchanging virtual points with customization items for their avatars. The goal of this thesis work is to explore the efficacy of gamification concepts and platforms on helping students learning programming concepts, with the focus of the experiment being on the students attending the Object-Oriented Programming course in the Bachelor's Degree in Computer Engineering at Politecnico di Torino. Specifically, the gamification experience that has been designed for this work aims at helping students understand and apply concepts regarding the unit testing of Java applications, the language being taught in the course. Unit testing refers to the activity of testing individual methods and functions in a program by calling them with specified and controlled input values and checking the resulting output against an expected result. During the course students participate in laboratory sessions in which they apply the concepts learned in class. The last three sessions of the course, which are the ones where students start to apply unit testing concepts after being presented them in class, have been selected for the introduction of the gamification platform: for the first session students weren't given any particular indication, as the goal was to gather preliminary data about their normal approach and activity. After that, a first version of the platform was made available to the students for the second session, the penultimate in the course, allowing them to track their progress during the sessions, as well as checking the quality of their work in terms of completed requirements and coverage of their tests, which is the amount of code being effectively tested. For the last session a new version of the application was provided, introducing a form of competition between students where their tests would be executed on each other's submissions in order to gauge their quality. The application was successfully developed on the University's website, using Docker to package and run it on an Apache server, granting students access to it. The results gathered from the experience show an appreciation of students for the gamification mechanics that have been introduced, as well as a suggestion for it to be introduced in all laboratory sessions, as it enhances students' participation and engagement.

Relatori: Marco Torchiano, Riccardo Coppola
Anno accademico: 2023/24
Tipo di pubblicazione: Elettronica
Numero di pagine: 58
Soggetti:
Corso di laurea: Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering)
Classe di laurea: Nuovo ordinamento > Laurea magistrale > LM-32 - INGEGNERIA INFORMATICA
Aziende collaboratrici: NON SPECIFICATO
URI: http://webthesis.biblio.polito.it/id/eprint/28453
Modifica (riservato agli operatori) Modifica (riservato agli operatori)