Asura: An Environment for Assessment of Programming Challenges using Gamification

From ICPC
Jump to: navigation, search

Asura: An Environment for Assessment of Programming Challenges using Gamification

José Paulo Leal
CRACS & INESC-Porto LA,
Faculty of Sciences, University of Porto,
Porto, Portugal
zp@dcc.fc.up.pt

José Carlos Paiva
CRACS & INESC-Porto LA,
Faculty of Sciences, University of Porto,
Porto, Portugal
up201200272@fc.up.pt

Loss of motivation is one of the most outstanding problems in education. When students are not motivated, they tend to care less about educational activities and to stop striving to complete them. In courses that require lots of practice, especially in programming courses, this results in an unsustainable lack of practice which is accompanied by recurring failures in assessments and later ends up in student dropout.

Several approaches have been proposed to mitigate this problem. One of such proposals, which was coined as gamification, uses game elements and mechanics to engage students. The most common gamification methods simply add some game elements such as leaderboards, badges, or levels to an existing learning environment. However, various experiments linked these methods to serious educational issues such as decreasing intrinsic motivation, blocking the development of self-determination and independent thinking, and encouraging reward-driven behaviors. More effective methods typically rely on different game aspects, such as graphical feedback, game-thinking, collaboration, competition, and in-game challenges, to bring the student into the game world. In respect to programming learning, there is the possibility of having the student to code the Software Agent (SA) that controls the player and, thus, bring the game completely into learning. This opportunity has already been explored in several games, such as CodeRally - a Java game-based rally competition presented at the 2003 ACM International Collegiate Programming Contest (ICPC) World Finals - and Robocode - a Java-based virtual robot game. Both of these games demonstrated a great potential to catch students and non-students attention. Nevertheless, building these challenges involves a complex process which, most times, educators are not willing to perform.


This paper presents Asura, an environment for assessment of programming challenges using several gamification methods. Firstly, the student must solve a programming challenge in the form of a game (i.e., he/she must code an SA). After understanding and solving the proposed challenge, the student is encouraged to produce that beats the opponents (SAs from other students). To complete this task, the student benefits from the game-like graphical feedback on the SA behavior during the game. Once the challenge ends, educators are able to organize tournaments, similar to those found on traditional games and sports, among SAs submitted by the students. A tournament produces a movie which contains a reference to each match’s movie, organized by stages and rounds, as well as partial and complete rankings of each phase. The movie of the tournament is presented in an interactive GUI in which the viewer can control what games he wants to see. Furthermore, one of the key goals of Asura is to enable teachers to build games with a similar complexity to that of creating an ICPC-like problem. These games can be very simple, such as a number guessing game, or more complex than CodeRally and Robocode.


An experiment with Asura will be conducted in the laboratory classes of an undergraduate Object-Oriented Programming (OOP) course at Escola Superior de Media Artes e Design (ESMAD) - a school of the Polytechnic Institute of Porto. This course aims to introduce Javascript and some basic OOP concepts integrated into its ECMAScript 6 version, to students with little to no programming background. This experiment will evaluate both the effectiveness of Asura in motivating students to practice programming and compare the difficulty of building this kind of challenges with that of creating programming exercises in traditional automated assessment.