Investigando o uso de testes para apoiar a resolução de problemas de programação.
Autor(a) principal: | |
---|---|
Data de Publicação: | 2023 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Biblioteca Digital de Teses e Dissertações da UFCG |
Texto Completo: | http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/31565 |
Resumo: | Os cursos introdutórios de programação desenvolvem esta habilidade através da resolução de diversos exercícios relacionados aos conceitos apresentados, os quais atuam também como forma de avaliar o desempenho dos alunos. No entanto, antes de produzir o programa o aluno precisa compreender o que é requerido pelo enunciado do exercício. É necessário entender a especificação como primeiro passo para a efetiva resolução de problemas de programação. Neste contexto, o objetivo desta pesquisa de mestrado é investigar a efetividade de uma estratégia baseada em testes para melhor esclarecer a especificação do problema e, com isso, favorecer a sua correta resolução. Iniciamos a pesquisa realizando um mapeamento dos tipos de erro identificados em exercícios de programação, com o objetivo de investigar se os testes automatizados associados capturam falhas na compreensão dos problemas. Com a análise dos dados foi possível perceber que cerca de 80% dos erros cometidos estão relacionados a dificuldade no entendimento ou falsas suposições levantadas com base nos enunciados dos exercícios. Desta forma, percebendo que os testes automatizados buscam capturar minuciosamente determinados cenários especificados nos enunciados dos exercícios, de maneira a verificar se o aluno os compreendeu em sua totalidade, este estudo preliminar denota a estratégia baseada em testes como sendo promissora. Sendo assim, criamos o oráculo para aplicar a abordagem e permitir que os alunos interajam com a solução de referência através de testes, perguntando se a entrada de um problema corresponde com a saída. No estudo principal, realizamos a análise comparativa entre o oráculo e outras estratégias de resolução de problemas com base em métricas associadas a sistemas de avaliação automatizada. Os resultados evidenciam uma melhora significativa no desempenho dos alunos, reduzindo o tempo para traçar a solução correta, que foi menor em 65% dos casos; e também o número de submissões ao sistema utilizado, que foi menor em 68% dos casos. Com estes efeitos somados ao feedback positivo dos alunos participantes, apontamos a estratégia como sendo eficaz na resolução de problemas de programação. |
id |
UFCG_f970908e7da99fe654cc6a6fbe0561ea |
---|---|
oai_identifier_str |
oai:localhost:riufcg/31565 |
network_acronym_str |
UFCG |
network_name_str |
Biblioteca Digital de Teses e Dissertações da UFCG |
repository_id_str |
4851 |
spelling |
Investigando o uso de testes para apoiar a resolução de problemas de programação.Investigating the use of tests to support programming problem solving.Resolução de problemasEspecificação de problemasTestesAvaliação automatizadaFeedbackProgramaçãoProblem solvingProblem specificationTestingAutomated assessmentFeedbackProgrammingResolución de problemasEspecificación de problemasPruebasComentariosProgramaciónEvaluación automatizadaDépannageSpécification du problèmeTestsÉvaluation automatiséeRetour d'expérienceProgrammationCiência da computação.Os cursos introdutórios de programação desenvolvem esta habilidade através da resolução de diversos exercícios relacionados aos conceitos apresentados, os quais atuam também como forma de avaliar o desempenho dos alunos. No entanto, antes de produzir o programa o aluno precisa compreender o que é requerido pelo enunciado do exercício. É necessário entender a especificação como primeiro passo para a efetiva resolução de problemas de programação. Neste contexto, o objetivo desta pesquisa de mestrado é investigar a efetividade de uma estratégia baseada em testes para melhor esclarecer a especificação do problema e, com isso, favorecer a sua correta resolução. Iniciamos a pesquisa realizando um mapeamento dos tipos de erro identificados em exercícios de programação, com o objetivo de investigar se os testes automatizados associados capturam falhas na compreensão dos problemas. Com a análise dos dados foi possível perceber que cerca de 80% dos erros cometidos estão relacionados a dificuldade no entendimento ou falsas suposições levantadas com base nos enunciados dos exercícios. Desta forma, percebendo que os testes automatizados buscam capturar minuciosamente determinados cenários especificados nos enunciados dos exercícios, de maneira a verificar se o aluno os compreendeu em sua totalidade, este estudo preliminar denota a estratégia baseada em testes como sendo promissora. Sendo assim, criamos o oráculo para aplicar a abordagem e permitir que os alunos interajam com a solução de referência através de testes, perguntando se a entrada de um problema corresponde com a saída. No estudo principal, realizamos a análise comparativa entre o oráculo e outras estratégias de resolução de problemas com base em métricas associadas a sistemas de avaliação automatizada. Os resultados evidenciam uma melhora significativa no desempenho dos alunos, reduzindo o tempo para traçar a solução correta, que foi menor em 65% dos casos; e também o número de submissões ao sistema utilizado, que foi menor em 68% dos casos. Com estes efeitos somados ao feedback positivo dos alunos participantes, apontamos a estratégia como sendo eficaz na resolução de problemas de programação.The introductory programming courses develop this skill through the resolution of several exercises related to the presented concepts, which also act as a way of evaluating the students’ performance. However, before producing the program, the student needs to understand what is required by the statement of the exercise. It is necessary to understand the specification as a first step for the effective resolution of programming problems. In this context, the objective of this master’s research is to investigate the effectiveness of a test-based strategy to better clarify the specification of the problem and, therefore, favor its correct resolution. We started the research by mapping the types of errors identified in programming exercises, with the aim of investigating whether the associated automated tests capture failures in understanding the problems. With the analysis of the data, it was possible to perceive that about 80% of the errors committed are related to difficulty in understanding or false assumptions raised based on the statements of the exercises. In this way, realizing that the automated tests seek to capture in detail certain scenarios specified in the statements of the exercises, in order to verify if the student understood them in their entirety, this preliminary study denotes the strategy based on tests as being promising. Therefore, we created the oracle to apply the approach and allow students to interact with the reference solution through tests, asking if the input of a problem corresponds with the output. In the main study, we performed a comparative analysis between the oracle and other problem solving strategies based on metrics associated with automated evaluation systems. The results show a significant improvement in the students’ performance, reducing the time to draw the correct solution, which was shorter in 65% of the cases; and also the number of submissions to the system used, which was lower in 68% of cases. With these effects added to the positive feedback of the participating students, we point out the strategy as being effective in solving programming problems.CNPqUniversidade Federal de Campina GrandeBrasilCentro de Engenharia Elétrica e Informática - CEEIPÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOUFCGARAÚJO, Eliane Cristina de.ARAUJO, E. C.http://lattes.cnpq.br/8032715047993974FIGUEREDO, Jorge César Abrantes de.FIGUEIREDO, J. C. A.http://lattes.cnpq.br/1424808046858622LIRA, Melina Mongiovi Brito.SCAICO, Pasqueline Dantas.ALMEIDA, André.2023-04-062023-08-22T18:11:15Z2023-08-222023-08-22T18:11:15Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/31565ALMEIDA, André. Investigando o uso de testes para apoiar a resolução de problemas de programação. 2023. 72 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2023.porinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFCGinstname:Universidade Federal de Campina Grande (UFCG)instacron:UFCG2023-08-22T18:11:15Zoai:localhost:riufcg/31565Biblioteca Digital de Teses e Dissertaçõeshttp://bdtd.ufcg.edu.br/PUBhttp://dspace.sti.ufcg.edu.br:8080/oai/requestbdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.bropendoar:48512023-08-22T18:11:15Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)false |
dc.title.none.fl_str_mv |
Investigando o uso de testes para apoiar a resolução de problemas de programação. Investigating the use of tests to support programming problem solving. |
title |
Investigando o uso de testes para apoiar a resolução de problemas de programação. |
spellingShingle |
Investigando o uso de testes para apoiar a resolução de problemas de programação. ALMEIDA, André. Resolução de problemas Especificação de problemas Testes Avaliação automatizada Feedback Programação Problem solving Problem specification Testing Automated assessment Feedback Programming Resolución de problemas Especificación de problemas Pruebas Comentarios Programación Evaluación automatizada Dépannage Spécification du problème Tests Évaluation automatisée Retour d'expérience Programmation Ciência da computação. |
title_short |
Investigando o uso de testes para apoiar a resolução de problemas de programação. |
title_full |
Investigando o uso de testes para apoiar a resolução de problemas de programação. |
title_fullStr |
Investigando o uso de testes para apoiar a resolução de problemas de programação. |
title_full_unstemmed |
Investigando o uso de testes para apoiar a resolução de problemas de programação. |
title_sort |
Investigando o uso de testes para apoiar a resolução de problemas de programação. |
author |
ALMEIDA, André. |
author_facet |
ALMEIDA, André. |
author_role |
author |
dc.contributor.none.fl_str_mv |
ARAÚJO, Eliane Cristina de. ARAUJO, E. C. http://lattes.cnpq.br/8032715047993974 FIGUEREDO, Jorge César Abrantes de. FIGUEIREDO, J. C. A. http://lattes.cnpq.br/1424808046858622 LIRA, Melina Mongiovi Brito. SCAICO, Pasqueline Dantas. |
dc.contributor.author.fl_str_mv |
ALMEIDA, André. |
dc.subject.por.fl_str_mv |
Resolução de problemas Especificação de problemas Testes Avaliação automatizada Feedback Programação Problem solving Problem specification Testing Automated assessment Feedback Programming Resolución de problemas Especificación de problemas Pruebas Comentarios Programación Evaluación automatizada Dépannage Spécification du problème Tests Évaluation automatisée Retour d'expérience Programmation Ciência da computação. |
topic |
Resolução de problemas Especificação de problemas Testes Avaliação automatizada Feedback Programação Problem solving Problem specification Testing Automated assessment Feedback Programming Resolución de problemas Especificación de problemas Pruebas Comentarios Programación Evaluación automatizada Dépannage Spécification du problème Tests Évaluation automatisée Retour d'expérience Programmation Ciência da computação. |
description |
Os cursos introdutórios de programação desenvolvem esta habilidade através da resolução de diversos exercícios relacionados aos conceitos apresentados, os quais atuam também como forma de avaliar o desempenho dos alunos. No entanto, antes de produzir o programa o aluno precisa compreender o que é requerido pelo enunciado do exercício. É necessário entender a especificação como primeiro passo para a efetiva resolução de problemas de programação. Neste contexto, o objetivo desta pesquisa de mestrado é investigar a efetividade de uma estratégia baseada em testes para melhor esclarecer a especificação do problema e, com isso, favorecer a sua correta resolução. Iniciamos a pesquisa realizando um mapeamento dos tipos de erro identificados em exercícios de programação, com o objetivo de investigar se os testes automatizados associados capturam falhas na compreensão dos problemas. Com a análise dos dados foi possível perceber que cerca de 80% dos erros cometidos estão relacionados a dificuldade no entendimento ou falsas suposições levantadas com base nos enunciados dos exercícios. Desta forma, percebendo que os testes automatizados buscam capturar minuciosamente determinados cenários especificados nos enunciados dos exercícios, de maneira a verificar se o aluno os compreendeu em sua totalidade, este estudo preliminar denota a estratégia baseada em testes como sendo promissora. Sendo assim, criamos o oráculo para aplicar a abordagem e permitir que os alunos interajam com a solução de referência através de testes, perguntando se a entrada de um problema corresponde com a saída. No estudo principal, realizamos a análise comparativa entre o oráculo e outras estratégias de resolução de problemas com base em métricas associadas a sistemas de avaliação automatizada. Os resultados evidenciam uma melhora significativa no desempenho dos alunos, reduzindo o tempo para traçar a solução correta, que foi menor em 65% dos casos; e também o número de submissões ao sistema utilizado, que foi menor em 68% dos casos. Com estes efeitos somados ao feedback positivo dos alunos participantes, apontamos a estratégia como sendo eficaz na resolução de problemas de programação. |
publishDate |
2023 |
dc.date.none.fl_str_mv |
2023-04-06 2023-08-22T18:11:15Z 2023-08-22 2023-08-22T18:11:15Z |
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 |
http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/31565 ALMEIDA, André. Investigando o uso de testes para apoiar a resolução de problemas de programação. 2023. 72 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2023. |
url |
http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/31565 |
identifier_str_mv |
ALMEIDA, André. Investigando o uso de testes para apoiar a resolução de problemas de programação. 2023. 72 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2023. |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
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 |
publisher.none.fl_str_mv |
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 |
dc.source.none.fl_str_mv |
reponame:Biblioteca Digital de Teses e Dissertações da UFCG instname:Universidade Federal de Campina Grande (UFCG) instacron:UFCG |
instname_str |
Universidade Federal de Campina Grande (UFCG) |
instacron_str |
UFCG |
institution |
UFCG |
reponame_str |
Biblioteca Digital de Teses e Dissertações da UFCG |
collection |
Biblioteca Digital de Teses e Dissertações da UFCG |
repository.name.fl_str_mv |
Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG) |
repository.mail.fl_str_mv |
bdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.br |
_version_ |
1809744591220375552 |