Project Details
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
Software developers spend most of their time with reading and understanding source code. Early theories of program comprehension have proposed hypothesis-driven (top-down) mechanisms and line-by-line (bottom-up) mechanisms of understanding code. However, the underlying cognitive processes of top-down and bottom-up program comprehension are still essentially unclear.In the first project phase, we have set out to directly study these processes by means of objective measures obtained from functional magnetic resonance imaging (fMRI). We have identified a set of brain regions specifically involved when participants are trying to understand source code. The pattern of activation was indicative of semantic processing tied to the left, i.e., the speech hemisphere, as well as attention and working memory functions. Promoting top-down comprehension, e.g., by informative beacons, have led to reduced activation in some of these brain areas, suggesting less cognitive effort, which we have confirmed by behavioral data. Our results have paved the way for other researchers using our neuro-imaging approach for follow-up studies on program comprehension.The second project phase will refine our experimental framework by including eye tracking for specifying the time course of visual attention to inform a more specific analysis of the fMRI data as well as psycho-physiological measures (pupillometry, skin conductance, heart rate, and respiration) to identify changes in cognitive load. More specific control conditions will enhance the fMRI contrast, allowing us to study the fine-grained effects of code aspects (including beacons, plans, patterns, and priming) on brain activation in the identified brain areas. Moreover, we will study the impact of structural code elements (if-then-else statements, loops, recursion) as well as programming experience on top-down program comprehension and concomitant objective measures of brain activity, psycho-physiology, and behavior. Finally, based on the progress in the neurosciences on the neural basis of object processing, we will tackle the long-standing question about differences between object-oriented and functional programming.
DFG Programme
Research Grants