Project Details
Projekt Print View

Linking Program Comprehension to Neural, Behavioral, and Psycho-Physiological Correlates

Subject Area Software Engineering and Programming Languages
Term from 2016 to 2022
Project identifier Deutsche Forschungsgemeinschaft (DFG) - Project number 285612080
 
Final Report Year 2023

Final Report Abstract

In this project, we observed program comprehension with fMRI, EEG, and eye tracking. This led to new interesting insights and demonstrated that these new angles allow us and other researchers to obtain more detailed insights on how programmers understand source code. As a first necessary step, we refined the methodology to reliably measure program comprehension with neuroimaging techniques. To this end, we evaluated different contrast conditions and baseline conditions, so that we can recommend suitable conditions depending on a study. Furthermore, we extended the single method measurement protocol with different modalities, such that we can combine the strengths of modalities (e.g., high spatial resolution of fMRI, high temporal resolution of eye tracking) and mitigate their weaknesses (low temporal resolution of fMRI). This allows us to link neuronal activation to the center of visual attention of participants, so we can better understand what aspects of a program trigger high mental load or (natural) language processing. In our tool CodersMUSE, researchers can directly analyze the temporal flow of how individual tasks trigger neuronal activation, visual attention, and even further modalities, such as respiratory rate. Based on the refined measurement framework, we could move further in our endeavor to better understand how programmers work with source code. We found that certain elements in code that are believed to influence program comprehension tend to actually have no effect. In other words, it does not seem to matter for program comprehension whether an algorithm is implemented in a recursive or iterative way, how many spaces are used for indentation, or whether code is complex according to complexity metrics. Instead, the most relevant factor that we identified in our studies is the experience of programmers. Experienced programmers comprehend code with less cognitive effort and focus on relevant parts of code that follow the execution order of code, not the linear order. These insights can inform programming education research, such that teachers can focus on teaching relevant aspects, especially identifying and focusing on relevant parts of source code. Interview in German National Radio (Deutschlandfunk: “Computer und Kommunikation”) and Article in “Spektrum der Wissenschaft”

Publications

 
 

Additional Information

Textvergrößerung und Kontrastanpassung