Título
Educational program visualizations using synthetized execution information
Autor
Mourato, Rodrigo Manuel Dias
Resumo
pt
A visualização é uma ferramenta poderosa para explicar, compreender e depurar cálculos. Ao longo dos anos, várias ferramentas de visualização foram desenvolvidas para fins educacionais. A maioria dessas ferramentas alimenta os mecanismos de visualização usando os dados brutos do estado do programa disponíveis fornecidos pela API do depurador. Embora isso seja suficiente em certos contextos, há situações em que informações adicionais relevantes podem ajudar a criar visualizações mais abrangentes. Esta dissertação apresenta duas novas visualizações do Paddle, um ambiente de programação educacional baseado em informações sintetizadas de execução de programas. Geramos traços de execução e estados relevantes do programa através da análise estática e dinâmica dos dados de execução. As informações sintetizadas capturam comportamentos de programa que facilitam a criação de visualizações abrangentes e ricas envolvendo matrizes que descrevem leituras, gravações, movimentos e trocas de posições.
Foram realizadas entrevistas com o objetivo de elucidar as vantagens inerentes à aplicação Paddle. Cada entrevista era composta por quatro tarefas, cada uma das quais continha um erro no código que o entrevistado deveria identificar e subsequentemente corrigir. As entrevistas foram gravadas e o tempo decorrido até à identificação do erro e até à implementação da correção de código necessária foi documentado. Estes dados foram depois usados para facilitar a comparação entre a aplicação Paddle e o ambiente de desenvolvimento integrado (IDE) que os entrevistados estavam habituados a utilizar.
en
Visualization is a powerful tool for explaining, understanding, and debugging computations. Over the years, several visualization tools have been developed for educational purposes. Most of these tools feed visualization engines using the raw program state data available provided by the debugger API. While this suffices in certain contexts, there are situations where additional relevant information could aid in building up more comprehensive visualizations. This dissertation presents two novel visualizations of Paddle, an educational programming environment based on synthesized program execution information. We generate execution traces and relevant program states through static and dynamic analysis of the execution data. The synthesized information captures program behaviors that facilitate the creation of comprehensive and rich visualizations involving arrays that depict position reads, writes, moves, and swaps.
Interviews were conducted with the aim of elucidating the advantages inherent in the Paddle application. Each interview consisted of four tasks, each of which contained an error in the code that the interviewee had to identify and subsequently correct. The interviews were recorded, and the time taken to identify the errors and implement the necessary code correction was documented. This data was then used to facilitate a comparison between the Paddle application and the integrated development environment (IDE) that the interviewees were used to using.