Automação de feedback para melhorar a nomeação de identificadores de alunos. - NASCIMENTO, Marcos Antônio Silva. (2019)
A legibilidade do programa é uma característica fundamental da qualidade de software. Portanto, fornecer feedback oportuno sobre a nomeação de identificadores pode ajudar a melhorar o treinamento de programadores novatos em educação de programação. De fato, vários estudos presentes na literatura da engenharia de software indicam que um código fonte que contém nomes bem escolhidos de identificadores é mais fácil de entender e menos propenso ao erro em tarefas de manutenção. Entretanto, devido aos inúmeros estudantes aprendendo a programar nos dias de hoje em cursos de programação, fornecer feedback manual sobre a qualidade dos nomes de identificadores torna-se proibitivo por causa da alta carga de trabalho imposta aos instrutores. Durante a pesquisa deste mestrado, nós propusemos um método inovador para gerar e fornecer feedback automático sobre a avaliação da adequação dos nomes de identificadores em contraste às verificações de convenções de nomenclatura. Nosso desafio foi fornecer a estudantes feedback elaborado e oportuno para ajudá-los a escolher nomes mais apropriados para denotar identificadores de seus códigos. Nós implementamos e avaliamos nossa proposta em um curso de programação introdutória. Inicialmente, investigamos e verificamos que é possível encontrar automaticamente nomes considerados inapropriados de identificadores de código, com a intenção de usar esta informação para gerar o feedback automático. Em sequência, nós investigamos e testemunhamos que podemos gerar e fornecer o feedback automático para estudantes, de modo a ajudá-los na escolha de nomes de identificadores de seus códigos de melhor qualidade. A principal contribuição desta pesquisa é que podemos fornecer o feedback automático para encorajar alunos a melhorar os nomes que eles escolhem para denotar identificadores de seus códigos. Com isso, poderemos ajudar estudantes a melhorar a nomeação dos identificadores e, em consequência, a legibilidade do seu programa, desde suas primeiras experiências de codificação.