Título
A hint generation system for introductory programming exercises in Java
Autor
Gonçalves, Jorge Alexandre da Silva
Resumo
pt
Ensinar e aprender programação é um verdadeiro desafio para professores e alunos.
É normal os alunos que começam a codificar pela primeira vez sentirem-se bloqueados
ao tentar resolver um exercício de programação, ficando dependentes de ajuda de
professores ou alguém mais experiente para progredir. Porém, o aluno que trabalha
de forma autónoma pode desenvolver uma atitude proativa em relação à sua educação.
Com a atual evolução da tecnologia e os acontecimentos mundiais, o ambiente
remoto para educação é uma realidade, e logo, ferramentas que possam auxiliar os alunos,
orientando-os quando precisam, podem ser importantes para dar-lhes a autonomia
necessária. Esta dissertação propõe um sistema de recomendação que pode ser integrado
em qualquer plataforma de exercícios para reconhecer um código parcialmente
escrito e gerar dicas confiáveis e úteis (combinadas com feedback positivo) para ajudar
no progresso sempre que o aluno precisar de apoio. As dicas são geradas com base numa
solução previamente definida pelo professor. Esta dissertação descreve a implementação
de tal sistema de recomendação, baseado em árvores de sintaxe abstrata e distância
de edição das mesmas. Foi desenvolvido um protótipo de sistema composto por uma API
REST e um frontend Web como materialização da abordagem proposta.
en
Teaching and learning programming is a real challenge for teachers and students.
Students starting to code for the first time, feeling stuck when trying to solve a programming
exercise is normal, and teachers should support them in this case. The student
who works autonomously can create a proactive attitude towards his education.
With the current evolution of technology and world events, the remote environment for
education is a reality, so tools that can help students, guiding them when they need
it, can be important to give them the necessary autonomy.This dissertation proposes a
recommendation system that can be integrated into any exercise platform to recognize
a partially written code and generate reliable and useful tips (combined with positive
feedback) whenever the student needs support, based on a solution previously set by
the teacher. This dissertation describes the implementation of such a recommendation
system, based on abstract syntax trees and tree editing distance. A system prototype
composed of a REST API and a Web frontend was developed as a materialization of the
proposed approach.