Eventos Acadêmicos do IFPB, 4º Simpósio de Pesquisa, Inovação e Pós-Graduação

Tamanho da fonte: 
Modelo de Recomendação de Dicas para Resolução de Problemas de Programação, Um Estudo Preliminar
Fabricio Gustavo de Paiva Vicente, Thiago Gouveia da Silva

Última alteração: 2021-11-18

Resumo


O estudo de programação é essencial para cursos de nível superior em Informática, tais como Sistemas para Internet, Redes de Computadores, Engenharia de Software, Computação e afins, como também para diversos outros cursos das áreas de Exatas, Humanas e Ciências Biológicas [Bosse e Gerosa 2015]. Não obstante a grande importância, as disciplinas iniciais de programação comumente apresentam altos índices de reprovação e desistência [Chaves et al. 2013]. Ter conhecimento de programação é uma tarefa difícil, principalmente para alunos em etapas iniciais, ainda se adaptando à universidade. Se faz necessário ter uma base em matemática e lógica e dedicação para resolver diversos problemas e exercícios.

Há várias causas identificadas para o grande número de reprovações em disciplinas de programação, dentre estas destacam-se: (i) os alunos apresentam dificuldades em aprender conceitos de programação; (ii) os alunos apresentam dificuldades em aplicar conceitos de programação; (iii) os alunos apresentam dificuldades em compreender códigos de programas; (iv) os alunos apresentam dificuldade em dividir problemas em módulos; (v) os alunos apresentam falta de interesse ou desânimo para resolver problemas de programação; (vi) os professores apresentam dificuldades em ensinar os conceitos de programação, desenvolver materiais e exercícios de apoio, bem como avaliar os trabalhos de programação [Souza, Batista e Barbosa 2016].

Este trabalho busca propor um modelo de recomendação de dicas para resolução de problemas que seja eficaz e vá direto ao ponto para que o estudante consiga destravar a resolução de um problema. Para construir este modelo, utilizaremos o conhecido algoritmo KNN (K-Nearest Neighbors) [Guo et al. 2003] para classificação dos problemas e recomendação da dica. Baseado no código do aluno que não acertou a questão e em informações específicas do problema, o modelo sugere dicas onde o aluno poderá ter insights para conseguir resolver os exercícios propostos.

Serão discutidos o algoritmo KNN e o procedimento de geração de dados sintéticos,  conceitos foram utilizados para a criação do modelo. O objetivo do KNN é determinar a qual grupo uma determinada amostra vai pertencer com base nas amostras vizinhas. O princípio por trás do método dos k vizinhos mais próximos é encontrar um número de amostras (k) de treinamento mais próximas (dado algum critério pré-definido de distância) do novo ponto e prever o rótulo a partir deles. O número de amostras pode ser uma constante definida pelo usuário ou pode variar com base na densidade local de pontos (aprendizado de vizinho baseado em raio). A distância pode, em geral, ser qualquer medida métrica, sendo a distância euclidiana padrão a escolha mais comum.

Texto completo: PDF