Exploração de análises automatizadas de repositórios de códigos para feedback frequente a alunos de programação

View/ Open
Date
2017-05-19Primeiro membro da banca
Guerra, Eduardo Martins
Segundo membro da banca
Augustin, Iara
Metadata
Show full item recordAbstract
Programação é uma habilidade difícil de ensinar e aprender, e as dificuldades de aprendizado são recorrentes entre
alunos de Computação. Tal dificuldade decorre de sua natureza abstrata, fato que é corroborado pela extensa
literatura sobre o assunto, e está diretamente relacionado aos índices de reprovação e evasão dos cursos da área.
As primeiras discussões sobre o assunto datam da década de 80, e diversas trabalhos ressaltam a importância do
tópico dado o seu efeito abrangente em todo o período de formação de um aluno. É possível identificar uma linha
de discussões sobre metodologias para o ensino-aprendizagem de programação que seguem uma abordagens reativa,
que sugerem soluções para problemas específicos identificados em turmas de programação. Tal abordagem é
conhecida como padrão pedagógico, e tem como objetivo a caracterização de um problema pontual e sua respectiva
solução, e cobre aspectos como contexto, forças, fraquezas, recursos e consequências. Na linha de discussão
de padrões pedagógicos, há trabalhos afirmando que acompanhar o progresso dos alunos, individualmente, é um
dos maiores desafios enfrentados pelos professores de programação, visto que é uma atividade trabalhosa e que
demanda muito tempo do educador, e que por vezes mostra-se inviável frente a turmas grandes. Em linhas gerais,
o progresso dos alunos costuma ser verificado por meio de atividades práticas de programação, que consistem na
elaboração de soluções computacionais para uma série de problemas sugeridos pelo educador. Posteriormente,
a análise minuciosa dos códigos dos alunos é capaz de indicar deficiências de aprendizado. A acompanhamento
dos alunos por meio de atividades práticas também possibilita o emprego de ferramentas de análise automatizada
de código, que potencialmente resulta em uma redução da carga de trabalho do educador, que poderia ser melhor
gasto na avaliação de novas estratégias e metodologias de atividades didáticas. Este trabalho propõe uma solução
para análise automatizada de repositórios de código de alunos de programação empregando-se ferramentas de análise
estática de código. O método proposto sugere que as atividades práticas de programação sejam desenvolvidas
dentro de um repositório git fazendo uso de serviços de hospedagem online como Github e Bitbucket, e prevê a
análise simultânea de vários repositórios de código de uma turma de programação, agregando os resultados em
uma interface de visualização integrada. Por tratar-se da automatização de um processo, o método possibilita um
feedback rápido para instrutor e alunos da disciplina, promovendo de um parecer antecipado sobre as soluções das
atividades práticas durante o seu desenvolvimento, habilitando a correção das implementações antes do prazo de
entrega final das atividades. Adicionalmente, a abordagem estimula a frequente interação com sistemas de controle
de versão, exercitando as habilidades dos alunos com esse tipo de ferramenta. Os experimentos conduzidos
mostraram que a abordagem é válida, fornecendo indícios ao educador sobre a formação de seus alunos. Os educadores
que cederam acesso aos repositórios de código de suas disciplinas relataram o interesse dos alunos que
participaram do experimento, que foi verificado pela solicitação de acesso as detecções apontadas pela ferramenta.
Collections
The following license files are associated with this item: