Uma Revisão Sistemática da Literatura das Técnicas para Auxiliar Estudantes na Resolução de Tarefas de Programação / A Systematic Review of the Literature of Techniques to Assist Students in Solving Program Tasks

Ângelo Gabriel Lopes da Silva, Reudismam Rolim de Sousa

Abstract


O aprendizado de programação pode se tornar uma dificuldade para os estudantes da área de computação e o mercado está cada vez mais dependente de software, requerente profissões capacitados. Vários estudos foram realizados no sentido de elevar a taxa de sucesso em disciplinas voltadas a programação. Em especial, as abordagens baseadas em aprendizado de máquina permitem auxiliar os estudantes de forma automática. Neste sentido, este trabalho é realizada uma revisão sistemática da literatura sobre as técnicas de aprendizagem de máquina que foram utilizadas para auxiliar estudantes na resolução de problemas de programação. Como resultado, foram identificados 21 trabalhos, em que elencou-se diferentes características tais como linguagens de programação alvo e abordagem de aprendizado de máquina empregada.


Keywords


Algoritmos, Educação, Computação, Aprendizado de Máquina

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.

[Ahadi 2016] Ahadi, A. (2016). Early identification of novice programmers’ challenges in coding using machine learning techniques. In Proceedings of the 2016 ACM Conference on International Computing Education Research, ICER ’16, page 263–264, New York, NY, USA. Association for Computing Machinery.

[Ahadi et al. 2015] Ahadi, A., Lister, R., Haapala, H., and Vihavainen, A. (2015). Exploring machine learning methods to automatically identify students in need of assistance. In Proceedings of the Eleventh Annual International Conference on International Computing Education Research, ICER ’15, page 121–130, New York, NY, USA. Association for Computing Machinery.

[Ahadi et al. 2018] Ahadi, A., Lister, R., and Mathieson, L. (2018). Syntax error based quantification of the learning progress of the novice programmer. In Proceedings of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE 2018, page 10–14, New York, NY, USA. Association for Computing Machinery.

[Ahmed et al. 2018] Ahmed, U. Z., Kumar, P., Karkare, A., Kar, P., and Gulwani, S. (2018). Compilation error repair: For the student programs, from the student programs. In Proceedings of the 40th International Conference on Software Engineering: Software Engineering Education and Training, ICSE-SEET ’18, page 78–87, New York, NY, USA. Association for Computing Machinery.

[Birch et al. 2016] Birch, G., Fischer, B., and Poppleton, M. (2016). Using fast model-based fault localisation to aid students in self-guided program repair and to improve assessment. In Proceedings of the 2016 ACM Conference on Innovation and Technology in Computer Science Education, ITiCSE ’16, page 168–173, New York, NY, USA. Association for Computing Machinery.

[Birch et al. 2019] Birch, G., Fischer, B., and Poppleton, M. (2019). Fast test suite-driven model-based fault localisation with application to pinpointing defects in student programs. Softw. Syst. Model., 18(1):445–471.

[Bui and Mustapha 2018] Bui, H. T. and Mustapha, S. M. F. D. S. (2018). Automated datadriven hint generation in intelligent tutoring systems for code-writing: On the road of future research. iJET, 13:174–189.

[Eicher et al. 2018] Eicher, B., Joyner, D. A., and Goel, A. (2018). Leveraging mutual theory of mind for more human-like intelligent tutoring systems. In 14th International Conference on Intelligent Tutoring Systems, pages 490–492, Cham. Springer International Publishing.

[Fabbri et al. 2016] Fabbri, S., Silva, C., Hernandes, E., Octaviano, F., Di Thommazo, A., and Belgamo, A. (2016). Improvements in the start tool to better support the systematic review process. In Proceedings of the 20th International Conference on Evaluation and Assessment in Software Engineering, EASE ’16, New York, NY, USA. Association for Computing Machinery.

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

[Junior et al. 2005] Júnior, J. C. R. P., Rapkiewicz, C. E., Delgado, C., and Xexeo, J. A. M. (2005). Ensino de algoritmos e programação: Uma experiência no nível médio. In Proceedings of the Workshop sobre Educação em Computação, WEI ’05, pages 2351– 2362. WEI.

