Forschungsprojekt

Was denken Programmierer beim Programmieren?

Was passiert in den Köpfen von Programmierern, wenn sie sich mit Programmcode beschäftigen? Mit dieser Frage beschäftigt sich Sven Apel, Informatik-Professor der Universität des Saarlandes. Das Projekt wird Seitens des Europäischen Forschungsrates über die nächsten fünf Jahre mit rund 2,5Mio.€ gefördert.

Bild: © Oliver Dietze
Bild: © Oliver Dietze

„Im Grunde genommen arbeiten wir daran, das Verstehen von Programmcode zu verstehen“, erklärt Sven Apel. Im ‚Forschungsprojekt Brains On Code: A Neuroscientific Foundation of Program Comprehension‘ geht 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.

Antworten auf grundsätzliche Fragen des Programmierens

„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 Apel, neben dem weitere Forschungspartner beteiligt sind: 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, beteiligt.

„In unserem Ansatz vereinen wir Methoden aus der Neurologie, der Psychologie und der Informatik“, so Apel. Anhand von Experimenten, in denen verschiedene bildgebende Verfahren aus den Neurowissenschaften miteinander kombiniert werden, wollen die Forschenden 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.

Sprachzentrum wird aktiviert

Das Forscherteam hat diesen Versuchsaufbau entwickelt und angewendet. Das Team konnte so zum Beispiel bereits zeigen, dass beim Programmverstehen hauptsächlich das Sprachenzentrum aktiviert wird und wider Erwarten nicht die Teile des Gehirns, die für logisches und mathematisches Denken zuständig sind.

Die Forscher wollen nun in zwei Schritten 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.