The pivotal role of software in our modern world imposes strong
requirements on quality, correctness, and reliability of software
systems. The ability to understand program code plays a key role for
programmers to fulfill these requirements. Despite significant progress,
research on program comprehension has had a fundamental limitation:
program comprehension is a cognitive process that cannot be directly
observed, which leaves considerable room for (mis)interpretation,
uncertainty, and confounding factors. Thus, central questions such as
"What makes a good programmer?" and "How should we program?" are
surprisingly difficult to answer based on the state of the art.
In this talk, I will report on recent attempts to lift research on
program comprehension to a new level. The key idea is to leverage
methods from cognitive neuroscience to obtain insights into the
cognitive processes involved in program comprehension. Opening the
"black box" of human cognition will lead to a breakthrough in
understanding the why and how of program comprehension and to a
completely new perspective and methodology of measuring program
comprehension, with direct implications for programming methodology,
language design, and education.