Tese de Doutoramento
MENTOR: Automated Feedback for Introductory Programming Exercises
2025
—Informações chave
Autores:
Orientadores:
Publicado em
10/04/2025
Resumo
A crescente procura por programação deu origem a todos os tipos de cursos focados em exercícios de programação introdutórios (IPAS). Como consequência do elevado número de alunos inscritos, o desafio principal nestes cursos é fornecer feedback útil e personalizado aos estudantes. Esta tese apresenta o MENTOR, uma ferramenta de reparação automática de programas (APR) orientada para fornecer feedback automatizado para exercícios introdutórios de programação. O MENTOR aborda este desafio gerando possíveis reparações semânticas para programas dos alunos, permitindo reparações semânticas validadas através da execução de um conjunto de testes e indicando os segmentos defeituosos aos estudantes. Ao contrário dos sistemas de reparação simbólica como o CLARA e o VERIFIX, que exigem implementações corretas com grafos de fluxo de controlo idênticos (CFGs), a abordagem do MENTOR baseada em Modelos de Linguagem de Grande Escala (LLM) permite reparações mais flexíveis, sem necessidade de alinhamento estrutural rigoroso. O MENTOR agrupa submissões corretas independentemente dos CFGs e emprega um módulo de alinhamento de variáveis baseado em Redes Neurais em Grafo (GNNS) para maior precisão. O módulo de localização de falhas do MENTOR, o CFAULTS, utiliza técnicas MaxSAT para identificar segmentos defeituosos com precisão. O módulo reparador do MENTOR integra Métodos Formais e LLMS através de um ciclo de Síntese Indutiva Guiada por Contrariedade (CEGIS), refinando iterativamente as reparações. Este trabalho propõe também um sistema de avaliação automática, GITSEED, que fornece feedback personalizado aos alunos sobre as submissões de código e integra com sucesso o CFAULTS para uma deteção eficaz de falhas no código dos estudantes. Resultados experimentais no C-PACK-IPAS demonstram que o MENTOR melhora significativamente as taxas de sucesso na reparação, alcançando 64,4% em reparações, comparado com apenas 6,3% para o VERIFIX e 34,6% para o CLARA. The increasing demand for programming education has given rise to all kinds of online evaluations such as Massive Open Online Courses (MOOCs) focused on introductory programming assignments (IPAS). As a consequence of a large number of enrolled students, one of the main challenges in these courses is to provide valuable and personalized feedback to students. This thesis presents MENTOR, a semantic automated program repair (APR) framework designed to provide Automated Feedback for Introductory Programming Exercises. MENTOR addresses this challenge by generating possible repairs for faulty student programs, enabling semantic repairs validated through execution on a test suite and by highlighting these faulty statements to the students. Hence, in the context of this work, we provide scientific contributions in several areas, such as program clustering and analysis, automated fault localization and program repair. MENTOR advances the state of the art in the referred areas and provides an innovative practical framework to be deployed in educational environments. Unlike symbolic repair tools like CLARA and VERIFIX, which require correct implementations with identical control flow graphs (CFGs), MENTOR’s Large Language Model (LLM)-based approach enables flexible repairs without strict structural alignment. MENTOR clusters successful submissions regardless of CFGs and employs a Graph Neural Network (GNN)-based variable alignment module for enhanced accuracy. MENTOR’s fault localization module, CFAULTS, leverages MaxSAT techniques to pinpoint buggy code segments precisely. MENTOR’s program fixer integrates Formal Methods (FM) and LLMS through a Counterexample Guided Inductive Synthesis (CEGIS) loop, iteratively refining repairs. Furthermore, this work also proposes a language-agnostic automated assessment tool, GITSEED, that enhances student learning by providing personalized feedback on code submissions and successfully integrates CFAULTS for effective fault detection on student code. Experimental results on C-PACK-IPAS demonstrate that MENTOR significantly improves repair success rates, achieving 64.4%, compared to just 6.3% for VERIFIX and 34.6% for CLARA.
Detalhes da publicação
Autores da comunidade :
Pedro Orvalho
ist181151
Orientadores desta instituição:
Mikolas Janota
ist90879
RENATES TID
101646933
Designação
Doutoramento em Engenharia Informática e de Computadores
Domínio Científico (FOS)
electrical-engineering-electronic-engineering-information-engineering - Engenharia Eletrotécnica, Eletrónica e Informática
Palavras-chave
- Automated Program Repair
- Program Clustering
- Program Analysis
- Formula-based Fault Localization
- LLM-Driven Program Repair
- Computer-Aided Education
- Reparação Automática de Programas
- Agrupamento de Programas
- Análise de Programas
- Localização de Falhas Baseada em Fórmulas
- Reparação de Programas com Modelos de Linguagem de Grande Escala
- Educação Assistida por Computador
Idioma da publicação (código ISO)
eng - Inglês
Acesso à publicação:
Acesso Aberto
Nome da instituição
Instituto Superior Técnico
Entidade financiadora da bolsa/projeto
Fundação para a Ciência e a Tecnologia
Identificador da Entidade Financiadora: https://doi.org/10.13039/501100001871
Tipo de identificador da Entidade Financiadora: Crossref Funder