Hirnaktivität beim Verstehen von Programmcode Was ist los im Kopf eines Programmierers?

Von Bernhard Lück

Was passiert in den Köpfen von Programmierern, wenn sie sich mit Programmcode beschäftigen? Sven Apel, Informatik-Professor der Universität des Saarlandes, wird für seine Forschung zu dieser Frage vom Europäischen Forschungsrat über fünf Jahre mit rund 2,5 Mio. Euro gefördert.

Anbieter zum Thema

Probandin während einer EEG-Studie zum Programmverstehen.
Probandin während einer EEG-Studie zum Programmverstehen.
(Bild: Philipp Zapf-Schramm / SIC)

„Im Grunde genommen arbeiten wir daran, das Verstehen von Programmcode zu verstehen“, erklärt der Informatik-Professor Sven Apel. Dies sei wichtig, denn es könnte viele Aspekte der modernen Software-Entwicklung beeinflussen – beispielsweise die Programmierausbildung oder das Design von Programmiersprachen.

In dem EU-geförderten Forschungsprojekt gehe es darum, anhand eines multimodalen und interdisziplinären Ansatzes durch verschiedene neurophysiologische Messverfahren zu erfassen, welche gedanklichen Prozesse beim Lesen und Verstehen von Programmcode ablaufen. Zudem soll ermittelt werden, welche Schlüsselfaktoren diese Prozesse beeinflussen, und es soll ein Modell entwickelt werden, um diese Verstehensvorgänge zu simulieren und dadurch optimieren zu können.

Neben Sven Apel, der die EU-Förderung erhält, sind an dem Projekt weitere Forschungspartner in Schlüsselpositionen beteiligt: Die Expertise im Bereich der Neurowissenschaften kommt von Dr. André Brechmann, der am Leibniz-Institut für Neurobiologie in Magdeburg forscht. Weiterhin ist Janet Siegmund, Professorin für Softwaretechnik an der Technischen Universität Chemnitz, maßgeblich beteiligt.

Aber weshalb wird so ein Aufwand betrieben, um die Verstehensvorgänge beim Programmieren zu entschlüsseln? „Wenn wir wissen, welche kognitiven Prozesse dabei ablaufen, kommen wir den Antworten auf ganz grundsätzliche Fragen des Programmierens einen großen Schritt näher: Was macht einfachen und was schwierigen, guten und schlechten, nachvollziehbaren und verwirrenden Programmcode aus? Welche Fähigkeiten braucht ein guter Programmierer oder eine gute Programmiererin? Wie kann man diese Fähigkeiten in der Ausbildung fördern? Und dadurch auch: Wie kann man Software sicherer, zuverlässiger und ressourcenschonender machen?“, erläutert Sven Apel.

Methoden aus Neurologie, Psychologie und Informatik

Konkret nutzt das Forscherteam eine fachübergreifende Herangehensweise mit unterschiedlichen Methoden, um sich der Fragestellung zu nähern: „In unserem Ansatz vereinen wir Methoden aus der Neurologie, der Psychologie und der Informatik“, sagt Sven Apel. Anhand von Experimenten, in denen verschiedene bildgebende Verfahren aus den Neurowissenschaften miteinander kombiniert werden, wollen die Forscherinnen und Forscher beispielsweise untersuchen …

  • welche Hirnareale beim Programmverstehen aktiviert werden (fMRT),
  • wie stark die Aktivierung dieser Areale ist und wie schnell sie stattfindet (EEG) und
  • in welcher Reihenfolge die Probanden den ihnen präsentierten Code lesen (Eye-Tracking).

„So wollen wir die ‚Blackbox des Programmierers‘ öffnen und einen Einblick in die internen, kognitiven Prozesse während des Programmverstehens gewinnen“, erläutert Apel. Das Forscherteam um Apel, Brechmann und Siegmund habe diesen Versuchsaufbau entwickelt und bereits in vergangenen, viel beachteten Studien angewendet. Erstmals weltweit sei die Forschung zum Programmverstehen auf diese Art angegangen worden.

Das Team habe so z.B. bereits zeigen können, dass beim Programmverstehen hauptsächlich das Sprachenzentrum aktiviert werde und wider Erwarten nicht die Teile des Gehirns, die für logisches und mathematisches Denken zuständig sind. „Unser Versuchsaufbau wurde inzwischen von zahlreichen Gruppen auf der ganzen Welt übernommen. Mit der neuen Förderung ist es uns möglich, unsere Vorreiterrolle in diesem Gebiet auszubauen“, sagt Sven Apel.

Cognitive Computational Modelling

Auf den Ergebnissen dieser Experimente aufbauend, wollen die Forscher in zwei Schritten nun einen „digitalen Zwilling“ des Prozesses des Programmverstehens entwickeln. Zuerst soll eine prädiktive Theorie erarbeitet werden, die Vorhersagen über die Abläufe beim Programmverstehen treffen kann und überprüfbare Vermutungen enthält.

Anhand dieser Theorie wollen die Wissenschaftler im Sinne des „Cognitive Computational Modelling“-Ansatzes ein Modell entwickeln, in dem sie an den verschiedenen Stellschrauben des Prozesses, wie Programmkomplexität oder der Aktivierung bestimmter Hirnregionen, drehen können, um damit Verstehensprozesse für nicht im Experiment durchgeführte Fragestellungen simulieren zu können (ACT-R-Methode). Anhand dieser Erkenntnisse wollen die Forscher Antworten auf grundlegende Fragen der Programmiermethodik, des Sprachendesigns und Programmierausbildung geben.

Das Projekt unter dem Titel „Brains On Code: A Neuroscientific Foundation of Program Comprehension“ wird durch einen „Advanced Grant“ des Europäischen Forschungsrates (ERC) mit rund 2,5 Mio. Euro über fünf Jahre gefördert. Für die aktuelle Förderperiode wurden insgesamt 1735 Projekte eingereicht, wovon nur 253 bewilligt wurden. Bei dem beschriebenen Forschungsvorhaben handelt es sich um den siebten ERC Advanced Grant und insgesamt den 30. Förderpreis des Europäischen Forschungsrates, der für ein Projekt am Saarland Informatics Campus verliehen wurde. Dort hat Sven Apel in der Fakultät für Mathematik und Informatik der Universität des Saarlandes den Lehrstuhl für Software Engineering inne.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

(ID:48263317)