Processing

Nachdem der Kollege Ingo neulich bereits freiwillige Zusatzaufgaben für die Weihnachtsferien verteilt hat, will ich auch nicht zurückstehen und hier auch etwas vorstellen, das sich der eine oder andere ja in den Weihnachtsferien anschauen und auf Unterrichtstauglichkeit abklopfen könnte.

Eines meiner Ziele ist ja, auch Schüler für Informatik zu interessieren, die nicht sowieso schon der klassischen Zielgruppe <klischee>männlich, technik-affin, gut in Mathe, nicht so gut in Sprachen, Kunst und Musik</klischee> angehören.  Damit das was werden kann, sollten auch die Beispiele und Projekte, an denen Konzepte erarbeitet werden, aus Bereichen stammen, die diese Schüler ansprechen.

Processing ist eine einfache Programmierumgebung zum Erstellen von Grafiken und
(interaktiven) Animationen. Kurz gesagt: mit Processing macht man Kunst. Programmiert wird dabei in einer Art „Simplified Java“, das den Zugriff auf Grafikfunktionen (und auch anderes, z.B. Mausabfrage) stark vereinfacht.

Ich will erstmal gar nicht allzuviel über die Programmierung in Processing erzählen, sondern nur neugierig machen und euch – natürlich – meine allererste Processing-Grafik zeigen, die ich heute erstellt habe:

Ist doch schon recht hübsch, nicht? Noch ein bisschen zu symmetrisch und rund für meinen Geschmack, zu eindeutig algorithmisch generiert – aber ein Anfang ist es allemal. Und das mit einem Programm von 20 Zeilen. Auf den Code an sich will ich heute aber gar nicht eingehen, sondern auf die Art wie er entstanden ist:

Ich hatte mich in den letzten Wochen immer mal wieder ein bisschen eingelesen, Processing aber noch nie selbst benutzt.  Heute habe ich mich dann ohne weitere Dokumentation einfach hingesetzt, Processing gestartet und hatte nach einer (!) Minute meine erste Grafik auf dem Bildschirm.  An dieser habe ich dann einfach immer weitergebastelt, bis ich nach gefühlt 20 Minuten die Grafik oben produziert hatte. (In Wirklichkeit war’s wohl doch eine Stunde –> Flow!) Dazwischen hab ich wahrscheinlich hundert mal Cmd-R („Run“) gedrückt und mir angeschaut, was passiert.

„Hm, das ist doch nicht, was ich wollte? Ach so, klar, ich weiß warum. So, jetzt tut’s. Aber irgendwie ist das doch nicht so besonders hübsch. Was will ich eigentlich überhaupt machen? Wie kann ich das hinbekommen? Welche Sprachkonstrukte brauche ich dazu, die ich noch gar nicht kenne? Besser schnell mal nachschauen. Ach, da hab ich zufällig noch was über verschiedene Farbsysteme gelernt… bauen wir das doch mal ein – grau war sowieso nicht so doll…“

Dieses iterative und explorative Vorgehen ist ungeheuer befriedigend.  Die Erfolgserlebnisse kommen schnell und häufig, man bekommt jederzeit Feedback („Ja, der Herr Python-Programmierer hat schon wieder ein Semikolon vergessen!“), man hält ganz automatisch das Programm immer lauffähig (ähnlich wie beim Unit Testing), man macht sich Gedanken über Zweck und Design und strukturiert den Code dabei laufend um (refactoring), so dass er – hoffentlich – am Schluss allgemeiner, veränderbarer, weiterverwendbarer geworden ist.

Das bedeutet z.B. dass man zuerst konkrete Werte (Koordinaten, Farben, usw.) verwendet (damit man schnell etwas sieht), diese dann in Konstanten auslagert (damit man sie schnell mal global ändern kann) und schließlich in Funktionsparameter (damit man nicht an vielen Stellen Änderungen vornehmen muss, wenn man Verhalten, das von den diesen Werten abhängt, abwandeln will).  Grundlegende Abstraktionsprinzipien ergeben sich also aus der aktuellen Notwendigkeit, das „Kunstwerk“ schöner/besser/anders zu gestalten.  Ist doch toll, oder?  Ich will ja nicht behaupten, dass sich diese Prinzipien den Schülern von selbst erschließen – aber ihre Motivation, das Verstehen, wozu sie nützlich sind, eventuell schon. Und für den Rest ist ja schließlich noch ein Lehrer im Raum.

