Please use this identifier to cite or link to this item: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/23287
Full metadata record
DC FieldValueLanguage
dc.creator.IDOLIVEIRA, C. B.pt_BR
dc.creator.Latteshttp://lattes.cnpq.br/3972104900612369pt_BR
dc.contributor.advisor1MONTEIRO, João Arthur Brunet.-
dc.contributor.advisor1IDBRUNET, J. A. M.pt_BR
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/7892247821251194pt_BR
dc.contributor.referee1ANDRADE, Wilkerson de Lucena.-
dc.contributor.referee2MASSONI, Tiago Lima.-
dc.contributor.referee3AGUIAR, Yuska Paola Costa.-
dc.description.resumoAs disciplinas introdutórias de programação normalmente possuem um grande número de estudantes matriculados por semestre, o que dificulta os professores a terem um contato individualizado para sanar dúvidas. Assim, a correção das atividades ocorre tipicamente por meio de ferramentas automáticas. No ensino da programação tanto a correção funcional como a correção da forma estrutural de uma solução algorítmica (projeto de algoritmo) são importantes. Existem diversas técnicas para a parte funcional, dentre as mais populares estão implementações de Juízes Online, entretanto não existem ferramentas amplamente difundidas que otimizem esta segunda correção. A área de estudo de técnicas para a verificação da parte de estrutura de dados e projeto é reduzida e sem grandes referências do estado da arte, deixando professores com poucos recursos e ferramentas que possam aplicar na correção da forma das soluções desenvolvidas pelos alunos. Assim, alunos podem desenvolver soluções estruturalmente incorretas, usando de funções ou estruturas de dados não permitidas, prejudicando o aprendizado da lógica de programação e limitando o contato de professores e alunos para resolução de dúvidas. Propomos neste trabalho uma abordagem de análise estática de código para detecção de problemas estruturais em projetos de algoritmo. O objetivo dessa abordagem é prover ao tutor uma forma de detectar um projeto de algoritmo, sem que seja necessário executar o algoritmo e o ajude a assegurar a estrutura do que está analisando, como o uso de funções proibidas e padrões específicos de codificação. Para isso, desenvolvemos uma ferramenta, Python Design Wizard, que fornece uma API, abstraída da AST de Python, possibilitando a criação de testes de design do código. A pesquisa conduzida neste mestrado envolve a validação da implementação, usabilidade e dos conceitos utilizados para construção da ferramenta. Esta validação é composta por duas partes, na primeira conduzimos uma avaliação quantitativa executando testes de design em 1714 programas de alunos de Programação I da Universidade Federal de Campina Grande, utilizando a ferramenta Python Design Wizard, para detecção de algoritmos de ordenação. Na segunda parte, utilizamos a mesma ferramenta e a técnica de Think Aloud Protocol para conduzir entrevistas com profissionais de educação e extrair informações se a solução proposta pode influenciar positivamente na aprendizagem da programação. Nossos resultados incluem uma ferramenta capaz de detectar algoritmos de ordenação, dentre algoritmos de alunos, no nosso estudo quantitativo e uma coletânea de frases com feedback positivo sobre o conceito de testes de design, comprovando a facilidade da compreensão dos testes implementados na ferramenta e sua utilidade na área de educação.pt_BR
dc.publisher.countryBrasilpt_BR
dc.publisher.departmentCentro de Engenharia Elétrica e Informática - CEEIpt_BR
dc.publisher.programPÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOpt_BR
dc.publisher.initialsUFCGpt_BR
dc.subject.cnpqCiência da Computaçãopt_BR
dc.titleProvendo feedback estrutural sobre projetos de algoritmo no ensino da programação utilizando testes de design.pt_BR
dc.date.issued2021-12-10-
dc.description.abstractIntroductory programming courses usually have a large number of students enrolled per semester, which makes it difficult for teachers to have individual contact to answer questions. Thus, exercises correction typically occurs through automatic tools. In teaching programming both the functional correction and the correction of the structural form of an algorithmic solution (algorithm design) are important. There are several techniques for the functional part, among the most popular are Online Judges implementations, however there are no widely used tools that optimize this second correction. The area of study of techniques for verifying data structure and design is reduced and without major standart references, leaving teachers with few resources and tools that they can apply to correct the form of the solutions developed by the students. Thus, students can develop structurally incorrect solutions, using functions or data structures that are not allowed, impairing the learning of programming logic and limiting the contact of teachers and students to solve doubts. In this work, we propose a static code analysis approach to detect structural problems in algorithm designs. The goal of this research is to provide the tutor a way to detect an algorithm design without having to execute the algorithm and help him to ensure the integrity of the code structure, such as the use of prohibited functions and specific coding patterns. In order to do that, we developed a tool, Python Design Wizard, which provides us an API, abstracted from Python’s AST, enabling the creation of code design tests. The research conducted in this Masters involves the validation of the implementation, usability and concepts used to build the tool. This validation is composed of two parts, the first one we conducted a quantitative evaluation running design tests in 1714 Programing I student programs at the Federal University of Campina Grande, using the Python Design Wizard, in order to detect sorting algorithms. In the second part, we use the same tool and the Think Aloud Protocol technique to conduct interviews with education professionals and extract information on whether the proposed solution can positively influence programming learning. Our results include a tool capable of detecting sorting algorithms, among student algorithms, in our quantitative study and a collection of sentences with positive feedback on the concept of design tests, proving the easy understanding of the tests implemented in the tool and its usefulness in the education field.pt_BR
dc.identifier.urihttp://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/23287-
dc.date.accessioned2022-01-18T20:58:57Z-
dc.date.available2022-01-18-
dc.date.available2022-01-18T20:58:57Z-
dc.typeDissertaçãopt_BR
dc.subjectEnsino de programaçãopt_BR
dc.subjectQualidade de códigopt_BR
dc.subjectDesign testspt_BR
dc.subjectFeedback personalizado em programaçãopt_BR
dc.subjectPadrões de codificaçãopt_BR
dc.subjectEducação em ciência da computaçãopt_BR
dc.subjectAnálise estáticapt_BR
dc.subjectProgramming teachingpt_BR
dc.subjectCode qualitypt_BR
dc.subjectTestes de projetopt_BR
dc.subjectCustom programming feedbackpt_BR
dc.subjectCoding standardspt_BR
dc.subjectComputer science educationpt_BR
dc.subjectStatic analysispt_BR
dc.subjectEnseñanza de la programaciónpt_BR
dc.subjectCalidad del códigopt_BR
dc.subjectPruebas de diseñopt_BR
dc.subjectComentarios de programación personalizadospt_BR
dc.subjectEstándares de codificaciónpt_BR
dc.subjectEducación informáticapt_BR
dc.subjectAnálisis estáticopt_BR
dc.subjectEnseignement de la programmationpt_BR
dc.subjectQualité du codept_BR
dc.subjectEssais de conceptionpt_BR
dc.subjectCommentaires sur la programmation personnaliséept_BR
dc.subjectNormes de codagept_BR
dc.subjectFormation en informatiquept_BR
dc.subjectAnalyse statiquept_BR
dc.rightsAcesso Abertopt_BR
dc.creatorOLIVEIRA, Caio Batista.-
dc.publisherUniversidade Federal de Campina Grandept_BR
dc.languageporpt_BR
dc.title.alternativeProviding structural feedback on algorithm designs in programming teaching using design tests.pt_BR
dc.description.sponsorshipCapespt_BR
dc.identifier.citationOLIVEIRA, C. B. Provendo feedback estrutural sobre projetos de algoritmo no ensino da programação utilizando testes de design. 2021. 60f. 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, 2021.pt_BR
Appears in Collections:Mestrado em Ciência da Computação.

Files in This Item:
File Description SizeFormat 
CAIO BATISTA OLIVEIRA – DISSERTAÇÃO (PPGCC) 2021.pdf562.8 kBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.