Digital resources in the Social Sciences and Humanities OpenEdition Our platforms OpenEdition Books OpenEdition Journals Hypotheses Calenda Libraries OpenEdition Freemium Follow us

Wissenschaftskommunikation im Wandel – Computational Essays und ihre Entwicklung

Eine Postserie über Computational Essays – Teil 1

Anna Faust und Martin Dröge

Statt PDF-Dateien mit seitenlangen Textwüsten und in Tabellen gequetschten Zahlenreihen setzen Unternehmen der freien Wirtschaft zunehmend auf digitale und interaktive Berichtsformen: Widgets wie Slider oder Lasso-Auswahl ermöglichen es, in dynamisch aufbereiteten Grafiken die Daten anzuzeigen, die für Unternehmensentscheidungen wirklich relevant sind. Auch im Bereich des Datenjournalismus finden sich neben Zeitungsartikeln Interaktionsformen mit Grafiken und Diagrammen, die eine tiefere Auseinandersetzung mit den Daten ermöglichen, die den recherchierten Inhalten zugrunde liegen.

Der Wissenschaftsbereich greift diese Auseinandersetzung mit den verwendeten Forschungsdaten auf, geht aber noch einen Schritt weiter und macht den für die Auswertungen verwendeten Code transparent und nachvollziehbar – und teilweise sogar ausführbar. Ein Blick auf die wissenschaftliche Publikationskultur zeigt, dass in immer mehr Fachdisziplinen Arbeiten in Online-Journalen veröffentlicht werden, die die verwendeten Algorithmen nicht nur in Pseudocode beschreiben, sondern Code enthalten, der direkt ausgeführt werden kann.

In der universitären Lehre etablieren sich zunehmend Lehrformen, die auf Coding mit Jupyter Notebooks basieren. Dies hat zur Folge, dass Studierende in Zukunft häufiger Computational Essays als Hausarbeiten anfertigen oder Computational Essays als Prüfungsleistung einreichen werden. Auch die datengetriebene und computergestützte Digital History wird diese neue Publikations- und Vermittlungsform in der Forschung nutzen und setzt bereits heute auf den Einsatz von Computational Essays in der Lehre – auch und nicht nur als Prüfungsformat.

Computational Essays werden in Zukunft immer relevanter für die Art und Weise, wie Fakten und Ideen vermittelt werden, aber auch wie Menschen lernen. Es lohnt sich also, sich mit dieser Form der wissenschaftlichen Kommunikation auseinanderzusetzen.

Was ist ein Computational Essay? Definitionsversuch und Charakteristika

Was ist ein Computational Essay? Stephen Wolfram hat sich 2017 in einem Blogpost ausführlich mit dieser Frage beschäftigt. Dort findet sich allerdings nur eine knappe und rudimentäre, aber letztlich zutreffende Definition:

„There are basically three kinds of things here. First, ordinary text […]. Second, computer input. And third, computer output. And the crucial point is that these all work together to express what’s being communicated.“1

Um eine eigene Definition anzubieten, die an diese anknüpft: Computational Essays kombinieren erläuternden Text und ausführbaren Code in einem Dokument und verfolgen die Beantwortung einer Forschungsfrage, die durch einen computationellen Ansatz gelöst werden soll. Neben Text und Code können visuelle Elemente, wie z.B. durch Code generierte Diagramme, aber auch Grafiken und Bilder verwendet werden, um Argumentationen und Einsichten pointiert darzustellen. Das Einfügen von Formeln und Tabellen ist ebenso möglich wie der gezielte Einsatz von Hyperlinks. Eine weitere fortgeschrittene Nutzungsmöglichkeit besteht in der Einbindung von interaktiven Elementen wie dynamischen Grafiken, Widgets und Videos, die die Kommunikation von Thesen und Forschungsergebnissen noch effizienter gestalten können.

Literate Programming vs Literate Computing

Wo liegen die Wurzeln von Computational Essays? Anfang der 1980er-Jahre entwickelte der amerikanische Informatiker Donald Knuth das Paradigma des Literate Programming. Ziel war es, Computerprogramme nicht nur so zu schreiben, dass der Computer tut, was er soll, sondern den Code auch so zu dokumentieren, dass er für Menschen verständlich bleibt.

„Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.“2

Literate Programming war und ist ein Plädoyer für eine bessere Dokumentation von Programmcode. Der von Knuth verfolgte Ansatz sah vor, aus einer Datei, die Quellcode mit Kommentaren enthält, zwei Dateien zu extrahieren: Eine Datei liefert dann den Code, eine zweite Datei beschreibt und erklärt diesen Code. Für diese Form des Literate Programming verwendete er die Programmierumgebung WEB, um eine TeX-Datei für die Dokumentation und eine Datei mit dem Code (in diesem Fall in Pascal) zu erstellen.

Schematische Darstellung des Literate Programming mit Hilfe der Programmierumgebung WEB, TeX und Pascal, Abbildung aus Donald Knuth, Literate Programming, in: The Computer Journal 27, Nr. 2 (1984), S. 99.

