Investigando o uso de testes para apoiar a resolução de problemas de programação.

Detalhes bibliográficos
Autor(a) principal: ALMEIDA, André.
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