Automatic generation of programming exercises

Bibliographic Details
Main Author: Freitas, Tiago Carvalho
Publication Date: 2023
Format: Master thesis
Language: eng
Source: Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
Download full: https://hdl.handle.net/1822/92812
Summary: Dissertação de mestrado em Informatics Engineering
id RCAP_2f0907e23cde40983a18a7f4d4bdd5fa
oai_identifier_str oai:repositorium.sdum.uminho.pt:1822/92812
network_acronym_str RCAP
network_name_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository_id_str https://opendoar.ac.uk/repository/7160
spelling Automatic generation of programming exercisesComputer programming exercises generationNatural language processingAI-based language modelsGeração de exercícios de programaçãoProcessamento de linguagem naturalModelos de linguagem baseados em IAEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e InformáticaDissertação de mestrado em Informatics EngineeringThis document is a thesis report for the final project of the Master Degree in Informatics Engineering, accomplished at Universidade do Minho in Braga, Portugal. The project consisted in the development of a tool capable of semi-automatically generating computer programming exercises named GOLIATH. It applies Natural Language Processing (NLP) methods and techniques, commonly used to construct short texts in predefined formats, to build typical Computer Programming exercises. In doing so, GOLIATH intends to support teachers and students in their educational endeavours by providing dynamically generated exercises. It aims to ease the burden of creating study material and also provide constant and immediate access to new exercises. GOLIATH was implemented to include two AI-based models: one to generate text (Keys-To-Text) and another to generate source code (CodeT5). A template-based exercise generation mechanism was added to its functionalities, taking advantage of a DSL designed specifically for this project. This DSL was fully designed (and its processor implemented) to allow the use of expressive templates that enable the generation of more than one version of an exercise. The entire application was tested and feedback was overall positive, pointing to the better aspects of the application and providing useful feedback for future iterations. With its objectives achieved, GOLIATH may become a valuable contribution to the education support tools landscape.Este documento consiste no relatório de dissertação para o projeto final do Mestrado em Engenharia Informática, realizado na Universidade do Minho em Braga, Portugal. O projeto consistiu no desenvolvimento de uma ferramenta, chamada GOLIATH, capaz de gerar semi automaticamente exercícios de programação. Esta ferramenta aplica métodos e técnicas de Processamento de Linguagem Natural (PLN), frequentemente utilizados para a construção de textos curtos em formatos pré-definidos, para gerar exercícios típicos de programação. Ao fazê-lo, GOLIATH pretende apoiar professores e alunos em seus esforços educacionais, fornecendo exercícios gerados dinamicamente. Visa tanto reduzir a carga de trabalho de criar material de estudo, como fornecer acesso constante e imediato a novos exercícios. GOLIATH foi implementado para incluir dois modelos baseados em IA: um para gerar texto (Keys-To-Text) e outro para gerar código-fonte (CodeT5). Um mecanismo de geração de exercícios baseado em templates foi adicionado às suas funcionalidades, com o auxílio de uma DSL desenvolvida especificamente para este projeto. Esta DSL (e seu processador implementado) foi totalmente projetada para permitir o uso de templates expressivos que possibilitam a geração de mais de uma versão de um exercício. Toda a aplicação foi testada e o feedback foi, em geral, positivo, apontando para os melhores aspectos da aplicação e proporcionando recomendações úteis para futuras iterações. Com seus objetivos alcançados, GOLIATH pode tornar-se numa contribuição valiosa para o cenário de ferramentas de apoio à educação.Henriques, Pedro RangelPereira, Maria João VarandaNeto, Álvaro CostaUniversidade do MinhoFreitas, Tiago Carvalho2023-12-282023-12-28T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfhttps://hdl.handle.net/1822/92812eng203618149info:eu-repo/semantics/openAccessreponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiainstacron:RCAAP2024-09-07T01:34:24Zoai:repositorium.sdum.uminho.pt:1822/92812Portal AgregadorONGhttps://www.rcaap.pt/oai/openaireinfo@rcaap.ptopendoar:https://opendoar.ac.uk/repository/71602025-05-28T18:47:53.265113Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologiafalse
dc.title.none.fl_str_mv Automatic generation of programming exercises
title Automatic generation of programming exercises
spellingShingle Automatic generation of programming exercises
Freitas, Tiago Carvalho
Computer programming exercises generation
Natural language processing
AI-based language models
Geração de exercícios de programação
Processamento de linguagem natural
Modelos de linguagem baseados em IA
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
title_short Automatic generation of programming exercises
title_full Automatic generation of programming exercises
title_fullStr Automatic generation of programming exercises
title_full_unstemmed Automatic generation of programming exercises
title_sort Automatic generation of programming exercises
author Freitas, Tiago Carvalho
author_facet Freitas, Tiago Carvalho
author_role author
dc.contributor.none.fl_str_mv Henriques, Pedro Rangel
Pereira, Maria João Varanda
Neto, Álvaro Costa
Universidade do Minho
dc.contributor.author.fl_str_mv Freitas, Tiago Carvalho
dc.subject.por.fl_str_mv Computer programming exercises generation
Natural language processing
AI-based language models
Geração de exercícios de programação
Processamento de linguagem natural
Modelos de linguagem baseados em IA
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
topic Computer programming exercises generation
Natural language processing
AI-based language models
Geração de exercícios de programação
Processamento de linguagem natural
Modelos de linguagem baseados em IA
Engenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informática
description Dissertação de mestrado em Informatics Engineering
publishDate 2023
dc.date.none.fl_str_mv 2023-12-28
2023-12-28T00:00:00Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://hdl.handle.net/1822/92812
url https://hdl.handle.net/1822/92812
dc.language.iso.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv 203618149
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
instname:FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron:RCAAP
instname_str FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
instacron_str RCAAP
institution RCAAP
reponame_str Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
collection Repositórios Científicos de Acesso Aberto de Portugal (RCAAP)
repository.name.fl_str_mv Repositórios Científicos de Acesso Aberto de Portugal (RCAAP) - FCCN, serviços digitais da FCT – Fundação para a Ciência e a Tecnologia
repository.mail.fl_str_mv info@rcaap.pt
_version_ 1833597670159024128