Machine Teaching: uma ferramenta didática e de análise de dados para suporte a cursos introdutórios de programação

Resumo


O Machine Teaching é um ambiente de aprendizagem online de programação utilizado desde 2018 como ferramenta de apoio em cursos introdutórios. Além de apoiar os alunos em suas práticas e os professores na correção das tarefas, o Machine Teaching coleta dados enquanto os alunos programam. Esses dados são analisados e usados para apoiar a tomada de decisões. Em seu atual estágio de desenvolvimento, a meta é transformar as análises de dados implementadas em ações concretas, que implementem melhorias no curso e no processo de aprendizagem. Para isso, investigamos se a ferramenta projetada é útil para professores e alunos, quais dados devem ser coletados, e se sua apresentação é adequada aos processos de decisão dos diferentes atores no cenário de ensino introdutório de programação. Nossos resultados indicam que o sistema cumpre parcialmente com as metas estabelecidas, como sua usabilidade e utilidade, mas que há espaço para avanços no suporte à decisão.

Palavras-chave: Ensino de programação, análise de dados educacionais, ambiente educacional

Referências

Luis Gustavo Araujo, Roberto Bittencourt, and Christina Chavez. 2021. Python Enhanced Error Feedback: Uma IDE Online de Apoio ao Processo de Ensino- Aprendizagem em Programação. In Anais do Simpósio Brasileiro de Educação em Computação (On-line). SBC, Porto Alegre, RS, Brasil, 326–333. https://doi.org/10.5753/educomp.2021.14500

Jean Luca Bez, Carlos E. Ferreira, and Neilor Tonin. 2013. URI Online Judge Academic: A Tool for Professors. In Proceedings of the 2013 International Conference on Advanced ICT and Education (Hainan, China). 744–747. https://doi.org/10.2991/icaicte.2013.153

Jean Luca Bez, Neilor Tonin, and Fabio Zanin. 2012. Enhancing traditional Algorithms classes using URI Online Judge. In 2012 International Conference on e-Learning and e-Technologies in Education (ICEEE) (Lodz, Poland). 110–113. https://doi.org/10.1109/ICeLeTE.2012.6333402

Mike Cohn. 2004. User Stories Applied: For Agile Software Development (1 ed.). Addison-Wesley Professional, IL, USA

Delgado, C. et al. 2016. The teaching of functions as the first step to learn imperative programming. In Anais do Workshop sobre Educação em Computação (WEI). Sociedade Brasileira de Computação - SBC, 388–397. https://doi.org/10.5753/wei.2016.9683

Leandro Galvão e David Fernandes e Bruno Gadelha. 2016. Juiz online como ferramenta de apoio a uma metodologia de ensino híbrido em programação. Brazilian Symposium on Computers in Education (Simpósio Brasileiro de Informática na Educação - SBIE) 27, 1, 140–149. https://doi.org/10.5753/cbie.sbie.2016.140

Stephen H. Edwards and Manuel A. Perez-Quinones. 2008. Web-CAT: automatically grading programming assignments. In Proc. 13th Annu. Conf. on Innovation and Technology Computer Science Education. Madrid, Spain, 328. https://doi.org/10.1145/1384271.1384371

Stephen H. Edwards, Daniel S. Tilden, and Anthony Allevato. 2014. Pythy: improving the introductory python programming experience. In Proc. 45th ACM technical symposium on Computer science education. Atlanta, GA, USA, 641–646. https://doi.org/10.1145/2538862.2538977

David Hovemeyer and Jaime Spacco. 2013. CloudCoder: A web-based programming exercise system. J. Comput. Sci. in Colleges 28, 3, 30

Petri Ihantola, Arto Vihavainen, Alireza Ahadi, Matthew Butler, Jürgen Börstler, Stephen H. Edwards, Essi Isohanni, Ari Korhonen, Andrew Petersen, Kelly Rivers, Miguel Ángel Rubio, Judy Sheard, Bronius Skupas, Jaime Spacco, Claudia Szabo, and Daniel Toll. 2015. Educational Data Mining and Learning Analytics in Programming: Literature Review and Case Studies. In Proc. 2015 ITiCSE Working Group Report. Vilnius, Lithuania, 41–63. https://doi.org/10.1145/2858796.2858798

Jelena Jovanović, Shane Dawson, Srećko Joksimović, and George Siemens. 2020. Supporting actionable intelligence: reframing the analysis of observed study strategies. In Proceedings of the 10th International Conference on Learning Analytics & Knowledge (LAK ’20). Association for Computing Machinery, New York, NY, USA, 161–170. https://doi.org/10.1145/3375462.3375474

Garm Lucassen, Fabiano Dalpiaz, Jan Martijn E. M. van der Werf, and Sjaak Brinkkemper. 2016. The Use and Effectiveness of User Stories in Practice. In International working conference on requirements engineering: Foundation for software quality (LNCS, Vol. 9619). 205–222. https://doi.org/10.1007/978-3-319-30282-9_14

