Análise de Code Smells em Linguagens Visuais de Programação no Contexto da Educação: Um Mapeamento Sistemático da Literatura

  • Gerson Fernandes Galante UFSC
  • Jean C. R. Hauck UFSC

Resumo


As Linguagens Visuais de Programação (VPLs) têm sido utilizadas no ensino do pensamento computacional. No entanto, o aprendizado de programação apresenta diversas dificuldades, mesmo quando se utilizam VPLs. Alunos iniciantes, muitas vezes não utilizam boas práticas de codificação, gerando possíveis problemas de design ou implementação chamados de Code Smells. Assim, este trabalho realiza um Mapeamento Sistemático de Literatura buscando identificar como Code Smells têm sido analisados em VPLs no contexto educacional. São selecionados 14 estudos primários que atendem aos critérios de inclusão e exclusão. Os resultados indicam que a maioria dos estudos é aplicada com estudantes da educação básica, utilizando Scratch ou App Inventor. A descoberta de Code Smells é realizada por meio de análise estática de código, os problemas encontrados são tratados por meio de refatoração de código, resultando em melhor compreensão dos alunos, formação de melhores hábitos de programação e identificação de dificuldades de aprendizagem.
Palavras-chave: Code Smell, Mapeamento Sistemático de Literatura, Linguagem de Programação Visual

Referências

Aivaloglou, E. and Hermans, F. (2016). How kids code and how we know: An exploratory study on the scratch repository. In Proceedings of the 2016 ACM conference on international computing education research, pages 53–61.

Alves, N. D. C. et al. (2020). A large-scale evaluation of a rubric for the automatic assessment of algorithms and programming concepts. In Proceedings of the 51st ACM Technical Symposium on Computer Science Education, pages 556–562, Portland, OR, USA. ACM. Acesso em: 3 set. 2024.

Badampudi, D., Wohlin, C., and Petersen, K. (2015). Experiences from using snowballing and database searches in systematic literature studies. In Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering, EASE ’15, New York, NY, USA. Association for Computing Machinery.

Basu, S. (2019). Using rubrics integrating design and coding to assess middle school students’ open-ended block-based programming projects. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education, pages 1211–1217, Minneapolis, MN, USA. ACM. Acesso em: 3 set. 2024.

Costa, T. et al. (2016). A importância da computação para alunos do ensino fundamental: Ações, possibilidades e benefícios. In Anais do Workshop de Informática na Escola, pages 593–601. Acesso em: 7 nov. 2024.

da Cruz Alves, N., von Wangenheim, C. G., and Hauck, J. C. (2019). Approaches to assess computational thinking competences based on code analysis in k-12 education: A systematic mapping study. Informatics in Education, 18(1):17–39.

Espinal, A., Vieira, C., and Magana, A. J. (2024). Professional development in computational thinking: A systematic literature review. ACM Trans. Comput. Educ., 24(2).

Fontana, F. A., Braione, P., and Zanoni, M. (2012). Automatic detection of bad smells in code: An experimental assessment. J. Object Technol., 11(2):5–1.

Fowler, M. (2018). Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional, Boston, 2nd edition.

Fronza, I., Corral, L., and Pahl, C. (2020). An approach to evaluate the complexity of block-based software product. inform educ 19 (1): 15–32.

Galante, G. and Hauck, J. (2025). Análise de code smells em linguagens visuais de programação no contexto da educação: Um mapeamento sistemático da literatura (msl). Mendeley Data, V1. DOI: 10.17632/bmpfnwxzxd.1.

Gutmann, V., Starke, E., and Michaeli, T. (2023). Investigating code smells in k-12 students’ programming projects: Impact on comprehensibility and modifiability. In International Conference on Informatics in Secondary Schools.

Hermans, F. and Aivaloglou, E. (2016a). Do code smells hamper novice programming? a controlled experiment on scratch programs. In 2016 IEEE 24th International Conference on Program Comprehension (ICPC), pages 1–10.

Hermans, F. and Aivaloglou, E. (2016b). Do code smells hamper novice programming? a controlled experiment on scratch programs. In 2016 IEEE 24th International Conference on Program Comprehension (ICPC), pages 1–10. IEEE.

Hermans, F., Stolee, K. T., and Hoepelman, D. (2016). Smells in block-based programming languages. In 2016 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), pages 68–72. IEEE.

Keuning, H., Jeuring, J., and Heeren, B. (2023). A systematic mapping study of code quality in education. In Proceedings of the 2023 Conference on Innovation and Technology in Computer Science Education V. 1, ITiCSE 2023, page 5–11, New York, NY, USA. Association for Computing Machinery.

Kong, S. C., POON, C. W., and Bowen, L. (2021). Analysing reachable and unreachable codes in app inventor programs for supporting the assessment of computational thinking concepts. In International Conference on Computers in Education.

Lacerda, G., Petrillo, F., Pimenta, M., and Guéhéneuc, Y. G. (2020). Code smells and refactoring: A tertiary systematic review of challenges and observations. Journal of Systems and Software, 167:110610.

Li, I., Turbak, F., and Mustafaraj, E. (2017). Calls of the wild: Exploring procedural abstraction in app inventor. In 2017 IEEE Blocks and Beyond Workshop (B&B), pages 79–86. IEEE. Acesso em: 4 set. 2024.

Ligu, E., Chatzigeorgiou, A., Chaikalis, T., and Ygeionomakis, N. (2013). Identification of refused bequest code smells. In 2013 IEEE International Conference on Software Maintenance, pages 392–395.

