Ferramentas de visualiza??o e simula??o de programas na compreens?o de Fun??es de Ordem-Superior (Higher-Order Functions) - Martins, Marcos Rog?rio (2024)
There is a growing demand for programming aimed at a target audience generally referred to as non-developers: individuals who use programming to solve tasks such as product recommendation, fraud detection, disease diagnosis, process optimization, file management, among others, but whose primary goal is not professional software development. The activities carried out by non-developers are often more related to the demands of organizing, transforming, and automating data processing than other programming constructs, giving rise to a new paradigm called Data Centrality, where different skills are the focal point of this audience. Therefore, it is imperative to provide efficient and effective computational tools that simply perform tasks involving complex data. Higher-Order Functions (HOFs) have become popular tools among non-developers to carry out such tasks. Despite their simplicity, research shows that students still struggle to understand and use HOFs. Based on the evidence supporting the use of program visualizers for code comprehension, we believe that simulating the concepts inherent to HOFs may contribute to a better understanding of their semantics. However, no visualization and simulation system currently described in the literature explicitly supports HOFs, and little research has been dedicated to their development and use. This work proposed adapting a visualization and simulation tool to incorporate HOF animations and empirically investigating which types of simulation might offer a better understanding of programs using this concept. In addition to the visualization adaptations, educational material for teaching HOFs was produced, along with an assessment tool that attempts to capture potential misconceptions about HOFs. Twenty-one students from various higher education institutions with experience in Python participated in the investigation. When comparing groups that used different types of simulations (intermediate and pictographic) with a control group, we found no significant differences in program comprehension. Further research is needed to replicate these results and investigate more deeply the users? engagement with the visualization tool and their behavior when using it.