Wie gesagt, interaktive Kunstwerke oder Spiele sind ebenfalls möglich. Auch im Browser und auf dem Handy.  Ich persönlich bin aber ganz old school (sic!) und träume davon, mit den Schülern Bilder auszuwählen, sie zu drucken, zu rahmen und im Schulhaus aufzuhängen. Kann man sie damit begeistern, die noch nicht Begeisterten? Vielleicht sogar den einen oder anderen technikfernen (wenn nicht gar -phoben) Kollegen? Wer weiß? Ich natürlich noch nicht… Aber ich möchte es sehr gerne ausprobieren.

Ein sehr inspirierendes Video habe ich auch noch: Zwei Wissenschaftler bei Microsoft Research haben für ihre beiden Töchter und deren Freundinnen ein einwöchiges „summer camp“ im Wohnzimmer der einen Familie veranstaltet, bei dem sie anhand von Processing das Programmieren (kennen-)gelernt haben. Ganz großartig!

Advertisements

6 Gedanken zu „Processing

  1. Wow, das finde ich sehr inspirierend. Das will ich auch mal ausprobieren 🙂

    Ja, ich stimme zu, mit so einem Thema könnten wir bei Schülern Spaß an Informatik wecken, die wir mit ‚klassischer‘ Programmierung nicht erreichen können…

  2. Wollte ich auch mal machen und habe mich dann doch für EOS entschieden. Dort kann man eine TURTLE programmieren und farbige Muster zeichnen lassen. Wenn man mit den Schülern sich einmal überlegt hat, wie man Blütenblätter zeichnet, dann werden die richtig kreativ. Wenn gleich das Programm relativ schlecht ist, was die Performance angeht.
    Ich selbst werde mich übrigens mit dem SDK Corona von anscamobile auseinandersetzen. Die Demoversion kostet für 30 Tage nichts und man kann sich in LUA, einer einfachen Skriptsprache, und gleichzeitig App-Entwicklung mal einarbeiten. Die haben richtig viele schöne Beispiele (Angry Birds, etc.) zum Ausprobieren.
    Leider wird ja die Entwicklungsumgebung appinventor.com von google für Android zum 31.12.11 abgeschaltet. Aber mit ein bisschen Glück macht das MIT weiter: http://mitmobilelearning.org/ Das wäre wirklich was für die Schüler: Grafisches Programmieren wie bei SCRATCH nur für ein SMART-Phone. Cooooool!!!!

    • Ja, Turtle-Grafik ist, glaube ich, immer noch ein gutes Mittel zur Einführung. Ich weiß noch, dass wir in der 5. Klasse Projekttage hatten und ich damals drei Tage lang LOGO in einem düsteren unterirdischen Computerkeller gelernt habe. War toll.

      Turtle-Grafik kann man natürlich auch in Processing machen. Entweder mit z.B. http://terrapin.sourceforge.net/ oder (vielleicht auch für den einen oder anderen gelangweilten Oberstüfler nicht uninteressant) selber programmieren mit translate() und rotate().

      Corona sieht cool aus. Ich bin gespannt, was du berichtest. Blöd für den Unterricht ist natürlich, dass zurzeit wohl nur wenige Schüler ein Smartphone haben. Schul-Smartphones gibt’s bestimmt erst recht nicht. (In zehn Jahren, hoffe ich, haben die Dinger dann aber bestimmt den beschränkten programmierbaren Taschenrechner ersetzt!) Corona ist immerhin schonmal cross-platform.

      Jetzt ist mir auch wieder eingefallen, wo ich schonmal von Corona gelesen habe. In diesem netten Übersichtsartikel aus der NYT: http://www.nytimes.com/2011/11/10/technology/personaltech/computer-programming-for-children-minus-cryptic-syntax.html?_r=1

    • Ja, genau!!! Verarbeiten und Verändern von existierenden Bildern ist besonders dankbar, weil die Ergebnisse gleich viel hermachen. Frau Embee ist Kunstlehrerin und wir haben vor ein paar Jahren mal ein schönes Gimp-Projekt für einen Kurs von ihr ausgeheckt. Vielleicht kann ich dazu auch mal was posten. Aber bei Gimp/Photoshop weiß man ja nie, was da eigentlich gerade Magisches passiert. Solche Filter zu /programmieren/ (oder den source code von jemandem anzuschauen) ist viel erhellender. Und manchmal sind die Methoden verblüffend einfach: ein paar Pixel vertauschen, Durchschnittswerte nehmen, Farben rausnehmen… sieht immer gleich toll aus.
      Tja, während ich also nach Weihnachten meine Ukulele kennenlerne, kannst du ja künstlerisch tätig werden. Aber, Achtung: Wie sagen die jungen Leute im Internet heutzutage? Pics or it didn’t happen!

  3. Pingback: Processing – Lehrerzimmer

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s