Illustrating debugger execution leveraging on variable roles - Sousa, Hugo Silva (2017)
Programming is a subject in which students face many difficulties. In in troductory courses, many of those difficulties relate to understanding algorithms. Variable roles were proposed as an abstraction to better understand algorithms im plemented in code. Previous research on pedagogical debuggers mitigated learning difficulties, allowing novices to see program execution step-by-step with graphical forms of visualization. However, existing approaches display variables uniformly without taking into account their role in the algorithm. In order to take advantage of variable roles in illustration, roles need to be assigned to variables. Previous approaches either require manual role classification or rely on machine learning with unsatisfactory performance. We developed a component for classifying variables according to their role us ing a set of rules that can be checked with static analysis. Leveraging variable roles in visualization requires different concrete visual representations assigned to the distinct roles. We conducted an exploratory study on how programming instruc tors represent variable roles in their algorithm explanations. Finally, we developed a debugger extension (PandionJ) that consists of a view that displays variables with different visual representations according to their roles. This debugger view uses the previously mentioned component to infer the roles of the variables and uses visual components that resemble the most prominent illustrations found in our exploratory study.