O Uso de Tutores de Programação Inteligentes na Produção de Feedback para Estudantes em Tarefas de Programação: Uma Revisão Sistemática da Literatura / The Use of Intelligent Programming Tutors in Producing Feedback for Students in Programming Tasks: A Systematic Literature Review

Authors

  • Remyson Rodrigues Costa Brazilian Journals Publicações de Periódicos, São José dos Pinhais, Paraná
  • Reudismam Rolim de Sousa

DOI:

https://doi.org/10.34117/bjdv6n5-413

Keywords:

Algoritmos, Educação, Computação, Feedback, Sistemas de Tutoria Inteligentes

Abstract

Estudantes encontram muitas dificuldades em componentes curriculares de introdução à programação. Muitas delas relacionadas à aprendizagem aos conceitos abstratos e lógicos na programação, além de fatores externos e internos ao aluno. Isso vem implicando na alta média de reprovação e evasão nesses cursos. Para tentar reparar esse problema, as universidades adotam o uso de Sistemas de Tutoria Inteligentes (STIs) para aprendizagem de programação, que podem desenvolver uma interação mais próxima dos estudantes com o aprendizado de programação. Neste trabalho, propõe-se uma revisão sistemática de como os tutores de programação auxiliam na produção de feedback para estudantes em tarefas de programação. Como resultado, foram identificados 36 trabalhos, em que elencou-se diferentes características, tais como as abordagens utilizadas pelos tutores de programação.

References

[Agbo et al. 2019] Agbo, F. J., Oyelere, S. S., Suhonen, J., and Adewumi, S. (2019). A systematic review of computational thinking approach for programming education in higher education institutions. In Proceedings of the 19th Koli Calling International Conference on Computing Education Research. Koli Calling’19, New York, NY, USA. Association for Computing Machinery.

[Albrecht et al. 2018] Albrecht, E., Gumz, E, and Grabowski, J. (2018). Experiences in introducing blended learning in an introductory programming course. In Proceedings of the 3rd European Conference of Software Engineering Education, ECSEE’18, page 93-101, New York, NY, USA. Association for Computing Machinery.

[Almeida et al. 2018] Almeida, J. B., Cunha, A., Macedo, N., Pacheco, H., and Proenga, J. (2018). Teaching how to program using automated assessment and functional glossy games (experience report). Proc. ACM Program. Lang., 2(ICFP).

[Altuna Castillo and Guibert Estrada 2015] Altuna Castillo, E. J. and Guibert Estrada, L. (2015). Domain knowledge representation for programming teaching. IEEE Latin America Transactions, 13(5):1528-1533.

[Arends et al. 2017] Arends, H., Keuning, H., Heeren, B., and Jeuring, J. (2017). An in¬telligent tutor to learn the evaluation of microcontroller i/o programming expressions. In Proceedings of the 17th Koli Calling International Conference on Computing Edu¬cation Research. Koli Calling ’17, page 2-9, New York, NY, USA. Association for Computing Machinery.

[Brown et al. 2014] Brown, N. C. C., Kolling, M., McCall, D., and Utting, I. (2014). Black-box: A large scale repository of novice programmers? activity. In Proceedings of the 45th ACM Technical Symposium on Computer Science Education, SIGCSE ’14, page 223-228, New York, NY, USA. Association for Computing Machinery.

[Canou et al. 2017] Canou, B., Di Cosmo, R., and Henry, G. (2017). Scaling up functional programming education: Under the hood of the ocaml mooc. Proc. ACM Program. Lang., l(ICFP).

[Cassel and Reis 2003] Cassel, L. and Reis, R. A. (2003). Erratum to: Informatics Curricula and Teaching Methods, pages E1-E1. Springer US, Boston, MA.

[Chrysafiadi and Virvou 2014] Chrysafiadi, K. and Virvou, M. (2014). K.e.m.cs: A set of student's characteristics for modeling in adaptive programming tutoring systems. In IISA 2014, The 5th International Conference on Information, Intelligence, Systems and Applications, pages 106-110.

[Costa 2013] Costa, T. H. (2013). Análise dos problemas enfrentados por alunos de programação. Trabalho de Conclusão de Curso. UEPB.