Martínez-Valdés, J. A. and Martínez-Ijaji, N. A. (2018). An experience with the app inventor in cs0 for the development of the stem didactics. In Proceedings of the Sixth International Conference on Technological Ecosystems for Enhancing Multiculturality, pages 51–56, Salamanca, Spain. ACM. Acesso em: 3 set. 2024.

Mioto, F. et al. (2019). Bases21 - um modelo para a autoavaliação de habilidades do século xxi no contexto do ensino de computação na educação básica. Revista Brasileira de Informática na Educação, 27(01):26. [s. l.].

Patton, E. W., Seo, A., and Turbak, F. (2019). Enhancing abstraction in app inventor with generic event handlers. In 2019 IEEE Blocks and Beyond Workshop (B&B), pages 63–71. IEEE.

Petersen, K. et al. (2008). Systematic mapping studies in software engineering. In 12th International Conference on Evaluation and Assessment in Software Engineering (EASE). BCS Learning & Development. Acesso em: 14 nov. 2024.

Prestat, D., Moha, N., and Villemaire, R. (2022). An empirical study of android behavioural code smells detection. Empirical Software Engineering, 27(7):179. [s. l.].

Rasool, G. and Arshad, Z. (2015). A review of code smell mining techniques. Journal of Software: Evolution and Process, 27:867 – 895.

Rijo-Garcia, S., Segredo, E., and Leon, C. (2022). Computational thinking and user interfaces: A systematic review. IEEE Transactions on Education, 65(4):647–656. [s. l.].

Rose, S., Habgood, J., and Jay, T. (2018). Pirate plunder: Game-based computational thinking using scratch blocks. In Academic Conferences and Publishing International Limited. Academic Conferences and Publishing International Limited.

Seo, A. (2018). Abstractionless programming in app inventor. In BLOCKS+ 2018 ACM SPLASH Workshop. Acesso em: 3 set. 2024.

Solecki, I. et al. (2020). Automated assessment of the visual design of android apps developed with app inventor. In Proceedings of the 51st ACM Technical Symposium on Computer Science Education, pages 51–57, Portland, OR, USA. ACM. Acesso em: 8 nov. 2024.

Sonjaya, R. P. and Munir (2025). Examining the impact of block-based visual programming in programming education: A systematic review. Indonesian Journal of Teaching in Science, 5(1):11–20.

Techapalokul, P. (2017). Sniffing through millions of blocks for bad smells. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education, pages 781–782.

Techapalokul, P. and Tilevich, E. (2015). Programming environments for blocks need first-class software refactoring support: A position paper. In 2015 IEEE Blocks and Beyond Workshop (Blocks and Beyond), pages 109–111, Atlanta, GA, USA. IEEE. Acesso em: 3 set. 2024.

Techapalokul, P. and Tilevich, E. (2017a). Quality hound—an online code smell analyzer for scratch programs. In 2017 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), pages 337–338. IEEE.

Techapalokul, P. and Tilevich, E. (2017b). Understanding recurring quality problems and their impact on code sharing in block-based software. In 2017 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), pages 43–51. IEEE.

Tempel, M. (2013). Blocks programming. CsTA Voice, 9(1):3–4.

Thangaraj, J., Ward, M., and O’Riordan, F. (2023). A Systematic Review of Formative Assessment to Support Students Learning Computer Programming. In Peixoto de Queirós, R. A. and Teixeira Pinto, M. P., editors, 4th International Computer Programming Education Conference (ICPEC 2023), volume 112 of Open Access Series in Informatics (OASIcs), pages 7:1–7:13, Dagstuhl, Germany. Schloss Dagstuhl – Leibniz-Zentrum für Informatik.

Vargas-Alba, Á., Troiano, G. M., Chen, Q., Harteveld, C., and Robles, G. (2019). Bad smells in scratch projects: A preliminary analysis. In TACKLE@ EC-TEL.

Wing, J. M. (2021). Pensamento computacional. In [s. n.], editor, Educação e Matemática, number 162 in Série A, pages 2–4. [s. l.].

Wu, T.-T., Lin, C.-J., Wang, S.-C., and Huang, Y.-M. (2023). Tracking visual programming language-based learning progress for computational thinking education. Sustainability, 15(3).

Yang, Z., Blake-West, J., Yang, D., and Bers, M. (2025). The impact of a block-based visual programming curriculum: Untangling coding skills and computational thinking. Learning and Instruction, 95:102041.

Yoshida, N., Saika, T., Choi, E., Ouni, A., and Inoue, K. (2016). Revisiting the relationship between code smells and refactoring. In 2016 IEEE 24th International Conference on Program Comprehension (ICPC), pages 1–4.

Zanetti, H., Borges, M., and Ricart, I. (2016). Pensamento computacional no ensino de programação: Uma revisão sistemática da literatura brasileira. In Anais do XXVII Simpósio Brasileiro de Informática na Educação, page 21, Uberlândia, Minas Gerais, Brasil. [s. n.]. Acesso em: 15 abr. 2023.
Publicado
20/07/2025
GALANTE, Gerson Fernandes; HAUCK, Jean C. R.. Análise de Code Smells em Linguagens Visuais de Programação no Contexto da Educação: Um Mapeamento Sistemático da Literatura. In: WORKSHOP SOBRE EDUCAÇÃO EM COMPUTAÇÃO (WEI), 33. , 2025, Maceió/AL. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2025 . p. 758-771. ISSN 2595-6175. DOI: https://doi.org/10.5753/wei.2025.8531.