Selfie

Umgesetztes Projekt

Ziele

Selfie hat das Ziel, bisher meist schlecht aufeinander abgestimmte Einführungsveranstaltungen in der Informatik wie Rechnerarchitektur, Algorithmen, Programmiersprachen, Compilerbau und Betriebssysteme zusammenzuführen und damit den Studierenden selbst anspruchvollstes Material leichter zugänglich zu machen. Selfie geht allerdings noch darüberhinaus, indem es eine informelle Präsentation einfacher Grundprinzipien der Informatik ermöglicht und so Informatik einer breiteren Öffentlichkeit näher bringt.

Kurzzusammenfassung

Selfie hat das Ziel, bisher meist schlecht aufeinander abgestimmte Einführungsveranstaltungen in der Informatik wie Rechnerarchitektur, Algorithmen, Programmiersprachen, Compilerbau und Betriebssysteme zusammenzuführen und damit den Studierenden selbst anspruchvollstes Material leichter zugänglich zu machen. Selfie geht allerdings noch darüberhinaus, indem es eine informelle Präsentation einfacher Grundprinzipien der Informatik ermöglicht und so Informatik einer breiteren Öffentlichkeit näher bringt. Neben umfangreicher und gut dokumentierter Open Source Software existiert bereits ein online frei verfügbares Lehrbuch über Selfie, bestehend aus bisher drei Kapiteln. Dies unterstützt die Umsetzung dieser Vision auch außerhalb der Universität Salzburg. Selfie ist das Resultat umfangreicher Erfahrung aus mehr als zehn Jahren Lehre an der Universität Salzburg und der Universität von Kalifornien in Berkeley. Das Projekt befindet sich weiterhin in Entwicklung. Neben Arbeiten am Buch wird die Software momentan weiterentwickelt um auch formale Methoden der Softwareverifikation bereits am Anfang des Studiums in die Lehre integrieren zu können.

Nähere Beschreibung

Selfie ist ein Lehrprojekt, das seinen Ursprung in einer Vorlesung hat, die im Herbstsemester 2014 an der Universität von Kalifornien in Berkeley stattfand. Professor Kirsch wurde 2014 von Professor Sengupta am Department of Civil and Environmental Engineering in Berkeley eingeladen eine Vorlesung "Computer Science for Civil Engineers" zu halten.

 

Die Herausforderung dieser Veranstaltung war, Studierende anderer Fachrichtungen, wie in diesem Fall Civil Engineering, die aber dennoch praktisch täglich programmieren, Informatik näher zu bringen. Das Ausmaß fehlenden Grundlagenwissens in Informatik trotz intensiver Programmierarbeit durch hochmotivierte und hochbegabte Studierende erforderte eine völlige Neuorientierung, wie Informatik in beschränkter Zeit gelehrt werden kann. Diese Erfahrung hat Professor Kirsch veranlasst seine Lehrveranstaltungen in Salzburg besser aufeinander abzustimmen und seine Vorlesungen so anzubieten, dass auch fachfremde Studierende mit entsprechendem Einsatz folgen können. Grundlage ist Selfie, ein Softwaresystem, das Professor Kirsch zusammen mit Studierenden aus Salzburg seit 2014 entwickelt:

 

selfie.cs.uni-salzburg.at

 

Bisher uneinheitlich behandelte Themen wie Algorithmen, Programmierung, Berechenbarkeit, Prozessorarchitektur, Übersetzerbau und Betriebssysteme werden nun mithilfe von Selfie und mit Unterstützung von Kollegen in Salzburg gelehrt:

 

cksystemsteaching.github.io/CS4All/

 

Die Vision ist, Informatik sowohl Studierenden der Informatik als auch möglichst vielen fachfremden Studierenden und langfristig sogar Schulkindern besser zugänglich zu machen. Diese Vision ist in jüngster Zeit zu einem Trend in vielen Industrieländern geworden, der in entsprechenden Internetforen unter dem Stichwort #CS4All für "Computer Science for All" diskutiert wird.

 

Das Ziel von Selfie ist es folgende Frage zu beantworten: Was genau ist die Bedeutung eines komplexen Formalismus wie einer Programmiersprache und wie entsteht diese Bedeutung auf einer Maschine ohne Verstand? Diese Frage geht auf die Beobachtung zurück, dass viele Menschen, oft ohne sich selber darüber im Klaren zu sein, die wirkliche Bedeutung eines komplexen Formalismus nicht kennen und ihn dennoch mit entsprechenden Konsequenzen verwenden müssen. Eine ebenso wichtige Beobachtung ist aber auch, dass die wesentlichen Grundlagen zur Beantwortung dieser Frage weniger schwierig zu vermitteln sind, als der weitverbreitete Ruf der Informatik den Anschein geben mag. Informatik kann sehr anspruchsvoll sein, ist aber ein im Vergleich zu anderen Gebieten junges Gebiet, in dem eine Konsolidierung ihrer überaus zahlreichen und komplexen Themen auf einfachste Prinzipien noch in Entwicklung ist.

 