[Crow et al. 2018] Crow, T., Luxton-Reilly, A., and Wuensche, B. (2018). Intelligent tu¬toring systems for programming education: A systematic review. In Proceedings of the 20th Australasian Computing Education Conference, ACE '18, page 53-62, New York, NY, USA. Association for Computing Machinery.

[Fisher et al. 2016] Fisher, W., Rader, C., and Camp, T. (2016). Online programming tutors or paper study guides? In 2016 IEEE Frontiers in Education Conference (FIE), pages 1-6.

[Fu et al. 2017] Fu, X., Shimada, A., Ogata, H., Taniguchi, Y., and Suehiro, D. (2017). Real--time learning analytics for C programming language courses. In Proceedings of the Seventh International Learning Analytics & Knowledge Conference, LAK '17, page 280-288, New York, NY, USA. Association for Computing Machinery.

[Fuchs and Wolff 2016] Fuchs, M. and Wolff, C. (2016). Improving programming educa¬tion through gameful, formative feedback. In 2016 IEEE Global Engineering Educa¬tion Conference (EDUCON), pages 860-867.

[Giraffa and da Costa Mora 2013] Giraffa, L. M. M. and da Costa Mora, M. (2013). Evasão na disciplina de algoritmo e programação: Um estudo a partir dos fatores intervenientes na perspectiva do aluno. In Tercera Conferencia sobre el Abandono en la Education Superior, CLABES '13, pages 1-10. CLABES.

[Glassman et al. 2015] Glassman, E. L., Scott, J., Singh, R., Guo, P. J., and Miller, R. C. (2015). Overcode: Visualizing variation in student solutions to programming problems at scale. ACM Trans. Comput.-Hum. Interact., 22(2).

[Gross and Pinkwart 2015] Gross, S. and Pinkwart, N. (2015). Towards an integrative lear¬ning environment for java programming. In 2015 IEEE 15th International Conference on Advanced Learning Technologies, pages 24-28.

[Gulwani et al. 2018] Gulwani, S., Radicek, I., and Zuleger, F. (2018). Automated cluste¬ring and program repair for introductory programming assignments. SIGPLAN Not., 53(4):465-480.

[Haden et al. 2016] Haden, P., Gasson, J., Wood, K., and Parsons, D. (2016). Can you learn to teach programming in two days? In Proceedings of the Australasian Compu¬ter Science Week Multiconference, ACSW '16, New York, NY, USA. Association for Computing Machinery.

[Haden et al. 2017] Haden, P” Parsons, D., Wood, K., and Gasson, J. (2017). Student affect in cs1: Insights from an easy data collection tool. In Proceedings of the 17th Koli Calling International Conference on Computing Education Research, Koli Calling ’17, page 40-49, New York, NY, USA. Association for Computing Machinery.

[Head et al. 2017] Head, A., Glassman, E., Soares, G., Suzuki, R., Figueredo, L., D'Antoni, L., and Hartmann, B. (2017). Writing reusable code feedback at scale with mixed- initiative program synthesis. In Proceedings of the Fourth (2017) ACM Conference on Learning @ Scale, L@S '17, page 89-98, New York, NY, USA. Association for Computing Machinery.

[Hermans and Aivaloglou 2017] Hermans, F. and Aivaloglou, E. (2017). To scratch or not to scratch? a controlled experiment comparing plugged first and unplugged first pro¬gramming lessons. In Proceedings of the 12th Workshop on Primary and Secondary Computing Education, WiPSCE '17, page 49-56, New York, NY, USA. Association for Computing Machinery.

[Hicks et al. 2014] Hicks, A., Peddycord II, B., Rindos, I., and Simmons, C. (2014). A com-parison of two approaches for hint generation in programming tutors (abstract only). In Proceedings of the 45th ACM Technical Symposium on Computer Science Educa¬tion, SIGCSE '14, page 718-719, New York, NY, USA. Association for Computing Machinery.