Knuths Ansatz hat in den 2000er-Jahren eine Erweiterung erfahren. Literate Computing knüpfte an Literate Programming an, beide Begriffe werden oft synonym verwendet. Die entscheidende Weiterentwicklung ist jedoch, dass Code und erklärender Text in einer Datei, also in einem Dokument, vorliegen und der Code in diesem Dokument auch ausgeführt werden kann:

„A literate computing environment is one that allows users not only to execute commands but also to store in a literate document format the results of these commands along with figures and free-form text that can include formatted mathematical expressions.“3

Dieser Ansatz wurde vor allem von Fernando Pérez vorangetrieben und populär gemacht. Pérez entwickelte 2001 den interaktiven Python-Interpreter IPython, der zur Grundlage der späteren Jupyter Notebooks werden sollte. Ziel von Pérez und seinen Mitstreitenden war es, aufbauend auf IPython ein technisches System zu entwickeln, das Literate Computing in der von ihnen konzipierten Form umsetzt. Das Ergebnis waren nach mehrjähriger Entwicklungsarbeit die Jupyter Notebooks, die heute eine der am weitesten verbreiteten Varianten sind, um Literate Computing zu realisieren.

Jupyter Notebooks: Eine kleine Erfolgsgeschichte

Im Jahr 2011 wurde das erste IPython Notebook vorgestellt, das Text, ausführbaren Code, Codeausgabe und Grafiken enthält, also alle Komponenten, die für Literate Computing erforderlich sind.

Abbildung aus: Perez, Fernando, The IPython notebook: a historical retrospective, Blogpost vom 8. Januar 2012, online unter: https://web.archive.org/web/20120111000605/http://blog.fperez.org:80/2012/01/ipython-notebook-historical.html

Das gemeinnützige Open-Source-Projekt Project Jupyter treibt bis heute die Entwicklung der Jupyter Notebooks voran und stellt damit eine Plattform zur Verfügung, die interaktive, programmiersprachen-übergreifende computergestützte Forschung leicht zugänglich macht. Mit dem JupyterLab bietet das Projekt eine flexible webbasierte Entwicklungsumgebung für die Notebooks.

Weitere Ableger des Projekts sind nbviewer, um Notebooks ansehen zu können. Für ähnliche Zwecke wurde Voilà entwickelt, womit einzelne Notebooks als Webanwendung bereitgestellt werden können. Binder ermöglicht die serverbasierte Bereitstellung von Notebooks in einer ausführbaren Umgebung. JupyterBook fasst ausführbare Notebooks in einer Art Online-Buch zusammen, während jupyterlite Jupyter Notebooks oder JupyterLab als Browser-Anwendung zur Verfügung stellt. JupyterHub ist insofern erwähnenswert, als hier eine selbstgehostete Serverumgebung ermöglicht wird, die die technischen Hürden für die Nutzung durch die zentrale Bereitstellung der Jupyter Infrastruktur sehr niedrig hält.

Bereits vor und parallel zu den Jupyter Notebooks wurden von anderer Seite Notebook-Konzepte für den Programmierbereich entwickelt. Allerdings basierten die Wolfram Notebooks oder Sage Notebooks auf Programmiersprachen, technischen Ansätzen und Datenformaten, die sich nicht in dem Maße durchsetzen konnten, wie es den Jupyter Notebooks gelungen ist. Ein Vorteil der Jupyter Notebooks war die enge Verknüpfung mit der Programmiersprache Python, die seit Mitte der 2010er Jahre bis heute ebenfalls einen starken Aufschwung erlebt hat und sich in verschiedensten Anwendungsbereichen großer Beliebtheit erfreut. Jupyter Notebooks können aber auch mit vielen anderen Programmiersprachen verwendet werden. Das ist eine wichtige Eigenschaft von Jupyter Notebooks und macht sie für die rechnergestützte Forschung attraktiv – und damit auch relevant für das Verfassen von Computational Essays in der Lehre.

Hier geht es zu Teil 2 der Postserie.

1 Stephen Wolfram, What Is a Computational Essay?, in: Stephen Wolfram Writings, 14.11.2017, online unter: https://writings.stephenwolfram.com/2017/11/what-is-a-computational-essay/.

2 Donald Knuth, Literate Programming, in: The Computer Journal 27, Nr. 2 (1984), S. 99.

3 Millman, K. Jarrod / Perez, Fernando, Developing open source scientific practice, in: Stodden, Victoria / Leisch, Friedrich / Peng, Roger, Implementing Reproducible Research, Chapman and Hall/CRC Press 2014, S. 149-183, S. 174.


OpenEdition schlägt Ihnen vor, diesen Beitrag wie folgt zu zitieren:
Digital History Berlin (Redaktion) (8. April 2024). Wissenschaftskommunikation im Wandel – Computational Essays und ihre Entwicklung. Digital History Berlin. Abgerufen am 15. Oktober 2024 von https://doi.org/10.58079/w6mu


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.