Abstract
A large number of games are available to students and instructors that aid in developing a basic understanding of how to read and write programs. In this paper we review the existing serious programming game literature and examine the educational content and game evaluations of 49 games. First, we assess all games with respect to the programming fundamentals specified in the ACM 2013 Computer Science Curricula guidelines. Next, we review how each game is evaluated with respect to likability, accessibility, learning effect and engagement. In addition to the evaluated research questions, we also review the research methods used in the evaluations. Based on the results of our survey we conclude by identifying a number of open problems in the serious programming games literature.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Commercial sources such as the iOS game store, Google Play Store, HourOfCode.com, and Tynker.com offer over 100 different programming games, typically aimed at children. However, many of these games follow a similar approach or share visual programming environments. We chose to only include a small sample from these websites due to the high degree of game overlap and similarity.
- 2.
Serious games with evaluations are primarily a subset of those that have accompanying research papers, technical reports or theses.
References
Codingame: Coding games and programming challenges to code better. https://www.codingame.com/ (2012). Accessed 12 Apr 2017
CodeCombat: Learn how to code by playing a game. https://codecombat.com/ (2013). Accessed 12 Apr 2017
Super Markup Man. http://store.steampowered.com/app/502210/ (2013). Accessed 12 Apr 2017
Codefights: Test your code. https://codefights.com/ (2015). Accessed 12 Apr 2017
Human Resource Machine. https://tomorrowcorporation.com/humanresourcemachine (2015). Accessed 12 Apr 2017
Minecraft: Hour of code tutorials. https://code.org/minecraft (2017). Accessed 12 Apr 2017
ACM/IEEE-CS Joint Task Force on Computing Curricula: Computer science curricula 2013. Technical report, ACM Press and IEEE Computer Society Press, December (2013)
Adamo-Villani, N., Haley-Hermiz, T., Cutler, R.: Using a serious game approach to teach ‘operator precedence’ to introductory programming students. In: Proceedings of the International Conference on Information Visualisation (IV 2013), pp. 523–526 (2013)
Barnes, T., Powell, E., Chaffin, A., Lipford, H.: Game2Learn : improving the motivation of CS1 students. In: Proceedings of the 3rd International Conference on Game Development in Computer Science Education (GDCSE 2008), pp. 1–5 (2008)
Bates, Ryan: Ruby warrior: popular free ruby programming tutorial game. https://www.bloc.io/ruby-warrior/ (2010). Accessed 13 April 2017
Begel, A.: LogoBlocks: a graphical programming language for interacting with the world. Master’s thesis, Electrical Engineering and Computer Science, MIT (1996)
Bonakdarian, E., White, L.: Robocode throughout the curriculum. J. Comput. Sci. Coll. 19(3), 311–313 (2004)
Buckley, C.: Design and implementation of a genre hybrid video game that integrates the curriculum of an introductory programming course. Master’s thesis, Clemson University (2012)
Chaffin, A., Doran, K., Hicks, D., Barnes, T.: Experimental evaluation of teaching recursion in a video game. In: Proceedings of the 2009 ACM SIGGRAPH Symposium on Video Games, vol. 1, pp. 79–86 (2009)
Chivchalov, A., Chivchalov, A., Gunyakov, S.: Screeps. https://screeps.com/ (2016). Accessed 12 Apr 2017
Coelho, A., Kato, E., Xavier, J., Gonçalves, R.: Serious game for introductory programming. In: Ma, M., Fradinho Oliveira, M., Madeiras Pereira, J. (eds.) SGDA 2011. LNCS, vol. 6944, pp. 61–71. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-23834-5_6
Connolly, T.M., Boyle, E.A., MacArthur, E., Hainey, T., Boyle, J.M.: A systematic literature review of empirical evidence on computer games and serious games. Comput. Educ. 59(2), 661–686 (2012)
Desurvire, H., Wiberg, C.: Game usability heuristics (PLAY) for evaluating and designing better games: the next iteration. In: Ozok, A.A., Zaphiris, P. (eds.) OCSC 2009. LNCS, vol. 5621, pp. 557–566. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-02774-1_60
Dondlinger, M.J.: Educational video game design: a review of the literature. J. Appl. Educ. Technol. 4(1), 21–31 (2007)
Eagle, M., Barnes, T.: Experimental evaluation of an educational game for improved learning in introductory computing. In: Proceedings of the 40th ACM Technical Symposium on Computer science education (SIGCSE 2009), pp. 321–325 (2009)
Hartness, K.: Robocode: using games to teach artificial intelligence. J. Comput. Sci. Coll. 19(4), 287–291 (2004)
Hicks, A.: Towards social gaming methods for improving game-based computer science education. In: Proceedings of the Fifth International Conference on the Foundations of Digital Games - FDG 2010, pp. 259–261 (2010)
Jemmali, C., Zijian, Y.: May’s journey: a serious game to teach middle and high school girls programming. Master’s thesis, Worcester Polytechnic Institute (2016)
Jiau, H.C., Chen, J.C., Ssu, K.F.: Enhancing self-motivation in learning programming using game-based simulation and metrics. IEEE Trans. Educ. 52(4), 555–562 (2009)
Johnsen, A.L., Ushakov, G.: Python programming game. Master’s thesis, Norwegian University of Science and Technology (2011)
Kahn, K.: A computer game to teach programming introduction to ToonTalk. In: Proceedings of the National Educational Computing Conference, pp. 127–135 (1999)
Kazimoglu, C., Kiernan, M., Bacon, L., Mackinnon, L.: A serious game for developing computational thinking and learning introductory computer programming, vol. 47, pp. 1991–1999. Elsevier (2012)
Kelleher, C., Cosgrove, D., Culyba, D., Forlines, C., Pratt, J., Pausch, R.: Alice2: programming without syntax errors. In: Proceedings of the 15th International Symposium on User Interface Software and Technology (UIST 2002) - Demonstrations, pp. 35–36 (2002)
Kelly, J.O., Maynooth, N.U.I., Gibson, J.P.: RoboCode & problem-based learning: a non-prescriptive approach to teaching programming. ACM SIGCSE Bull. 38(3), 217–221 (2006)
Khenissi, M., Essalmi, F., Jemni, M.: Presentation of a learning game for programming languages education. In: Proceedings of IEEE 13th International Conference on Advanced Learning Technologies (ICALT 2013), pp. 324–326 (2013)
Laupretre, P.: Leek wars. https://leekwars.com/ (2016). Accessed 12 Apr 2017
Lawrence, R.: Teaching data structures using competitive games. IEEE Trans. Educ. 47(4), 459–466 (2004)
Lee, M.J., Ko, A.J.: Investigating the role of purposeful goals on novices’ engagement in a programming game. In: Proceedings of IEEE Symposium on Visual Languages and Human-Centric Computing, VL/HCC, pp. 163–166 (2012)
Liu, C.C., Cheng, Y.B., Huang, C.W.: The effect of simulation games on the learning of computational problem solving. Comp. and Edu. 57(3), 1907–1918 (2011)
Ljungkvist, P., Mozelius, P.: Educational games for self learning in introductory programming courses - a straightforward design approach with progression mechanisms. In: Proceedings of the 6th European Conference on Games Based Learning, pp. 285–293 (2012)
Long, J.: Just for fun: using programming games in software programming training and education - a field study of IBM robocode community. J. Inf. Technol. Educ. 6, 279–290 (2007)
Malliarakis, C., Satratzemi, M., Xinogalos, S.: CMX: implementing an MMORPG for learning programming. In: Proceedings of the 8th European Conference on Games Based Learning (ECGBL2014), pp. 346–355 (2014)
Mathrani, A., Christian, S., Ponder-Sutton, A.: PlayIT: game based learning approach for teaching programming concepts. Educ. Technol. Soc. 19(5), 5–17 (2016)
Miljanovic, M.A., Bradbury, J.S.: Robot ON!: a serious game for improving programming comprehension. In: Proceedings of the 5th International Workshop on Games and Software Engineering, pp. 33–36 (2016)
Miljanovic, M.A., Bradbury, J.S.: RoboBUG: a serious game for learning debugging techniques. In: Proceedings of the 2017 ACM Conference on International Computing Education Research (ICER 2017), pp. 93–100 (2017)
Muratet, M., Delozanne, E., Torguet, P., Viallet, F.: Serious game and students’ learning motivation: effect of context using Prog&Play. In: Proceedings of the 11th International Conference on Intelligent Tutoring Systems (ITS 2012), pp. 123–128, Jun 2012
O’Kelly, J., Gibson, J.P.: RoboCode & problem-based learning : a non-prescriptive approach to teaching programming. In: Proceedings of the Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE 2006), pp. 26–28 (2006)
Paliokas, I., Arapidis, C., Mpimpitsos, M.: Game based early programming education: the more you play, the more you learn. In: Pan, Z., Cheok, A.D., Müller, W., Liarokapis, F. (eds.) Transactions on Edutainment IX. LNCS, vol. 7544, pp. 115–131. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-37042-7_7
Pandeliev, V.T., Baecker, R.M.: A framework for the online evaluation of serious games. In: Proceedings of the International Academic Conference on the Future of Game Design and Technology, pp. 239–242. ACM (2010)
Pellas, N.: Exploring interrelationships among high school students engagement factors in introductory programming courses via a 3D multi-user serious game created in open Sim. J. Univers. Comput. Sci. 20(12), 1608–1628 (2014)
Piteira, M., Haddad, S.R.: Innovate in your program computer class: an approach based on a serious game. In: Proceedings of the Workshop on Open Source and Design of Communication, pp. 49–54 (2011)
Ralph, T., Barnes, T.: The Catacombs: a study on the usability of games to teach introductory programming (2006)
Ramirez-Rosales, S., Vazquez-Reyes, S., Villa-Cisneros, J.L., De Leon-Sigg, M.: A serious game to promote object oriented programming and software engineering basic concepts learning. In: Proceedings of the 4th Interenational Conference in Software Engineering Research and Innovation (CONISOFT 2016), pp. 97–103 (2016)
Romo, E.K.: Game design for a serious game to help learn programming. Master’s thesis, Faculdade de Engenharia da Universidade do Porto (2011)
Singh, J., et al.: Designing computer games to introduce programming to children. In: Proceedings of the 4th International Conference on Information Technology and Multimedia, pp. 643–647 (2008)
Tessler, J., Beth, B., Lin, C.: Using cargo-bot to provide contextualized learning of recursion. In: Proceedings of the 9th Annual International ACM Conference on International Computing Education Research (ICER 2013), pp. 161–168 (2013)
Theodorou, C., Kordaki, M.: Super Mario: a collaborative game for the learning of variables in programming. Int. J. Acad. Res. 2(4), 111–118 (2010)
Tillmann, N., Bishop, J.: Code hunt: searching for secret code for fun. In: Proceedings of the 7th International Workshop on Search-Based Software Testing (SBST 2014), pp. 23–26 (2014)
Tillmann, N., Halleux, J.D., Bishop, J.: Teaching and learning programming and software engineering via interactive gaming. In: Proceedings of the International Conference on Software Engineering (ICSE 2013), pp. 1117–1126 (2013)
Vahldick, A., Mendes, A.J., Marcelino, M.J.: A review of games designed to improve introductory computer programming competencies. In: Proceedings of the Frontiers in Education Conference (FIE 2014), pp. 1–7. IEEE (2014)
Vahldick, A., Mendes, A.J., Marcelino, M.J.: Analysing the enjoyment of a serious game for programming learning with two unrelated higher education audiences. In: Proceedings of the European Conference on Games-based Learning, pp. 523–531 (2015)
Vassilev, T.I., Mutev, B.I.: An approach to teaching introductory programming using games. In: Proceedings of the International Conference on e-Learning, pp. 246–253 (2014)
Wang, M., Hu, X.: SoccerCode: A game system for introductory programming courses in computer science. In: Proceedings of the World Congress on Engineering and Computer Science (WCECS 2011), pp. 282–287, Oct 2011
Weintrop, D., Wilensky, U.: RoboBuilder: video game program-to-play constructionist. Proc. Constr. 2012, 1–5 (2012)
Wong, W., Chou, Y.: An interactive Bomberman game-based teaching/learning tool for introductory C programming. In: Proceedings of the International Conference on Technologies for E-Learning and Digital Entertainment, pp. 433–444 (2007)
Yan, L.: Teaching object-oriented programming with games. In: Proceedings of the 6th International Conference on Information Technology: New Generations, pp. 969–974. IEEE (2009)
Yeh, K.c.M., Chen, W.f.: WIP: Using a computer gaming strategy to facilitate undergraduates’ learning in a computer programming course: an experimental study. In: Proceedings of the 41st ASEE/IEEE Frontiers in Education Conference, pp. 11–12 (2011)
Yue, W.S., Wan, W.L.: The effectiveness of digital game for introductory programming concepts. In: Proceedings of the 10th International Conference for Internet Technology and Secured Transactions (ICITST 2015), pp. 421–425 (2015)
Zapušek, M., Rugelj, J.: Learning programming with serious games. EAI Endorsed Trans. Game-Based Learn. 13(1), 1–8 (2013)
Acknowledgment
This research was partially funded by the Natural Sciences and Engineering Research Council of Canada (NSERC).
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
Cite this paper
Miljanovic, M.A., Bradbury, J.S. (2018). A Review of Serious Games for Programming. In: Göbel, S., et al. Serious Games. JCSG 2018. Lecture Notes in Computer Science(), vol 11243. Springer, Cham. https://doi.org/10.1007/978-3-030-02762-9_21
Download citation
DOI: https://doi.org/10.1007/978-3-030-02762-9_21
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-02761-2
Online ISBN: 978-3-030-02762-9
eBook Packages: Computer ScienceComputer Science (R0)