[Jeuring et al. 2014] Jeuring, J., van Binsbergen, L. T., Gerdes, A., and Heeren, B. (2014). Model solutions and properties for diagnosing student programs in ask-elle. In Pro¬ceedings of the Computer Science Education Research Conference, CSERC ’14, page 31-40, New York, NY, USA. Association for Computing Machinery.

[Kaila et al. 2018a] Kaila, E., Laakso, M. ., Rajala, T., Makelainen, A., and Lokkila, E. (2018a). Technology-enhanced programming courses for upper secondary school stu¬dents. In 2018 41st International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), pages 0683-0688.

[Kaila et al. 2018b] Kaila, E., Laakso, M., and Kurvinen, E. (2018b). Teaching future te¬achers to code — programming and computational thinking for teacher students. In 2018 41st International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), pages 0677-0682.

[Kakeshita and Ohta 2016] Kakeshita, T. and Ohta, K. (2016). Student feedback function for web-based programming education support tool pgtracer. In 2016 5th IIAI Interna¬tional Congress on Advanced Applied Informatics (IIAI-AAI), pages 322-327.

[Karavirta et al. 2015] Karavirta, V., Haavisto, R., Kaila, E., Laakso, M., Rajala, T., and Salakoski, T. (2015). Interactive learning content for introductory computer science course using the ville exercise framework. In 2015 International Conference on Lear¬ning and Teaching in Computing and Engineering, pages 9-16.

[Keuning et al. 2014] Keuning, H., Heeren, B., and Jeuring, J. (2014). Strategy-based fe¬edback in a programming tutor. In Proceedings of the Computer Science Education Research Conference, CSERC ’14, page 43-54, New York, NY, USA. Association for Computing Machinery.

[Keuning et al. 2017] Keuning, H., Heeren, B., and Jeuring, J. (2017). Code quality issues in student programs. In Proceedings of the 2017 ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE’17, page 110-115, New York, NY, USA. Association for Computing Machinery.

[Kitchenham 2004] Kitchenham, B. (2004). Procedures for performing systematic reviews.

[Krugel and Hubwieser 2017] Krugel, J. and Hubwieser, P. (2017). Computational thinking as springboard for learning object-oriented programming in an interactive mooc. In 2017 IEEE Global Engineering Education Conference (EDUCON), pages 1709-1712.

[Lazar et al. 2018] Lazar, T., Sadikov, A., and Bratko, I. (2018). Rewrite rules for debugging student programs in programming tutors. IEEE Transactions on Learning Technolo¬gies, 11(4):429440.

[Machuca and Solarte Pabon 2016] Machuca, L. and Solarte Pabon, O. (2016). Improving student performance in a first programming course. In Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE '16, page 367, New York, NY, USA. Association for Computing Machinery.

[Makihara 2015] Makihara, E. (2015). Pockets: A tool to support exploratory programming for novices and educators. In Proceedings of the 2015 10th Joint Meeting on Foun¬dations of Software Engineering, ESEC/FSE 2015, page 1066-1068, New York, NY, USA. Association for Computing Machinery.

[Matsuzawa et al. 2015] Matsuzawa, Y., Ohata, T., Sugiura, M., and Sakai, S. (2015). Lan-guage migration in non-cs introductory programming through mutual language transla¬tion environment. In Proceedings of the 46th ACM Technical Symposium on Computer Science Education, SIGCSE ’15, page 185-190, New York, NY, USA. Association for Computing Machinery.

[Miller et al. 2014] Miller, H., Haller, P., Rytz, L., and Odersky, M. (2014). Functional programming for all! scaling a mooc for students and professionals alike. In Com¬panion Proceedings of the 36th International Conference on Software Engineering, ICSE Companion 2014, page 256-263, New York, NY, USA. Association for Compu¬ting Machinery.

[Moreira et al. 2018] Moreira, G. L., Holanda1, W., da S. Coutinho, J. C., and Chagas, F. S. (2018). Desafios na aprendizagem de programação introdutória em cursos de ti da ufersa, campus pau dos ferros: um estudo exploratório. In Proceedings of the III Encontro do Oeste Potiguar, ECOP ’18, pages 90-96. ECOP.

