Please use this identifier to cite or link to this item: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/37716
Title: Evaluating python repetition structures with novices: an eye tracking study.
Other Titles: Avaliando estruturas de repetição em python com novatos: um estudo de rastreamento ocular.
???metadata.dc.creator???: COSTA, José Júnior Silva da.
???metadata.dc.contributor.advisor1???: GHEYI, Rohit
???metadata.dc.contributor.referee1???: RIBEIRO , Márcio de Medeiros
???metadata.dc.contributor.referee2???: MACHADO, Ivan do Carmo
Keywords: Engenharia de software;Code comprehension;Eye tracking;Repetition structures;Engenharia de software;Compreensão de código;Rastreamento ocular;Estruturas de repetição
Issue Date: 8-Mar-2024
Publisher: Universidade Federal de Campina Grande
Citation: COSTA, José Júnior Silva da. Evaluating python repetition structures with novices: an eye tracking study. 2024. 74 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, 2024.
???metadata.dc.description.resumo???: Ler e compreender o código são atividades cruciais durante o processo de evolução e manutenção de software. Porém, existem vários fatores que podem afetar esse entendimento, como a forma como o código está estruturado. Iteração, Recursão e Compreensão de Lista (LC) são algumas dessas técnicas de estruturação. Entretanto, seu impacto no desempenho dos desenvolvedores tem sido pouco investigado sob a perspectiva do esforço visual com rastreamento ocular, inclusive no contexto de novatos. Portanto, este trabalho tem como objetivo realizar um estudo com rastreamento ocular para investigar o impacto dessas difer entes estruturas na compreensão de código por novatos. Portanto, foi realizado um estudo inicial controlado para resolver seis tarefas, utilizando o desenho do Quadrado Latino com 32 novatos em Python, medindo o tempo, o número de tentativas para resolver a tarefa e o esforço visual através da duração da fixação, contagem de fixação e regressões. Foi utilizada uma comparação com tarefas que possuem as seguintes estruturas: Recursão, estrutura de repetição e LC. Na Área de Interesse (AOI), em relação às métricas analisadas, foram obser vados aumentos nas versões while, Recursão e LC em relação à versão for. No número de regressões, o aumento chegou a 100% e 114,29% com LC e while, respectivamente, indicando a necessidade de retornar mais vezes no código. O aumento no tempo chegou a 95% com while. Através da análise dos padrões de leitura, na Recursão, percebeu-se maior foco de atenção no caso base e na etapa recursiva. A necessidade de uma condição de parada e contador explícito é uma hipótese para o pior desempenho com while. Houve concordâncias e discrepâncias entre os participantes entre desempenho e percepção de di ficuldade dependendo da tarefa. Em geral, a versão for exigiu menos tempo, tentativas e esforço visual, indicando melhor compreensão de algumas tarefas. Este estudo contribui principalmente para aumentar a conscientização entre educadores sobre o impacto da Re cursão, Iteração e LC na compreensão do código para iniciantes em Python.
Abstract: Reading and understanding code are crucial activities during the software evolution and maintenance process. However, there are several factors that can affect this understanding, such as the way the code is structured. Iteration, Recursion and List Comprehension (LC) are some of these structuring techniques. However, its impact on developers’ performance has been little investigated from the perspective of visual effort with eye tracking, including in the context of novices. Therefore, this work aims to conduct a study with eye tracking to investigate the impact of these different structures on novices’ code understanding. There fore, an initial controlled study was conducted to solve six tasks, using the Latin Square design with 32 Python novices, measuring time, number of attempts to solve the task and visual effort through of fixation duration, fixation count and regressions. A comparison was used with tasks that have the following structures: Recursion, repetition structure and LC. In the Area of Interest (AOI), regarding the metrics analyzed, increases were observed in the while, Recursion and LC versions compared to the for version. In the number of regres sions, the increase reached 100% and 114.29% with LC and while, respectively, indicating the need to return more times in the code. The increase in time reached 95% with while. Through the analysis of reading patterns, in Recursion, greater focus of attention was noticed in the base case and in the recursive step. The need for a stop condition and explicit counter is a hypothesis for the worst performance with while. There were agreements and discrep ancies among participants between performance and perception of difficulty depending on the task. In general, the for version required less time, attempts and visual effort, indicat ing a better understanding of some tasks. This study mainly contributes to raising awareness among educators about the impact of Recursion, iteration and LC on code understanding for Python novices.
Keywords: Engenharia de software
Code comprehension
Eye tracking
Repetition structures
Engenharia de software
Compreensão de código
Rastreamento ocular
Estruturas de repetição
???metadata.dc.subject.cnpq???: Ciência da Computação.
URI: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/37716
Appears in Collections:Mestrado em Ciência da Computação.

Files in This Item:
File Description SizeFormat 
JOSÉ JÚNIOR SILVA DA COSTA - DISSERTAÇÃO (PPGCC) 2024.pdf11.19 MBAdobe PDFView/Open


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