Vorwort & Einleitung

In diesem Buch werde ich zwei auf den ersten Blick unabhängige Themen miteinander verbinden. Es ist zum einen die Computerkunst (Computerart) und zum anderen das Programmieren, genauer das Programmieren mit der Computersprache Logo bzw. mit Snap!, eine ihrer Nachfolgeversionen. Meine immer intensivere Beschäftigung mit beiden Themen führte neben ersten Ausstellungsaktivitäten und einem Blog zum Thema Digital Art auch dazu, meine Erfahrungen und Ideen in diesem Buch Codierte Kunst zu dokumentieren.

Beim Codieren geht es ums Programmieren, bei der Computerkunst um einen Zweig der zeitgenössischen Kunst. Mit dem Buchtitel soll deutlich werden, dass es sich nicht um eine systematische Einführung in das Programmieren handelt, sondern um einen Ansatz, das Programmieren über das Erstellen von Bildern in der Tradition der frühen Computerkunst und anderer Kunstrichtungen zu lernen.

Voraussetzung ist ein Interesse an dieser Kunstrichtung, d.h. an überwiegend gegenstandslosen Motiven, abstrakten geometrischen Formen und Farbfiguren. Praktisch geht es um die programmtechnischen Möglichkeiten, die gezeigten und andere solcher Bildbeispiele nachzubilden. Im Mittelpunkt steht deshalb die Analyse, das Nachempfinden, das Nachprogrammieren (Recoding) und daran anknüpfend das Umsetzen eigener Varianten (Remixing).

Dazu wird die visuelle Programmierumgebung Snap! verwendet, wobei keinerlei Programmierkenntnisse vorausgesetzt werden. Mit diesem kostenfrei zugänglichen Werkzeug können Sie nach dem Durcharbeiten dieser Einführung eigene Ideen weiter verfolgen. Sie finden damit einen Einstieg in das hochaktuelle, spannende Feld der Medienkunst. Vielleicht werden Ihre eigenen Ergebnisse ja einmal Bestandteil einer Medienkunst-Ausstellung? Mit dieser Einführung möchte ich es allen Interessierten – gerade auch solchen ohne Vorkenntnisse und Programmiererfahrungen – ermöglichen, sehr rasch entsprechende Werke zu realisieren.

Es wird etliche LeserInnen beruhigen, dass die Projekte dabei (fast) ohne Mathematik auskommen. Logisches Denken reicht! Ich beschränke mich darauf, immer genau die informatischen Konzepte einzuführen, die für ein konkretes Projekt gebraucht werden, und Wege aufzuzeigen, wie auch komplexere, anspruchsvolle und ästhetische Grafiken und Animationen umgesetzt werden können. Diese Themenorientierung unterscheidet sich sicher von den üblichen Einführungen in das Programmieren, bei denen zumeist theorielastiger und systematischer vorgegangen wird.

Snap! ist für diesen Ansatz besonders geeignet, weil es die Erstellung anspruchsvoller Grafiken hervorragend unterstützt und durch die interaktiven Möglichkeiten und direkten Rückmeldungen ein experimentelles Vorgehen geradezu herausfordert. Ein ganz zentraler Bestandteil von Snap! ist die sogenannte Schildkrötengrafik (Turtle-Graphics, im Deutschen oft auch als Igelgrafik bezeichnet). Mit ihr werden alle grafischen Komponenten der vorgestellten Projekte umgesetzt werden.

Die Snap!-Programmierumgebung ist bestens geeignet zum Selbststudium und natürlich auch für Anfängerkurse mit (sehr) jungen Adressaten. Snap! steht damit ganz in der Tradition der Programmiersprache Logo, die ursprünglich für Kinder und Schulen konzipiert wurde. Ich selbst habe bei der programmtechnischen Umsetzung der hier vorgestellten Beispiele etliche Sprachelemente von Logo besonders schätzen gelernt. Es hat mir großen Spaß gemacht, jeweils möglichst kompakte und gleichzeitig flexible Programme zu entwickeln, wodurch die dabei entstehenden Grafiken sich leicht vielfältig variieren lassen.

