Investigando o Uso de Testes para Apoiar a Resolução de Problemas de Programação

  • André Almeida UFCG
  • Eliane Araújo UFCG
  • Jorge Figueiredo UFCG

Resumo


Os cursos introdutórios de programação utilizam exercícios para desenvolver habilidades e avaliar o desempenho dos alunos. Entretanto, antes de desenvolver a solução, os alunos precisam compreender as especificações. Neste trabalho, avaliamos uma estratégia baseada em testes para esclarecer a especificação dos problemas e melhorar sua resolução. Criamos o ‘Oráculo’, que permite que os alunos interajam com soluções de referência e o comparamos com outros métodos de resolução de problemas. No estudo empírico realizado, observamos uma melhora significativa no desempenho dos alunos, reduzindo o tempo para encontrar a solução correta em 65% dos casos e o número de submissões ao sistema em 68% dos casos, até a solução correta.

Referências

Ala-Mutka, K. (2004). Problems in learning and teaching programming-a literature study for developing visualizations in the codewitz-minerva project. Codewitz needs analysis, 20.

Almeida, A., Araújo, E., and Figueiredo, J. (2020). Avaliando a construção do conhecimento em programação através da taxonomia solo. In Anais do XXXI Simpósio Brasileiro de Informática na Educação, pages 1813–1822. SBC.

Basu, S., Wu, A., Hou, B., and DeNero, J. (2015). Problems before solutions: Automated problem clarification at scale. In Proceedings of the Second (2015) ACM Conference on Learning@ Scale, pages 205–213.

Beck, K. (2003). Test-driven development: by example. Addison-Wesley Professional.

Denny, P., Prather, J., Becker, B. A., Albrecht, Z., Loksa, D., and Pettit, R. (2019). A closer look at metacognitive scaffolding: Solving test cases before programming. In Proceedings of the 19th Koli Calling international conference on computing education research, pages 1–10.

Edwards, S. H. and Perez-Quinones, M. A. (2008). Web-cat: automatically grading programming assignments. In Proceedings of the 13th annual conference on Innovation and technology in computer science education, pages 328–328.

Garner, S., Haden, P., and Robins, A. (2005). My program is correct but it doesn’t run: a preliminary investigation of novice programmers’ problems. In Proceedings of the 7th Australasian conference on Computing education-Volume 42, pages 173–180.

Kadar, R., Wahab, N. A., Othman, J., Shamsuddin, M., and Mahlan, S. B. (2021). A study of difficulties in teaching and learning programming: a systematic literature review. Int. J. Acad. Res. Progress. Educ. Dev, 10:591–605.

Lahtinen, E., Ala-Mutka, K., and Järvinen, H.-M. (2005). A study of the difficulties of novice programmers. Acm sigcse bulletin, 37(3):14–18.

McCracken, M., Almstrum, V., Diaz, D., Guzdial, M., Hagan, D., Kolikant, Y. B.-D., Laxer, C., Thomas, L., Utting, I., and Wilusz, T. (2001). A multi-national, multi-institutional study of assessment of programming skills of first-year cs students. In Working Group Reports from ITiCSE on Innovation and Technology in Computer Science Education, ITiCSE-WGR ’01, page 125–180, New York, NY, USA. Association for Computing Machinery.

Neto, V. L., Coelho, R., Leite, L., Guerrero, D. S., and Mendonça, A. P. (2013). Popt: a problem-oriented programming and testing approach for novice students. In 2013 35th international conference on software engineering (ICSE), pages 1099–1108. IEEE.

Paiva, F., Souza, G., Nascimento, J., and Martins, R. (2021). Introdução a python com aplicações de sistemas operacionais.

Polya, G. and Conway, J. (2004). How to Solve It: A New Aspect of Mathematical Method. Penguin mathematics. Princeton University Press.

Wrenn, J. and Krishnamurthi, S. (2019). Executable examples for programming problem comprehension. In Proceedings of the 2019 ACM Conference on International Computing Education Research, pages 131–139.
Publicado
06/11/2023
ALMEIDA, André; ARAÚJO, Eliane; FIGUEIREDO, Jorge. Investigando o Uso de Testes para Apoiar a Resolução de Problemas de Programação. In: SIMPÓSIO BRASILEIRO DE INFORMÁTICA NA EDUCAÇÃO (SBIE), 34. , 2023, Passo Fundo/RS. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2023 . p. 357-367. DOI: https://doi.org/10.5753/sbie.2023.235118.