Code Smells Detective - An Educational Digital Game for Supporting the Learning-Teaching Process in Code Smells
Resumo
We present the preliminary evaluation of Code Smells Detective, an educational digital game designed to improve students’ understanding of code smells and code quality. The game was developed as an interactive, dynamic learning resource and was evaluated by 14 undergraduate and graduate students who had previously completed a Software Engineering course. The assessment used a structured questionnaire based on the MEEGA+ model, covering usability, learning, engagement, and player experience. The results showed a highly positive reception, with participants reporting strong usability, high engagement, and favorable perceptions of learning, suggesting that participants perceived the game as supportive of the assimilation of code-quality concepts. Overall, the study indicates that Code Smells Detective is a promising pedagogical tool for teaching code quality and recommends broader future evaluations with larger, more diverse samples, including longitudinal studies.
Referências
Farah Khiled AL-Jibory. 2023. Code smells in software. International Journal of Nonlinear Analysis and Applications 14, 1 (2023), 1339–1345.
Lorin W Anderson and David R Krathwohl. 2001. A taxonomy for learning, teaching, and assessing: A revision of Bloom’s taxonomy of educational objectives: complete edition. Addison Wesley Longman, Inc.
Simon Baars and Sander Meester. 2019. CodeArena: Inspecting and improving code quality metrics using minecraft. In 2019 IEEE/ACM International Conference on Technical Debt (TechDebt). IEEE, 68–70.
BS Bloom. 2001. Taxonomy of educational objectives and writing intended learning outcomes statements. International Assembly for Collegiate Business Education (IACBE), USA (2001).
Lea C. Brandl and Andreas Schrader. 2024. Serious Games in Higher Education in the Transforming Process to Education 4.0—Systematized Review. Education Sciences 14, 3 (2024). DOI: 10.3390/educsci14030281
James M Clark and Allan Paivio. 1991. Dual coding theory and education. Educational psychology review 3 (1991), 149–210.
Ward Cunningham. 1992. The WyCash portfolio management system. ACM Sigplan Oops Messenger 4, 2 (1992), 29–30.
Hoyama Maria dos Santos, Vinicius HS Durelli, Maurício Souza, Eduardo Figueiredo, Lucas Timoteo da Silva, and Rafael S Durelli. 2019. Cleangame: Gamifying the identification of code smells. In Proceedings of the XXXIII Brazilian Symposium on Software Engineering. 437–446.
João M Fernandes and Sónia M Sousa. 2010. Playscrum-a card game to learn the scrum agile method. In 2010 Second International Conference on Games and Virtual Worlds for Serious Applications. IEEE, 52–59.
Ana Paula do Carmo Marcheti Ferraz and Renato Vairo Belhot. 2010. Taxonomia de Bloom: revisão teórica e apresentação das adequações do instrumento para definição de objetivos instrucionais. Gestão & produção 17 (2010), 421–431.
Martin Fowler, Kent Beck, John Brant, William Opdyke, and Don Roberts. 2003. Refactoring: Improving the Design of Existing Code. 2000. [link] (2003).
Jefferson Francisco and Heitor Costa. 2025. Code Smells Detective Educational Game: Quality and Pedagogical Perception Evaluation Dataset. DOI: 10.5281/zenodo.17088684
Scott Freeman, Sarah L. Eddy, Miles McDonough, Michelle K. Smith, Nnadozie Okoroafor, Heidi Jordt, and Mary Pat Wenderoth. 2014. Active learning increases student performance in science, engineering, and mathematics. Proceedings of the National Academy of Sciences 111, 23 (2014), 8410–8415. DOI: 10.1073/pnas.1319030111
Paul C Grabow. 2015. Software Engineering I: Teaching Challenges. In ACMS Conference Proceedings 2015.
Thorsten Haendler. 2019. A Card Game for Learning Software-Refactoring Principles.. In GamiLearn.
Zijie Huang, Huiqun Yu, Guisheng Fan, Zhiqing Shao, Ziyi Zhou, and Mingchen Li. 2024. On the effectiveness of developer features in code smell prioritization: A replication study. Journal of Systems and Software 210 (2024), 111968.
Marcel Jerzyk and LechMadeyski. 2023. Code smells: A comprehensive online catalog and taxonomy. In Developments in Information and Knowledge Management Systems for Business Applications: Volume 7. Springer, 543–576.
Serhii S Korniienko, Pavlo V Zahorodko, Andrii M Striuk, and Andrey I Kupin. 2024. A systematic review of gamification in software engineering education. In CEUR Workshop Proceedings 83–95. CEUR Workshop Proceedings.
Letaw Lara. 2024. Handbook of Software Engineering Methods. Disponível em: [link].
Mika V Mäntylä and Casper Lassenius. 2006. Subjective evaluation of software evolvability using code smells: An empirical study. Empirical Software Engineering 11 (2006), 395–431.
Robert C Martin. 2013. Clean Code-Refactoring, Patterns, Testen und Techniken für sauberen Code: Deutsche Ausgabe. MITP-Verlags GmbH & Co. KG.
D.R. Michael and S. Chen. 2006. Serious Games: Games that Educate, Train and Inform. Thomson Course Technology. [link]
Emily Oh Navarro and André van der Hoek. 2004. SIMSE: An Interactive Simulation Game for Software Engineering Education.. In CATE, Vol. 1. 12–17.
Sofia Ouhbi and Nuno Pombo. 2020. Software Engineering Education: Challenges and Perspectives. In 2020 IEEE Global Engineering Education Conference (EDUCON). 202–209. DOI: 10.1109/EDUCON45650.2020.9125353
Allan Paivio. 1991. Dual coding theory: Retrospect and current status. Canadian Journal of Psychology/Revue canadienne de psychologie 45, 3 (1991), 255.
Giani Petri, Christiane Gresse Von Wangenheim, and Adriano Ferreti Borgatto. 2019. MEEGA+: Um Modelo para a Avaliação de Jogos Educacionais para o ensino de Computação. Revista Brasileira de Informática na Educação 27, 03 (2019), 52–81.
Michael Prince. 2004. Does active learning work? A review of the research. Journal of Engineering Education 93, 3 (2004), 223–231. DOI: 10.1002/j.2168-9830.2004.tb00809.x
Philipp Straubinger, Tim Greller, and Gordon Fraser. 2025. Teaching Software Testing and Debugging with the Serious Game Sojourner under Sabotage. In Proceedings of the 34th ACM SIGSOFT International Symposium on Software Testing and Analysis. 16–20.
Girish Suryanarayana, Ganesh Samarthyam, and Tushar Sharma. 2014. Refactoring for software design smells: managing technical debt. Morgan Kaufmann.
John Sweller. 1988. Cognitive load during problem solving: Effects on learning. Cognitive science 12, 2 (1988), 257–285.
John Sweller. 2006. The worked example effect and human cognition. Learning and instruction (2006).
Paul Thibodeau, Isaac Levy, and Mikaela de Lemos. 2021. Exploring mental representation with a memory matching game. In Proceedings of the Annual Meeting of the Cognitive Science Society, Vol. 43.
Michele Tufano, Fabio Palomba, Gabriele Bavota, Rocco Oliveto, Massimiliano Di Penta, Andrea De Lucia, and Denys Poshyvanyk. 2015. When and Why Your Code Starts to Smell Bad. In 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, Vol. 1. 403–414. DOI: 10.1109/ICSE.2015.59
Jin-Hui Wang and Shan Cui. 2018. Associative memory cells and their working principle in the brain. F1000Research 7 (2018), 108.
