Feedback dos alunos sobre a qualidade de código-fonte para apoiar o aprendizado de introdução à programação.

Detalhes bibliográficos
Ano de defesa: 2018
Autor(a) principal: ANDRADE, José Raul de Brito.
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Campina Grande
Brasil
Centro de Engenharia Elétrica e Informática - CEEI
PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
UFCG
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/12706
Resumo: As disciplinas introdutórias de programação, tipicamente, envolvem uma grande quantidade de atividades, o que torna custoso fornecer manualmente feedback para cada aluno ao longo do semestre letivo. Desse modo, são propostas diversas abordagens com intuito de prover feedback automático sobre o código dos alunos. O foco principal desses trabalhos está no feedback funcional. Isto é, se o programa está correto de acordo com testes pré-definidos pelos professores. Contudo, há também a necessidade de analisar a qualidade do código dos alunos. Embora haja esforços de pesquisa nesse sentido, as abordagens propostas se concentram na análise automatizada de aspectos sintáticos, como os critérios propostos no PEP 8, mas que podem levar a um feedback genérico. Nesta dissertação, investigamos se, ao incluir os alunos como avaliadores, poderíamos fornecer feedback personalizado (detalhado) sobre a qualidade do código-fonte. Assim, nesta dissertação, a questão principal é se os alunos podem avaliar qualitativamente os programas de seus pares. Para isso, realizamos um estudo para verificar se os alunos elaboram dicas úteis e similares aos professores da disciplina. Descobrimos que a maioria dos estudantes consegue elaborar dicas úteis e identificar problemas de qualidade similares às dos professores da disciplina em um nível significativo, mesmo que não ideal. Além disso, são particularmente hábeis em elaborar dicas sobre problemas relacionados à complexidade dos programas. Replicamos esse estudo em outro cenário e obtivemos resultados semelhantes para corroborar o que observamos. Entendendo que os estudantes conseguem elaborar dicas, conduzimos uma prática de revisão de código por pares. Descobrimos que os alunos podem ser específicos e propor alternativas para os problemas identificados. Contudo, os mais avançados na disciplina elaboram dicas mais explicativas. Por fim, aplicamos métricas de qualidade de software nos códigos antes e depois dos alunos receberam as dicas e descobrimos que houve melhoria. Verificamos que o conhecimento do aluno influencia no seu resultado, mas observamos que a experiência em prover feedback e a motivação também são fatores de impacto no desempenho. Este estudo pode levar a investigações adicionais sobre como abordar a qualidade do código na aprendizagem colaborativa e em disciplinas mais avançadas de programação.