Im Buch werde ich die dafür notwendigen Grundkonzepte behandeln und in den Umgang mit Logo bzw. Snap! einführen. Dabei hoffe ich, ein wenig von der Faszination zu vermitteln, die ich selbst bei der Erzeugung der Grafiken empfunden habe. Da ich weder Informatiker noch Kunsthistoriker bin (sondern Unterrichtstechnologe und Mediendidaktiker), dürfen Sie keine informatisch geprägte Einführung in das Programmieren erwarten; auch bei den kunstgeschichtlichen Hintergründen muss ich auf die einschlägige Literatur verweisen (die Sie im umfangreichen Literaturverzeichnis finden). Herausgekommen ist so eine Kombination aus Bilderbuch und Programmierleitfaden.

Einleitung (Auszug)

Wenn ich in diesem Band die Computerkunst gemeinsam mit dem Programmieren behandle, dann geht das auf zwei Auslöser zurück, die mich im Jahr 2015 auf die Verbindung der beiden Themen brachten:

Auslöser I: Fünfzig Jahre Computerkunst. Vor etwas über fünfzig Jahren, im Februar 1965, fand an der Universität Stuttgart die weltweit erste Ausstellung zur Computerkunst statt. Gezeigt wurden computergenerierte Bilder des Ingenieurs Georg Nees. Auf dieses Jubiläum wurde ich im Vorfeld durch Hinweise in einschlägigen Zeitschriften aufmerksam und so konnte ich – wie andere auch – rechtzeitig zum Jubiläumsjahr mit einer kleinen Ausstellung (dokumentiert bei digitalart) einen Beitrag leisten.

Auslöser II: Fünfzig Jahre Programmiersprache Logo. Ebenfalls ziemlich genau vor fünfzig Jahren wurde die Programmiersprache Logo vorgestellt. Durch Apple Logo, die erste Version für den damals sehr populären 8-Bit-Rechner Apple II, lernte ich selbst 1982 erstmals Logo näher kennen. Ende der 80er Jahre arbeitete ich dann an einem Lehrerfortbildungsprojekt mit Studienmaterialien zum Thema Lehren und Lernen mit dem Computer. Diese boten u.a. erprobte Unterrichtseinheiten mitsamt der entsprechenden Software. Eine davon war der Studienbrief Schildkrötengrafik – Einfaches Programmieren von Grafiken, den ich zusammen mit Hans Rauch verfasst habe, der seinerseits auch die Software TURTLE-LLC dafür entwickelt hatte (Rauch & Wedekind, 1989). Auf diese Erfahrungen kann ich nun Jahre später zurückgreifen.

Beide Aspekte bestimmen den Charakter dieses Buches. Das Kapitel Computerkunst geht auf die Grundelemente dieser Kunstrichtung ein. Im Kapitel Recoding & Remixing wird der Aspekt des Programmierens hinzugefügt, denn das Recoden, das Nachprogrammieren, und das Remixen, das Abwandeln und Erweitern von Vorlagen, sind inzwischen (nicht unumstrittene) Bestandteile der Medienkultur geworden.

In den darauf folgenden Kapiteln werde ich Sie an den Umgang mit unserem Werkzeugkasten – der Snap!-Programmierumgebung – heranführen, der das Nachempfinden ausgewählter Werke der frühen Computerkunst und anderer Kunstrichtungen erlaubt, um davon ausgehend eigenständige Variationen und Weiterentwicklungen zu erstellen. Snap! ist dabei zwar ein notwendiges Werkzeug, aber dennoch nur ein Element des gesamten Entwurfs- und Gestaltungsprozesses. Die Vermittlung der Programmierkonzepte erfolgt trotzdem nicht beiläufig, sondern immer experimentell und ergebnisorientiert. Deshalb ist dies keine systematische Einführung in die Programmierung mit Snap!, sondern das Kennenlernen und Einsetzen derjenigen Sprachelemente, die uns das Erstellen eigener grafischer Exponate erlauben. So werden in diesem Rahmen etliche Sprachelemente und Möglichkeiten, die Snap! darüber hinaus bietet, nicht behandelt.

Ein zentraler Bestandteil von Snap! ist die Schildkrötengrafik, durch die Sie mit einem überschaubaren Befehlssatz zunächst einfache, aber dann auch zunehmend komplexe Grafiken programmieren können. Sie lernen dabei die Formulierung von Algorithmen und deren Codierung. Sie werden nach und nach zentrale Programmierkonzepte kennenlernen, wie

  • die Wiederholung, Modularisierung und Erweiterbarkeit, Verallgemeinerung und Kontrollstrukturen (im Kapitel Erste Schritte …),
  • die Rekursion (im Kapitel Ein Block ist ein Block ist ein Block …),
  • Felder und Listen (im Kapitel Die Sprache G),
  • das Arbeiten mit Objekten in Form von Sprites und Klonen sowie die Kommunikation 
