Programmieren für alle! Wie Computersysteme lernen, uns aufs Wort zu gehorchen
Wäre es nicht wunderbar, wenn wir Programme einfach mit Alltagssprache beschreiben könnten? Bei seinem Auftritt in der Sendung Campus Talks (auf ARD alpha) spricht Sebastian Weigelt, Research Engineer bei thingsTHINKING, über die Zukunft des Programmierens und wie es gelingen kann, jeden – ja, wirklich jeden – einfache Programme erstellen zu lassen. Das von ihm entwickelte ProNat erzeugt aus gesprochenen Ablaufbeschreibungen Code und zeigt, was zukünftig möglich sein könnte, wenn es gelingt, menschliche Sprache nicht nur einfach zu verarbeiten sondern wirklich semantisch zu verstehen. Programmieren für jeden – dieser lang gehegter Traum könnte bald Wirklichkeit werden… Und vielleicht kann uns semantha dabei helfen!
Sendung: Campus Talks (auf ARD alpha) vom 22.11.2021
Der Inhalt des Vortrags in Kürze
Computersysteme haben sich zu omnipräsenten Begleitern im Alltag vieler Menschen entwickelt. Egal ob Laptop, Smartphone oder Heimautomationssystem – wir alle nutzen persönliche Computersysteme heutzutage nahezu unentwegt. Allerdings liegt der Fokus für die Meisten von uns tatsächlich auf der Nutzung vorhandener Funktionalität. Der wirkliche Mehrwert von Computersystemen besteht aber darin, diese programmieren zu können. Über fundierte Programmierkenntnisse verfügen jedoch nur wenige. Für viele Menschen stellt das Erlernen einer Programmiersprache eine unüberwindbare Hürde dar. Eine Lösung für diese Problematik besteht darin, Laien die Möglichkeit zu bieten, alltägliche Sprache zur Programmierung verwenden zu können.
Dank der immer weiteren Verbreitung von Digitalen Assistenten und ähnlichen sprachgesteuerten Systemen ist es für die meisten Menschen heutzutage völlig normal, mit Computersystemen zu sprechen. Zwar erscheinen derartige Systeme inzwischen intelligent, tatsächlich reagieren sie aber nur auf einzelne Befehle. Man kann diese Assistenten nicht im eigentlichen Sinne programmieren.
Das von Sebastian Weigelt in seiner Dissertation entwickelte ProNat (kurz für Program Naturally) kann in Alltagssprache formulierte, gesprochene Anweisungen in ausführbaren Code überführen. Mit ProNat können somit Computersysteme aller Art programmiert werden, ohne eine Programmiersprache erlernen zu müssen. Außerdem können Laien den Systemen durch Unterweisung neue Funktionen beibringen. Dabei genügt es, die neue Funktionalität einmalig umgangssprachlich zu beschreiben.
Das Lernen aus Unterweisung benötigt keine umfangreichen Datensätze mit Ein- und Ausgabe-Beispielen. Stattdessen wird der Nutzer zum Lehrer und unterweist das System, indem er eine Anleitung gibt, wie etwas zu tun ist. ProNat erzeugt aus der Anleitung Code und sorgt dafür, dass die neue Funktion anschließend aufgerufen werden kann, natürlich auch durch gesprochene Anweisungen.
Denkbar wäre beispielsweise folgendes Szenario: Ein Nutzer erklärt mithilfe von ProNat einem Haushaltsroboter Arbeitsabläufe, wie Wäsche waschen oder Kaffee zubereiten, zum Beispiel wie folgt: „Robo, to make a cup of coffee, get the cup, place it under the dispenser, and press the red button“. ProNat erstellt daraus ein Ablaufskript für den Roboter. Können Teile der Anweisungen nicht interpretiert werden, stellt ProNat Rückfragen an den Nutzer. Der Roboter führt die Anweisungen nicht nur aus, sondern merkt sich die Abläufe. Beim nächsten Mal, wenn er Wäsche waschen oder Kaffee zubereiten soll, kann er die gelernten Abläufe abrufen. Dazu muss der Nutzer sie lediglich aufrufen, beispielsweise so: „Make me some coffee“ oder “Hey, I need cup of coffee badly”.
Foto: ARD alpha / Bayerischer Rundfunk