Key research themes
1. How can dynamic and phase-based analysis of execution traces enhance program comprehension?
This research theme focuses on leveraging runtime information, particularly execution traces and their phases, to improve understanding of a software system's behavior. Analyzing execution phases can simplify large trace data, enabling developers to identify distinct computation tasks and transitions within program execution. This focus matters because program behavior is complex and dynamic, and trace analysis can provide precise, contextual insights to aid debugging, maintenance, and reverse engineering tasks.
2. What cognitive frameworks and metrics best characterize program comprehension complexity for educational and instructional design?
This theme explores theoretical and empirical frameworks that model the cognitive complexity involved in understanding computer programs, aiming to inform programming education, assessment, and curriculum design. It encompasses cognitive load theory, hierarchical complexity, and learner-focused metrics to analyze and sequence programming tasks effectively. This area is significant as it directly supports designing instructional materials, assessments, and tools that align with learners' mental models and cognitive capabilities.
3. How can software visualization techniques improve program comprehension by representing code structure, annotations, and workflow?
This theme examines visual approaches that help developers understand software by graphically depicting structural and semantic information such as code annotations distribution and data science workflows. By transforming code-related metadata and execution information into intuitive visual representations, these methods reduce cognitive burden and support navigation, architecture comprehension, and identification of anomalies. The importance lies in facilitating developers' mental models and aiding understanding especially in complex or poorly documented codebases.