zwischen Objekten (im Kapitel Alles in Bewegung),
  • die Kopplung von Objekten (im Kapitel Kinetische Kunst) und
  • Prozeduren als Daten (im Kapitel Coqart: Quadratische Strukturen).

Die hierbei gewonnenen Erfahrungen können bei Bedarf leicht auf andere moderne, höhere Programmiersprachen übertragen werden.

Mit den Komponenten von Snap! und der Schildkrötengrafik wird nach und nach ein ästhetisches Laboratorium aufgebaut (Nees, 1995, S. 7). Mit dem Computer steht uns nämlich eine Versuchswerkstatt zur Verfügung, die es uns erlaubt, grafisch zu experimentieren, bis es uns gelingt, gezielt – oft genug aber auch als Ergebnis eines glücklichen Zufalls – ästhetische Objekte zu erzeugen. Nees (a.a.O., S. 183) hat das Vorgehen einmal als Gestaltfallenstellen charakterisiert: „Irgendwann wird man durch einen außergewöhnlichen Fang belohnt“.

Den Einstieg bildet zumeist der Nachvollzug geeigneter „Vor“-Bilder. Für solche konzentrieren wir uns auf die Bilder der frühen Computerkunst. Genauso geeignet sind aber auch Werke aus anderen Kunstrichtungen, wie dem Minimalismus, der Op Art, dem Konstruktivismus oder der Konkreten Kunst. Bei der programmtechnischen Umsetzung lernen wir dann gleich noch die wichtigsten Prinzipien der Programmierung kennen. Das ist die Voraussetzung, um nach den Anregungen durch die Vorbilder auch eigene Vorstellungen zu entwickeln und dann ebenfalls programmtechnisch umzusetzen.

Diese Themen werden in den weiteren Kapiteln behandelt. Damit auch absolute Programmieranfänger den Einstieg erfolgreich bewältigen, habe ich ihn sehr kleinschrittig gestaltet. In den Folgekapiteln wird diese Kleinschrittigkeit nach und nach abnehmen. Letztlich sollen mit dem Programmieren Möglichkeiten erschlossen werden, sich kreativ auszudrücken.

Die Computerkunst hat enge Bezüge zu anderen wichtigen Kunstrichtungen, etwa der Konzeptkunst, der Konkreten Kunst oder der Op Art. Diese Bezüge werden im Kapitel Kunst Programmieren?! an einigen Beispielen verdeutlicht werden. Dem dient das Recoding & Remixing einzelner Werke von Josef Albers, François Morellet und des Drip Painting von Jackson Pollock. Dabei wird sich zeigen, dass darin viele Elemente der Computerkunst in neuem Kontext auftauchen.

Im abschließenden Kapitel wagen wir einen Blick über den Tellerrand. Denn es gibt natürlich auch andere Projekte, die sich dem Recoding gewidmet haben. Und es gibt andere leistungsfähige Werkzeuge – etwa Zeichenroboter – für die Umsetzung der Konzepte generativen Gestaltens, also der Verbindung grafischer Gestaltung mit dem Programmieren.

Das Buch endet mit einem kleinen Ausblick, der andeuten soll, was unter Einbeziehung aktueller technischer Entwicklungen alles möglich wird. Neben der Animation, die in einem eigenen Kapitel schon angesprochen wurde, sind es vor allem zwei Konzepte, die das Tor zu multimedialen Installationen öffnen. Es ist dies zum einen die Interaktion, zum anderen die Reaktivität von Programmen durch die Verwendung von Sensoren. Perspektivisch öffnet sich Ihnen damit der Übergang von der frühen Computerkunst zur heutigen Medienkunst.

Alles, was sich einer Darstellung anhand von beispielhaften Programmen entzieht, aber für Ihre weitere Arbeit mit Snap! unentbehrlich ist, wurde in die Anhänge verbannt. So findet sich eine Darstellung der Snap!-Benutzeroberfläche mitsamt Tipps und Tricks und eine systematische Auflistung aller Snap!-Befehle. Im Laufe der Kapitel werden etliche Snap!-Befehle in Erweiterung des vorgegebenen Befehlssatzes erarbeitet, die sich in einer so entstandenen Blockbibliothek finden.