[Kato et al. 2018] Kato, T., Kambayashi, Y., Terawaki, Y., and Kodama, Y. (2018). Analysis of students’ behaviors in programming exercises using deep learning. In Uskov, V. L., Howlett, R. J., and Jain, L. C., editors, Smart Education and e-Learning 2017, pages 38–47, Cham. Springer International Publishing.

[Kim et al. 2016] Kim, D., Kwon, Y., Liu, P., Kim, I. L., Perry, D. M., Zhang, X., and Rodriguez-Rivera, G. (2016). Apex: Automatic programming assignment error explanation. SIGPLAN Not., 51(10):311–327.

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

[Lee et al. 2018] Lee, J., Song, D., So, S., and Oh, H. (2018). Automatic diagnosis and correction of logical errors for functional programming assignments. Proc. ACM Program. Lang., 2(OOPSLA).

[Lungu 2019] Lungu, M. (2019). Designing personalized learning environments through monitoring and guiding user interactions with code and natural language. In Proceedings of the 1st ACM SIGSOFT International Workshop on Education through Advanced Software Engineering and Artificial Intelligence, EASEAI 2019, page 5–8, New York, NY, USA. Association for Computing 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.

[Pu et al. 2016] Pu, Y., Narasimhan, K., Solar-Lezama, A., and Barzilay, R. (2016). Sk p: A neural program corrector for moocs. In Companion Proceedings of the 2016 ACM SIGPLAN International Conference on Systems, Programming, Languages and Applications: Software for Humanity, SPLASH Companion 2016, page 39–40, 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 programacão na perspectiva de alunos iniciantes em programação da Universidade Federal Rural do Semi-Árido campus Pau dos Ferros-RN. In Proceedings of the III Encontro do Oeste Potiguar, ECOP ’18, pages 90–96. ECOP.

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

[Royal 2012] Royal, S. (2012). Shut down or restart? The way forward for computing in UK schools. The Royal Academy of Engineering, january edition.

[Santos et al. 2018a] Santos, E. A., Campbell, J. C., Patel, D., Hindle, A., and Amaral, J. N. (2018a). Syntax and sensibility: Using language models to detect and correct syntax errors. In 2018 IEEE 25th International Conference on Software Analysis, Evolution and Reengineering (SANER), pages 311–322.

[Santos et al. 2018b] Santos, P. S. C., Araujo, L. G. J., and Bittencourt, R. A. (2018b). A mapping study of computational thinking and programming in brazilian k-12 education. In 2018 IEEE Frontiers in Education Conference (FIE), pages 1–8.

[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.

[Sharma et al. 2018] Sharma, S., Agarwal, P., Mor, P., and Karkare, A. (2018). Tipsc: Tips and corrections for programming moocs. In Penstein Rose, C., Martínez-Maldonado, R., Hoppe, H. U., Luckin, R., Mavrikis, M., Porayska-Pomsta, K., McLaren, B., and du Boulay, B., editors, Artificial Intelligence in Education, pages 322–326, Cham. Springer International Publishing.

[Silva et al. 2019] Silva, P., Costa, E., and de Araújo, J. R. (2019). An adaptive approach to provide feedback for students in programming problem solving. In Coy, A., Hayashi, Y., and Chang, M., editors, Intelligent Tutoring Systems, pages 14–23, Cham. Springer International Publishing.

[Sommerville 2010] Sommerville, I. (2010). Software Engineering. Addison-Wesley Publishing Company, USA, 9th edition.

[Song et al. 2019] Song, D., Lee, M., and Oh, H. (2019). Automatic and scalable detection of logical errors in functional programming assignments. Proc. ACM Program. Lang., 3(OOPSLA).

[Tabanao 2009] Tabanao, E. S. (2009). Identifying at-risk novice java programmers through the analysis of online protocols.

[Wang et al. 2018] Wang, K., Singh, R., and Su, Z. (2018). Search, align, and repair: Datadriven feedback generation for introductory programming exercises. SIGPLAN Not., 53(4):481–495.

[Yi et al. 2017] Yi, J., Ahmed, U. Z., Karkare, A., Tan, S. H., and Roychoudhury, A. (2017). A feasibility study of using automated program repair for introductory programming assignments. In Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2017, page 740–751, New York, NY, USA. Association for Computing Machinery.

[Yoshizawa and Watanobe 2018] Yoshizawa, Y. and Watanobe, Y. (2018). Logic error detection 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.




DOI: https://doi.org/10.34117/bjdv6n6-046

Refbacks

  • There are currently no refbacks.