Professor Kirsch versucht beiden Beobachtungen durch zwei miteinander verbundene Lehrtechniken Rechnung zu tragen. Erstens erstellt und verwendet Kirsch eine Liste von fundamentalen Grundprinzipien, die seiner Ansicht und Erfahrung nach wesentlich bei der Beantwortung der Frage nach der Entstehung von Semantik sind. Ein Beispiel ist das Kodierungsprinzip, das sich mit der Frage der binären Repräsentation jeder Form von Information beschäfigt. Ein weiteres Beispiel ist das Zustandsprinzip, das den Begriff von Berechnung als einfache Folge von binären Zuständen verständlich macht. Zweitens entwickelt und verwendet Kirsch Selfie als einfache, aber immer noch realistische Manifestation dieser Grundprinzipien in allen Vorlesungen und zahlreichen Übungen, in denen Studierende das System analysieren und erweitern.

 

Selfie implementiert in einer eigens dafür entwickelten, sehr einfachen Teilmenge einer weitverbreiteten Programmiersprache drei wesentliche Elemente der Konstruktion von Semantik: (1) ein sich selbst übersetzender Übersetzer, (2) ein sich selbst ausführender Interpreter und (3) eine sich selbst ausführende Virtualisierung des Interpreters. Selfie ist Open Source Software, die nicht nur kostenlos online verfügbar ist, sondern auch von Interessierten weltweit jederzeit leicht erweitert werden kann:

 

github.com/cksystemsteaching/selfie

 

Selbstbezüglichkeit bei Übersetzung, Interpretation und Virtualisierung von Programmiersprachen stellt eine zentrale Herausforderung in der Lehre dar, deren Auflösung wesentlich bei der Entwicklung fundierten Wissens in der Informatik ist. Vereinfacht gesagt geht es um die Konstruktion der Semantik einer Sprache durch die Sprache selbst, allerdings mit dem Unterschied, dass die Sprache keine gesprochene Sprache ist, sondern ein Formalismus mit exakter Semantik. Während Übersetzung und Interpretation offensichtliche Entsprechungen außerhalb der Informatik haben, gewinnt der Begriff der Virtualisierung an Bedeutung, wenn man betont, dass Virtualisierung Grundlage ist für Berechnung als Dienst (cloud computing), ähnlich wie zum Beispiel Strom und Wasser, allgemein zugänglich zu machen. Virtualisierung ist, wieder vereinfacht gesagt, eine fundamental schnellere Form von Interpretation, ohne die überall und allen verfügbare und bezahlbare Informationsverarbeitung nicht möglich ist.

 

Professor Kirsch arbeitet zur Zeit an einem Lehrbuch über Grundprinzipien der Informatik am Beispiel von Selfie, das kostenlos als Entwurf (bisher 3 von 12 geplanten Kapiteln) online verfügbar ist:

 

leanpub.com/selfie

 

Selfie wird momentan an der Universität Salzburg in vier Bachelorvorlesungen und einer Mastervorlesung verwendet. Im Bachelor sind dies Grundlagen Betriebssysteme, Grundlagen Compilersysteme, Systems Engineering und Computer Science for Everyone, und im Master Software Systems (Fortgeschrittene Themen in Betriebssystemen). Die Verwendung von Selfie hat bereits zur wesentlichen Verbesserung der Evaluierungsergebnisse der Vorlesung Übersetzerbau geführt, obwohl das Thema dieser Veranstaltung unter den Salzburger Studierenden als schwierig gilt.

 

Momentan laufende Projekte zur Weiterentwicklung von Selfie sind die Arbeit am Lehrbuch, eine Masterarbeit zum Thema der Lehre von Informatik für Schulkinder, eine Erweiterung des Systems zur automatischen Bewertung von Übungen durch formale Verifikationstechnik, die damit auch Teil der Lehre bereits im Bachelorstudium werden soll (Zusammenarbeit mit Professor Biere, JKU Linz), und eine Portierung des Systems auf neueste Prozessorarchitekturen (bereits unter github.com/cksystemsteaching/selfie/tree/riscv online verfügbar).

Positionierung des Lehrangebots

Selfie wird momentan an der Universität Salzburg in vier Bachelorvorlesungen und einer Mastervorlesung verwendet.

Weiterführende Information


Das Beispiel wurde für den Ars Docendi Staatspreis für exzellente Lehre 2017 nominiert.