[Ohshima et al. 2016] Ohshima, Y., Warth, A., Freudenberg, B., Lunzer, A., and Kay, A. (2016). Towards making a computer tutor for children of all ages: A memo. In Proce¬edings of the Programming Experience 2016 (PX/16) Workshop, PX/16, page 21-25, New York, NY, USA. Association for Computing Machinery.

[Pollari-Malmi et al. 2017] Pollari-Malmi, K., Guerra, J., Brusilovsky, P., Malmi, L., and Sirkia, T. (2017). On the value of using an interactive electronic textbook in an intro¬ductory programming course. In Proceedings of the 17th Koli Calling International Conference on Computing Education Research, Koli Calling '17, page 168-172, New York, NY, USA. Association for Computing Machinery.

[Queiroz et al. 2018] Queiroz, J. V., Rodrigues, L. M., and Coutinho, J. (2018). Um relato dos fatores motivacionais na aprendizagem de programação na perspectiva de alunosiniciantes em programagao da universidade federal rural do semi-árido campus pau dos ferros-rn. In Proceedings of the HI Encontro do Oeste Potiguar, ECOP ’18, pages 90-96. ECOP.

[Quinson and Oster 2015] Quinson, M. and Oster, G. (2015). A teaching system to learn programming: The programmer's learning machine. In Proceedings of the 2015 ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE ’15, page 260-265, New York, NY, USA. Association for Computing Machinery.

[Rolim et al. 2020] Rolim, R., Leite, F. T., de Oliveira Guimarães, A., and de Oliveira, A. R. (2020). Pré-algoritmos - ações de apoio a melhoria do ensino de graduação. Brazilian Journal of Development, 6(3):12625-12635.

[Schilling 2015] Schilling, W. W. (2015). Analyzing the impact of asynchronous multi¬media feedback on novice computer programmers. In Proceedings of the 2015 IEEE Frontiers in Education Conference (FIE), FIE ’15, page 1-8, USA. IEEE Computer Society.

[Shahid et al. 2019] Shahid, M., Wajid, A., Haq, K. U., Saleem, I., and Shujja, A. H. (2019). A review of gamification for learning programming fundamental. In 2019 International Conference on Innovative Computing (ICIC), pages 1-8.

[Suzuki et al. 2017] Suzuki, R., Soares, G., Glassman, E., Head, A., D'Antoni, L., and Hartmann, B. (2017). Exploring the design space of automatically synthesized hints for introductory programming assignments. In Proceedings of the 2017 CHI Confe¬rence Extended Abstracts on Human Factors in Computing Systems, CHI EA '17, page 2951-2958, New York, NY, USA. Association for Computing Machinery.

[Thinakaran and Ali 2015] Thinakaran, R. and Ali, R. (2015). Work in progress: An initial review in programming tutoring tools. In 2015 IEEE International Conference on Teaching, Assessment, and Learningfor Engineering (TALE), pages 1-4.

[Wang et al. 2017] Wang, Y., White, W. M., and Andersen, E. (2017). Pathviewer: Visua¬lizing pathways through student data. In Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems, CHI '17, page 960-964, New York, NY, USA. Association for Computing Machinery.

[Yan et al. 2017] Yan, Y., Hara, K., Kazuma, T., and He, A. (2017). A method for per-sonalized C programming learning contents recommendation to enhance traditional instruction. In 2017 IEEE 31st International Conference on Advanced Information Networking and Applications (AINA), pages 320-327.

[Yoshizawa and Watanobe 2018] Yoshizawa, Y. and Watanobe, Y. (2018). Logic error de-tection algorithm for novice programmers based on structure pattern and error degree. In 2018 9th International Conference on Awareness Science and Technology (iCAST), pages 297-301.

Published

2020-05-20

How to Cite

Costa, R. R., & de Sousa, R. R. (2020). O Uso de Tutores de Programação Inteligentes na Produção de Feedback para Estudantes em Tarefas de Programação: Uma Revisão Sistemática da Literatura / The Use of Intelligent Programming Tutors in Producing Feedback for Students in Programming Tasks: A Systematic Literature Review. Brazilian Journal of Development, 6(5), 29481–29496. https://doi.org/10.34117/bjdv6n5-413

Issue

Section

Original Papers