Applying Gamification in a Parallel Programming Course

Applying Gamification in a Parallel Programming Course

Javier Fresno (Universidad de Valladolid, Spain), Hector Ortega-Arranz (Universidad de Valladolid, Spain), Alejandro Ortega-Arranz (Universidad de Valladolid, Spain), Arturo Gonzalez-Escribano (Universidad de Valladolid, Spain) and Diego R. Llanos (Universidad de Valladolid, Spain)
DOI: 10.4018/978-1-5225-1034-5.ch006
OnDemand PDF Download:
No Current Special Offers


Pursuing a college degree is a task that requires a great amount of time and effort. Universities are facing a big challenge to attract students and keep them motivated. The gamification of education is a practice that expects to increase the students' engagement, which in turn increases learning outcomes. Nevertheless, obtaining beneficial results from gamification requires educators to mold the teaching to include this new practice, usually involving a lot of effort. In this chapter, the authors present a new software tool developed to encourage gamification dynamics, and they describe their experience using this tool in a Parallel Programming course. The chapter describes the structure of the course, the different proposed activities, the organization of hardware resources, the design of the developed software tool, and an evaluation of the gamified course. The results show that the use of gamification techniques has been a great success. The authors have had a very positive response from their students, and there has been also a big percentage of passing students.
Chapter Preview


The use of game design elements in non-game contexts is commonly known as gamification (Deterding, Dixon, Khaled, & Nacke, 2011). Education is a non-game context where gamification can affect the students’ learning outcomes (Arnab, et al., 2014), behavior (Hakulinen, Auvinen, & Korhonen, 2013), motivation, and engagement (Muntean, 2011). The students are more likely to increase their willingness and desire to be successful when they are engaged in an active learning context (Dicheva, Irwin, Dichev, & Talasila, 2014). Teachers can take advantage of these potential benefits by including game design elements and common features of videogames into the learning contexts.

This chapter describes the required processes to carry out the gamification of a Parallel Programming course, together with some interesting results and situations. The main purpose of this work is to publish not only the positive results obtained, but also describe the tool used, the experience process, the feedback received, and our conclusions regarding the gamification usefulness.

Parallel programming consists in using two or more devices at the same time for carrying out the computations required to solve a problem. Usually the aim of applying parallel programming is to reduce the high temporal costs needed when using only a single device (Grama, Gupta, Karypis, & Kumar, 2003). Its use has been proven to be key to research high performance solutions (Navarro, Hitschfeld-Kahler, & Mateu, 2014). Due to this fact, the evolution of computing not only has focused on developing faster processors, but also on the creation of new computer architectures involving more processing units. Due to the evolution towards more complex architectures, it is a difficult task for the programmers to create optimal parallel solutions. Programming for these modern systems requires to solve some new practical issues, such as the data partitioning, data sharing, data transfers, the coordination and synchronization, or the migration to new computing paradigms.

The purpose of the Parallel Programming course, taught as part of the Computer Science degree at the Universidad de Valladolid, is to teach the students how to take advantage of the principles of parallel programming, focusing on three key examples of highly different programming models: OpenMP (OpenMP Architecture Board, 2013), MPI (Message Passing Forum, 2015), and CUDA (Sanders & Kandrot, 2010). The practical part involves a teaching methodology based on small projects development using the same sequential base program provided to the students. They have to create correct parallel solutions as they learn the foundation and techniques of each programming model. Due to the particular difficulties of learning new computing paradigms involving concurrency and data distribution, we have applied a gamification process to our course with the aim to attract the students’ interest and to raise their motivation and engagement.

In order to introduce the gamification in the course, we have developed a software tool, called Tablón. It eases the submission procedure for the developed code to be executed on real chosen parallel machines. Moreover, it displays at real time the best performance codes submitted and tested so far. With this tool it is possible to implement some particular gamification dynamics, such as leaderboards.

The structure of the chapter is as follows. Section “Background” exposes the background related to the gamification process, the definition of the game design elements used, and some related examples found in the literature. Section “Gamifying a Parallel Programming Course” presents the designed course structure and the chosen gamification elements that have been introduced in our Parallel Programming course. Section “Hardware and Software Environment” describes the technologies and computing platforms needed to support the dynamics we want to encourage. The development of the software to ease the deployment of the codes into these computing platforms is presented in Section “Description of the Developed Software”. Section “Experimental Validation” shows the results and experimental measures we have obtained during the enactment of the course. Section “Future Research Directions” describes the possible extensions and future work. Finally, Section “Conclusions” sums up the chapter contributions.

Complete Chapter List

Search this Book: