Just for Fun: Using Programming Games in Software Programming Training and Education--A Field Study of IBM Robocode Community
Journal of Information Technology Education Volume 6, ISSN 1547-9714
Improving learning effectiveness has always been a constant challenge in software education and training. One of the primary tasks educators face is to motivate learners to perform to their best abilities. Using computer games is one means to encourage learners to learn (Klawe, 1994). When games are used in general education, they could enhance self-esteem for the learners, reduce training time and instructor load, provide more opportunities for practice and enhance knowledge acquisition (Brownfield & Vik, 1983; Ricci, 1994). Moreover, researchers have noted many benefits of using computer games in IT education as well. For instance, it has been shown that a game-based environment is more enjoyable to the users than a traditional environment in IT training (Venkatesh, 1999). In this study, we focused on one game: IBM Robocode. We examined the characteristics of Robocode and the Robocode community. We addressed the following research questions: (1) How did the Robocode game influence the participant's learning outcomes? Did the participant's programming skills and knowledge improve after playing the Robocode game? (2) Was the Robocode game enjoyable to participants with different ages, education and skill levels? (3) What did the participants like the most about the Robocode game? (4) What were the factors that influence the participant's motivation? (5) What activities of the game were more enjoyable? To answer these questions, we conducted a survey of Robocode participants. Our sample was randomly drawn from the online forum of the Robocode community. We sent out a total of 500 surveys and generated 83 valid responses. Regarding the effectiveness in learning new programming skills using Robocode, we found that about 80% of the participants' programming skills increased after playing Robocode. We also found that Robocode was enjoyable not only to younger participants but also to older--and often more experienced--participants. Our results also showed that participants in various education levels and expertise levels all enjoyed Robocode. Examining the motivation for the learners to participate in the game, we found that to have fun (an intrinsic motivator) was the most common reason. Another important factor, also an intrinsic motivator, was the opportunity to learn new programming skills. Extrinsic motivators, such as "to win the game", "to win the prize in the contest" and "to gain peer recognition", proved to be far less significant. Furthermore, we examined the factors that made Robocode fun. Among the factors listed, "to be able to solve problems on my own" was chosen most frequently. "To be able to be creative" was identified as the second most important factor. Both factors are most closely related to the autonomy category of intrinsic motivation. "To be able to put skills in use" and "to be able to learn new skills" were also selected as important factors. Both factors could be classified as competence motivators. Our results are consistent with the previous theories on motivation that the more autonomy and competence the learner has, the more fun the learning process. We also found that the Robocode participants enjoyed some activities of the game more than other activities. Among the Robocode activities, discovering algorithms was chosen as the most enjoyable. Designing the architecture was highly enjoyable as well. On the other hand, writing the code and testing and debugging were less enjoyable. Our research could provide a better understanding of how to incorporate Robocode and similar games in software programming education. The results from our study could be valuable not only to practitioners, but also to researchers examining the methods to improve software education and training. Instructors hoping to improve learning outcomes could leverage a programming game such as Robocode as an education and training tool to enhance the learning experiences and outcomes. It might also be interesting to broaden the scope and utilize Robocode or similar games in higher-level courses, or even graduate courses. (Contains 2 figures and 8 tables.)
Long, J. (2007). Just for Fun: Using Programming Games in Software Programming Training and Education--A Field Study of IBM Robocode Community. Journal of Information Technology Education, 6, 279-290.