GidgetML: An Adaptive Serious Game for Enhancing First Year Programming Labs

by Michael A. Miljanovic, Jeremy S. Bradbury


Serious games have become a popular alternative learning tool for computer programming education. Research has shown that serious games provide benefits including the development of problem solving skills and increased engagement in the learning process. Despite the benefits, a major challenge of developing serious games is their ability to accommodate students with different educational backgrounds and levels of competency. Learners with a high-level of competence may find a serious games to be too easy or boring, while learners with low-level competence may be frequently frustrated or find it difficult to progress through the game. One solution to this challenge is to use automated adaptation that can alter game content and adjust game tasks to a level appropriate for the learner. The use of adaptation has been successfully utilized in educational domains outside of Software Engineering, but has not been applied to serious programming games. This paper presents GidgetML, an adaptive version of the Gidget programming game, that uses machine learning to modify game tasks based on assessing and predicting learners’ competencies. To assess the benefits of adaptation, we have conducted a study involving 100 students in a first-year university programming course. Our study compared the use of Gidget (non-adaptive) with GidgetML (adaptive) and found that students who played Gidget during lab sessions varied significantly in their performance while this variance was significantly reduced for students who played GidgetML.

Bibliographic Information [Bibtex format]

Author = {Michael A. Miljanovic AND Jeremy S. Bradbury},
Title = {{GidgetML}: An Adaptive Serious Game for Enhancing First Year Programming Labs},
Booktitle = {Proc. of the 42nd International Conference on Software Engineering  (ICSE 2020), The Software Engineering Education and Training (SEET) track},
Month = {Oct.}, 
Year = {2020}}

Paper: [PDF]   Presentation: [PDF] Software: [GitHub]