Andrew Luxton-Reilly, Simon, Ibrahim Albluwi, Brett A. Becker, Michail Giannakos, Amruth N. Kumar, Linda Ott, James Paterson, Michael James Scott, Judy Sheard, and Claudia Szabo. 2018. Introductory Programming: A Systematic Literature Review. In Proc. Companion 23rd Annu. ACM Conf. Innovation and Technology in Computer Science Education (ITiCSE 2018 Companion). Larnaca, Cyprus, 55–106. https://doi.org/10.1145/3293881.3295779

Carlos Monroy, Virginia Snodgrass Rangel, and Reid Whitaker. 2013. STEMscopes: contextualizing learning analytics in a K-12 science curriculum. In Proceedings of the Third International Conference on Learning Analytics and Knowledge (LAK ’13). Association for Computing Machinery, New York, NY, USA, 210–219. https://doi.org/10.1145/2460296.2460339

Laura O. Moraes and Carlos Eduardo Pedreira. 2020. Designing an Intelligent Tutoring System Across Multiple Classes. In 4th Educational Data Mining in Computer Science Education Workshop (Virtual)

Laura O. Moraes and Carlos Eduardo Pedreira. 2021. Clustering Introductory Computer Science Exercises Using Topic Modeling Methods. IEEE Trans. Learn. Technol. 14, 1, 42–54. https://doi.org/10.1109/TLT.2021.3056907

Laura O. Moraes, Carlos Eduardo Pedreira, Carla Delgado, and João Pedro Freire. 2021. Supporting Decisions Using Educational Data Analysis. In Anais Estendidos do Simpósio Brasileiro de Sistemas Multimídia e Web (WebMedia). SBC, 99–102. https://doi.org/10.5753/webmedia_estendido.2021.17622

Krishnan Panamalai Murali. 2016. CodeWorkout: Design and implementation of an online drill-and-practice system for introductory programming. Thesis. Virginia Tech. https://vtechworks.lib.vt.edu/handle/10919/81072

Andrei Papancea, Jaime Spacco, and David Hovemeyer. 2013. An open platform for managing short programming exercises. In Proc. 2013 ACM Conf. Int. Computing Education Research. San Diego, CA, USA, 47–52. https://doi.org/10.1145/2493394.2493401

Abelardo Pardo, Kathryn Bartimote, Simon Buckingham Shum, Shane Dawson, Jing Gao, Dragan Gašević, Steve Leichtweis, Danny Liu, Roberto Martínez-Maldonado, Negin Mirriahi, Adon Christian Michael Moskal, Jurgen Schulte, George Siemens, and Lorenzo Vigentini. 2018. OnTask: Delivering Data-Informed, Personalized Learning Support Actions. Learning Analytics 5, 3, 235–249. https://doi.org/10.18608/jla.2018.53.15

Roger S. Pressman and Bruce Maxim. 2014. Software Engineering: A Practitioner’s Approach (8ª edição ed.). McGraw-Hill Science/Engineering/Math, New York, NY.

Python Tutor. [n.d.]. Python Tutor. https://pythontutor.com/. Online; accessed 28-October-2021.

Yizhou Qian and James Lehman. 2017. Students’ Misconceptions and Other Difficulties in Introductory Programming: A Literature Review. ACM Trans. Comput. Educ. 18, 1, Article 1, 24 pages. https://doi.org/10.1145/3077618

Carolyn P. Rosé, Elizabeth A. McLaughlin, Ran Liu, and Kenneth R. Koedinger. 2019. Explanatory learner models: Why machine learning (alone) is not the answer. British Journal of Educational Technology 50, 6, 2943–2958. https://doi.org/10.1111/bjet.12858

I. Sommerville. 2011. Engenharia de software (9 ed.). Pearson Prentice Hall, São Paulo, Brasil. 57–80 pages

Juha Sorva and Teemu Sirkiä. 2010. UUhistle: a software tool for visual program simulation. In Proc. 10th Koli Calling Int. Conf. Computing Education Research. Koli, Finland, 49–54. https://doi.org/10.1145/1930464.1930471

Chunpai Wang, Shaghayegh Sahebi, Siqian Zhao, Peter Brusilovsky, and Laura O. Moraes. 2021. Knowledge Tracing for Complex Problem Solving: Granular Rank- Based Tensor Factorization. In Proceedings of the 29th ACM Conference on User Modeling, Adaptation and Personalization (Utrecht, Netherlands) (UMAP ’21). Association for Computing Machinery, New York, NY, USA, 179–188. https://doi.org/10.1145/3450613.3456831

Daniel Zingaro, Yuliya Cherenkova, Olessia Karpova, and Andrew Petersen. 2013. Facilitating code-writing in PI classes. In Proc. 44th ACM Technical Symp. Computer Science Education. Denver, CO, USA, 585–590. https://doi.org/10.1145/2445196.2445369
Publicado
24/04/2022
MORAES, Laura O.; DELGADO, Carla A. D. M.; FREIRE, João Pedro; PEDREIRA, Carlos Eduardo. Machine Teaching: uma ferramenta didática e de análise de dados para suporte a cursos introdutórios de programação. In: SIMPÓSIO BRASILEIRO DE EDUCAÇÃO EM COMPUTAÇÃO (EDUCOMP), 2. , 2022, Online. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2022 . p. 213-223. DOI: https://doi.org/10.5753/educomp.2022.19216.