É importante entender os motivos por que alguns alunos são mais bem-sucedidos do que outros ao fazer um curso, para que possamos aprimorar os métodos de ensino ao identificar as necessidades dos alunos e oferecer uma educação personalizada. Um ambiente de aprendizagem inteligente é aquele que provê visualizações, simulações e inferências aos alunos e educadores a partir de dados coletados dinamicamente [1]. Sabe-se que a adoção de um ambiente de aprendizagem inteligente em salas de aula e em ambientes de auto-aprendizagem ajuda a motivar os alunos [2]-[5], melhorar a aprendizagem, diminuir os casos de abandono e a reprovação [2], [6]-[8], enquanto aumenta a autoconfiança dos alunos, especialmente em estudantes do sexo feminino [6].
Além disso, o Python é uma linguagem de propósito geral, o que significa que pode ser usada em uma grande variedade de projetos. Isso é ótimo para estimular os alunos, pois eles podem trabalhar em projetos com os quais realmente se identificam. Python também possui uma interface amigável e, nos últimos sete anos, tem sido a linguagem de programação com maior crescimento em termos de adoção [9], estando correlacionada com carreiras em alta, como DevOps e Cientista de Dados [10]. De acordo com a revisão de 2015 [8],apenas 11 dos artigos de Mineração de Dados Educacionais e Learning Analytics sobre cursos de programação relataram o uso de Python como a linguagem utilizada no curso. No entanto, isso está mudando. Uma revisão de 2017 sobre os cursos de Introdução à Programação nas universidades da Australásia [11] relatou uma mudança de Java para Python nos últimos anos enquanto a revisão de 2018 [12] já apresentou um número maior de artigos usando Python como a linguagem principal do curso. Ainda assim, embora já tenhamos diferentes ferramentas para apoiar a aprendizagem online, ainda é difícil encontrar bancos de dados abertos contendo respostas e submissões de alunos para problemas em Python e outras informações importantes para se obter uma melhor percepção do conhecimento dos alunos.
As condições apresentadas motivam nossos principais objetivos: o desenvolvimento, a implantação e o uso de sistemas inteligentes online em aulas de Introdução à Programação usando a linguagem Python como uma forma de descobrir as dificuldades dos alunos, compreender seus conhecimentos e processos cognitivos de aprendizado e fornecer feedback para mantê-los envolvidos e engajados.
Referências
[1] P. Brusilovsky et al., “Increasing Adoption of Smart Learning Content for Computer Science Education,” 2014, doi: 10.1145/2713609.2713611.
[2] L. Benotti, M. J. Gomez, F. Aloi, and F. Bulgarelli, “The effect of a web-based coding tool with automatic feedback on students’ performance and perceptions,” SIGCSE 2018 - Proceedings of the 49th ACM Technical Symposium on Computer Science Education. 2018.
[3] I. Jivet, M. Scheffel, M. Specht, and H. Drachsler, “License to evaluate: Preparing learning analytics dashboards for educational practice,” ACM International Conference Proceeding Series. 2018.
[4] A. Latham, K. Crockett, D. McLean, and B. Edmonds, “A conversational intelligent tutoring system to automatically predict learning styles,” Computers and Education, vol. 59, no. 1, pp. 95–109, 2012, doi: 10.1016/j.compedu.2011.11.001.
[5] R. Lobb and J. Harlow, “Coderunner: A tool for assessing computer programming skills,” ACM Inroads, 2016, doi: 10.1145/2810041.
[6] A. N. Kumar, “The effect of using problem-solving software tutors on the self-confidence of female students,” ACM SIGCSE Bulletin, 2008, doi: 10.1145/1352322.1352309.
[7] E. Johns, O. M. Aodha, and G. J. Brostow, “Becoming the expert - Interactive multi-class machine teaching,” in Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2015, vol. 07-12-June, pp. 2616–2624, doi: 10.1109/CVPR.2015.7298877.
[8] P. Ihantola et al., “Educational Data Mining and Learning Analytics in Programming : Literature Review and Case Studies,” ITiCSE WGR’16, 2015, doi: 10.1145/2858796.2858798.
[9] “The Incredible Growth of Python | Stack Overflow,” Stack Overflow Blog, Sep. 06, 2017. https://stackoverflow.blog/2017/09/06/incredible-growth-python/ (accessed Aug. 28, 2020).
[10] “Stack Overflow Developer Survey 2018,” Stack Overflow. https://insights.stackoverflow.com/survey/2018/?utm_source=so-owned&utm_medium=social&utm_campaign=dev-survey-2018&utm_content=social-share (accessed Aug. 28, 2020).
[11] R. Mason and Simon, “Introductory Programming Courses in Australasia in 2016,” in Proceedings of the Nineteenth Australasian Computing Education Conference, Geelong, VIC, Australia, Jan. 2017, pp. 81–89, doi: 10.1145/3013499.3013512.
[12] A. Luxton-Reilly et al., “Introductory programming: a systematic literature review,” in Proceedings Companion of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education, Larnaca, Cyprus, Jul. 2018, pp. 55–106, doi: 10.1145/3293881.3295779.
Arthur Sasse é aluno de Ciência da Computação da UFRJ. Começou no projeto adaptando questões de Cálculo Numérico para a plataforma. Atualmente faz TCC na área de IA, focado na análise da similaridade entre os códigos submetidos pelos estudantes no Machine Teaching. | |
Beatriz Queiroz é aluna de Sistemas de Informação na UNIRIO. Começou a se aventurar recentemente na área de infraestrutura e viu no Machine Teaching uma boa oportunidade de desenvolver seu conhecimento ajudando no aprimoramento de um projeto que democratiza o aprendizado da computação. Atualmente é aluna voluntária de Iniciação Científica. | |
Carla Delgado é professora do Instituto de Computação da UFRJ e possui diversas publicações na área de tecnologias para educação e ensino de computação. Tem grande interesse na área de didática da computação e informática aplicada à educação, estando à frente de um grupo de pesquisa sobre estes temas. É co-responsável pela construção e gestão da metodologia e material didático dos cursos de programação oferecidos pelo Instituto de Computação aos alunos de praticamente todos os cursos de graduação da UFRJ na área de exatas (incluindo, por exemplo, cursos de graduação de matemática, meteorologia e todas as engenharias). | |
Carlos Eduardo Pedreira possui bacharelado (1975) e mestrado (1981) em Engenharia Elétrica pela Pontifícia Universidade Católica do Rio de Janeiro. Em 1987, ele terminou seu doutorado no Imperial College of Science, Technology and Medicine, University of London. Atualmente é Professor da Universidade Federal do Rio de Janeiro onde é chefe do setor de Inteligência Artificial do Departamento de Sistemas e Computação da COPPE (PESC/COPPE). É pesquisador visitante na Universidade de Salamanca, Espanha, desde 2002. Seus principais interesses de pesquisa são Classificação de Padrões e Aprendizado de Máquina. Ele foi o presidente fundador da Sociedade Brasileira de Inteligência Computacional e recebeu o Prêmio Banco Santander de Ciência e Inovação em 2006. Foi orientador de doutorado de Laura O. Moraes na criação deste projeto. | |
Gabriel Xará é aluno do curso de Engenharia de Computação. Se aproximou do projeto por conta de seu interesse no ensino de programação. É responsável por auxiliar na parte de infraestrutura do Machine Teaching, e também por implementar ações que garantam integração e entrega contínua aos desenvolvedores do projeto. | |
Hugo Folloni é aluno de Ciência da Computação da UFRJ. Tem grande interesse por educação voltada a tecnologia e enxergou no projeto uma chance de unir seu interesse à sua formação, participando do processo seletivo e trabalhando com as áreas de funcionalidades e infraestrutura da plataforma. Atualmente, é aluno de Iniciação Científica do projeto com bolsa privada. | |
João Pedro Freire é aluno do curso de Estatística da UFRJ. Começou no projeto como aluno, utilizando o sistema Machine Teaching durante o curso de introdução a programação. Após a finalização do curso, se voluntariou para incorporar melhorias e avançar o sistema com novas funcionalidades. Atualmente é aluno de Iniciação Científica com bolsa do CNPq neste projeto. | |
Juliana Barros de Sousa graduanda em Engenharia Eletrônica e de Computação na UFRJ, com interesse na área de ciência de dados e inteligência artificial. Orientanda da Laura Moraes no trabalho de final de curso que estuda se modelos de LLM (Large Language Models como GPT e LLAMA) são boas ferramentas de estudo para iniciantes em lógica de programação em Python. | |
Laura Moraes foi quem iniciou o projeto. Criou a plataforma durante seu doutorado em Engenharia de Sistemas e Computação (COPPE/PESC) na linha de pesquisa de Inteligência Artificial. Atualmente é professora do Colégio Pedro II e se dedica às atividades de pesquisa na área de tecnologia para educação, principalmente educação em computação. Em 2018, foi fellow no programa Data Science for Social Good, onde criou modelos para previsão de indivíduos em risco de desemprego longo organizado pela University of Chicago com a Nova SBE. Em 2019, foi finalista do 2nd PFL Engineering PhD Summit, na Suíça, onde apresentou os resultados preliminares do projeto. | |
Lucca Braga é aluno de Sistemas de Informação na UNIRIO. Buscando aprofundar seus conhecimentos e experiências na área de programação, viu no Machine Teaching a possibilidade de expandir seus estudos na área e colaborar no desenvolvimento de um projeto que contribui para o aprendizado e ensino de programação. Atualmente, atua no projeto como aluno bolsista PRADIG (Programa de Acompanhamento de Discente de Graduação). |
Renan Alves é aluno de Sistemas de Informação na UNIRIO. Visando unir seu interesse por desenvolvimento e por novas tecnologias com sua formação, notou no Machine Teaching uma forma de alavancar seus estudos na área além de poder promover uma ferramenta capaz de facilitar e impulsionar o relacionamento de cada vez mais pessoas com a programação. No momento, é aluno voluntário de Iniciação Científica. |