Evaluating python repetition structures with novices: an eye tracking study. - COSTA, José Júnior Silva da. (2024)
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.