Creative Coding mit Processing

Werbung
Creative Coding
mit Processing
bian Dennler
Programmieren oder Zeichnen?
Von Fabian Dennler
Mit Beiträge von Till Nagel, Dennis Reimann, Eva Gerth u.a.
Creative Commons
CC BY-SA 3.0 CH
Namensnennung - Weitergabe unter
gleichen Bedingungen
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
1
Hintergrund ........................................................................................................................................................................................................................................................................... 2
Didaktische Analyse......................................................................................................................................................................................................................................................................................... 2
Methodische Analyse....................................................................................................................................................................................................................................................................................... 3
Warum Processing? ......................................................................................................................................................................................................................................................................................... 3
Drehbuch – Creative Coding mit Processing ......................................................................................................................................................................................................................................... 4
Grundlagen der Programmierung ............................................................................................................................................................................................................................... 5
Was ist ein Programm?................................................................................................................................................................................................................................................................................... 5
Was ist ein Algorithmus? ............................................................................................................................................................................................................................................................................... 5
Was ist ein Prozess? ......................................................................................................................................................................................................................................................................................... 5
Was ist eine Programmiersprache? .......................................................................................................................................................................................................................................................... 5
Was ist ein Compiler? Was ist ein Interpreter? ................................................................................................................................................................................................................................... 5
Processing Entwicklungsumgebung ........................................................................................................................................................................................................................... 6
Koordinatensystem .......................................................................................................................................................................................................................................................................................... 6
Anweisungen ...................................................................................................................................................................................................................................................................................................... 6
Variablen .............................................................................................................................................................................................................................................................................................................. 6
Schleifen................................................................................................................................................................................................................................................................................................................ 7
Bedingungen ....................................................................................................................................................................................................................................................................................................... 7
Funktionen........................................................................................................................................................................................................................................................................................................... 8
Objekte, Klassen, Methoden und Attribute ............................................................................................................................................................................................................................................ 8
Graphiken, Schriften und Objekte................................................................................................................................................................................................................................ 9
Hand Grafiken..................................................................................................................................................................................................................................................................................................... 9
Linie zeichnen..................................................................................................................................................................................................................................................................................................... 9
Gesicht zeichnen................................................................................................................................................................................................................................................................................................ 9
Objekte Überlagern ........................................................................................................................................................................................................................................................................................ 10
Zufallslinien zeichnen ................................................................................................................................................................................................................................................................................... 10
Schriftarten verwenden ............................................................................................................................................................................................................................................................................... 10
3D, Bewegungen und Kollisionen ............................................................................................................................................................................................................................. 11
3 Dimensionen ................................................................................................................................................................................................................................................................................................. 11
3D Objekte ......................................................................................................................................................................................................................................................................................................... 12
3D Oberflächen und Licht............................................................................................................................................................................................................................................................................ 12
Objekte bewegen ............................................................................................................................................................................................................................................................................................. 12
Objekte kollidieren ......................................................................................................................................................................................................................................................................................... 12
Bilder verwenden ............................................................................................................................................................................................................................................................. 13
Einzelbilder speichern .................................................................................................................................................................................................................................................................................. 13
Bilder laden ....................................................................................................................................................................................................................................................................................................... 13
Pixel-Array der Zeichenfläche ................................................................................................................................................................................................................................................................... 14
Bilder verarbeiten .......................................................................................................................................................................................................................................................................................... 14
Audio und Video verwenden....................................................................................................................................................................................................................................... 15
Frequenz und Tonhöhe in Kürze.............................................................................................................................................................................................................................................................. 15
Amplitude und Lautstärke in Kürze........................................................................................................................................................................................................................................................ 15
Nicht die Ohren kaputt machen! .............................................................................................................................................................................................................................................................. 15
Musik abspielen mit Minim ........................................................................................................................................................................................................................................................................ 15
Mikrophon Lautstärke visualisieren ...................................................................................................................................................................................................................................................... 15
Video abspielen................................................................................................................................................................................................................................................................................................ 16
Live Video einbinden ..................................................................................................................................................................................................................................................................................... 16
Sketches im Web mit processing.js .......................................................................................................................................................................................................................... 17
Online-Journalismus ...................................................................................................................................................................................................................................................................................... 17
HTML5 Gerüst .................................................................................................................................................................................................................................................................................................. 17
Processing Code............................................................................................................................................................................................................................................................................................... 17
OpenProcessing.org ....................................................................................................................................................................................................................................................................................... 17
Weitere nützliche Bibliotheken ................................................................................................................................................................................................................................. 18
PDF erstellen..................................................................................................................................................................................................................................................................................................... 18
OpenGL Bibliothek ......................................................................................................................................................................................................................................................................................... 18
GSVideo Bibliothek......................................................................................................................................................................................................................................................................................... 18
Aufgabestellungen ........................................................................................................................................................................................................................................................... 19
Die Methodik der generativen Kunst ..................................................................................................................................................................................................................................................... 19
Zufallslinie.......................................................................................................................................................................................................................................................................................................... 19
Zufallsquadrate ................................................................................................................................................................................................................................................................................................ 19
Spirale zeichnen .............................................................................................................................................................................................................................................................................................. 19
Zeichenprogramm .......................................................................................................................................................................................................................................................................................... 19
Rotationen.......................................................................................................................................................................................................................................................................................................... 19
Text einlesen ..................................................................................................................................................................................................................................................................................................... 19
Bilder laden und anzeigen........................................................................................................................................................................................................................................................................... 20
Projektrecherche............................................................................................................................................................................................................................................................................................. 20
Projektarbeit ..................................................................................................................................................................................................................................................................................................... 20
Projektbericht (Eigenbeurteilung) .......................................................................................................................................................................................................................................................... 21
Verhaltensbeobachtungen (Fremdbeurteilung) ............................................................................................................................................................................................................................... 21
Strukturlegetechnik und ConceptMap ................................................................................................................................................................................................................................................... 22
Indikatoren Raster und Bewertungen .................................................................................................................................................................................................................... 23
Indikatoren Programmieren nach Vorgaben (Programming Basics) ...................................................................................................................................................................................... 23
Indikatoren Präsentation ............................................................................................................................................................................................................................................................................ 24
Indikatoren Methodenkompetenzen...................................................................................................................................................................................................................................................... 25
Indikatoren Selbst- und Sozialkompetenzen ...................................................................................................................................................................................................................................... 26
Quellen .................................................................................................................................................................................................................................................................................. 27
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
2
Hintergrund
Der Ansatz ist ein Handlungsorientierter Unterricht, Lernende zentrierter Unterricht, der die Problemlösefähigkeit, Selbsttätigkeit und Eigenverantwortung in den Vordergrund stellt.
Die Unterrichtseinheit gliedert sich in drei wesentliche Phasen:
1. Die theoretische und praktische Erschliessung des Themenfeldes, bei der für alle Lernenden ein Grundstock an Fähigkeiten angelegt werden soll, auf den sie während der folgenden
Phasen zurückgreifen können.
2. die Kooperative Lernphase, bei der unterschiedliche Gruppen Teilthemen erarbeiten und den
Mitlernenden erklären.
3. die Phase der Projektarbeit und Produktion bei der die Arbeitsergebnisse in einen grösseren Kontext, ein geeignetes Medium implementiert werden, das den Ansprüchen eines Software-Projekts gerecht wird
Didaktische Analyse
In der Beruflichen Bildung Informatiker/Innen wird das Thema Programmieren nach Vorgaben
behandelt. Der Schlüssel für das Verständnis von Programmierung liegt im Erlernen der Formulierung von Programmanweisungen - der sog. Syntax - und der logischen Strukturierung von Programmabläufen, also dem Gestalten von Algorithmen.
Auch Visuelles Ausdrucksvermögen, die Fähigkeit, Lösungsstrategien zu entwickeln, ist nicht nur
eine Frage von Bildung, sondern auch im Alltag und Berufsleben höchst wertvoll und anwendbar.
Die technische Perspektive auf die Themen Bild oder Audio schulen den Blick im Umgang mit digitalen
Medien. Diese Auseinandersetzung mit digitalen Medien findet vor allem aktiv statt, indem wir Design-Projekte mit konkreten Ergebnissen produzieren.
Auf Grund des projekthaften Charakters richten sich die Unterrichtslektionen in erster Linie an Fächer, die ein projektorientiertes Profil aufweisen. Aus Gründen didaktischer Reduktion und dem Ziel,
ein gesichertes Grundverständnis in der Erzeugung einfacher Formen zu vermitteln, werden während
der Unterrichtsstunden, die den Umgang mit Processing einführen, simple geometrische Formen und
deren Manipulation in Bezug auf Grösse, Lokation, Farbe und Transparenz vorgestellt und erarbeitet.
Hinzu kommt, dass die Arbeitsergebnisse stets in Form eines druckbaren Ausgabeformats (PDF) abgegeben werden. Die Unterrichtssequenz ist auf die Entwicklung der kognitiven Strategien (Fachkompetenz), der metakognitiven Strategien (Methodenkompetenz) und der motivationalen Strategien
(Selbstkompetenz) ausgerichtet. Durch die Indikatoren Raster wird versucht, die Leistungsbeurteilung
transparenter, effizienter und objektiver zu machen, Lernenden wirksames Feedback zu geben sowie
das aktive, selbstgesteuerte Lernen zu unterstützen.
Methoden-, Sozial- und Selbstkompetenzen
Das Indikatoren Raster der Methoden-, Sozial- und Selbstkompetenzen sind als Mittel gedacht, Erwartungen an die Methoden-, Sozial- und Selbstkompetenzen auszudrücken, was von den Lernenden im
Unterricht erwartet wird. Damit können die Transparenz von Lernerwartungen erhöht und mögliche
Defizite früh angesprochen werden.
Fachkompetenzen
Weil es die Informatik Berufslehre mit mehreren Schwerpunkten gibt, werden die beruflichen Handlungskompetenzen in Module mit Indikatoren Raster festgelegt.
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
3
Methodische Analyse
In der ersten Phase der Unterrichtseinheit spielt der Einzelunterricht, in Form von einem Leitprogramm und adaptivem Lernen eine übergeordnete Rolle. Ziel ist es, die Lernenden in kurzer Zeit
auf ein Niveau zu bringen, von dem aus sie einen geschärften Blick und ein analytisches Handwerkszeug für die weitere praktische Tätigkeit erhalten.
Während der Projektphase können die Lernenden ihre erlangten Fähigkeiten erproben und eigene
Ideen umsetzen. Neben der Findung eines geeigneten Projektgegenstandes wird ihnen auch aus
organisatorischer Hinsicht ein hohes Mass an Teamfähigkeit abverlangt.
Die abschliessende Präsentation gibt den Lernenden die Möglichkeit, sich vor einem Publikum zu
präsentieren, die Ergebnisse, erlebten Widerstände und Erfahrungen zu reflektieren und in Absprache
mit allen Beteiligten das Vorhaben für die Phase der Produktion zu diskutieren.
Lernprozess Dokumentation
Durch die Prozessdokumentation kann sich die Lernbegleitung ein Bild von den Entwicklungen in den
verschiedenen Teilbereichen machen. Lernenden können sich über die Ziele und Besprechungsergebnisse informieren. Entscheidungen können im Projektverlauf nachvollzogen werden. Als Typische Dokumente dienen zur Dokumentation:
- Besprechungsprotokoll, Lernjournal
- Start/Stop/Weiter, Lernmatrix
Warum Processing?
Es gibt viele Gründe, die dafür sprechen, Processing als Programmierumgebung zu lernen:







Die Umgebung konzentriert sich auf die Eingabe von Text. Man muss keine speziellen GUIElemente lernen.
Es ermöglicht Interessierten ohne Programmierhintergrund einen schnellen und simplen Einstieg in das kreative Arbeiten mit Code. Ohne aufwendige Vorbereitung erlaubt Processing das
Zeichnen von grafischen Elementen und die Verwendung von Input, z.B. durch Maus und Tastatur.
Wir programmieren in Java, bzw. einer vereinfachten Version davon. Dadurch halten wir uns
an allgemein anerkannte Programmierstandards und jede/r kann nach seinen/ihren Wünschen und Fähigkeiten schrittweise zu reinem Java übergehen.
Processing ist ein Open source project. Es kostet also nichts, Processing zu installieren und es
zu verwenden. Ausserdem tragen viele Programmierer zur Erweiterung der Möglichkeiten von
Processing bei.
Mit Arduino, bzw. Wiring gibt es Umgebungen für die Programmierung von Mikrocontrollern,
die ähnlich wie Processing funktionieren.
Processing läuft unter Windows, Mac OS X und Linux.
Mit Processing.js kann man Processing-Files auch in Webbrowsern laufen lassen unter Einhaltung von JavaScript- und Html5-Konventionen.
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
4
Drehbuch – Creative Coding mit Processing
5 Minuten Einstieg: Max Planck Research Networks Video
25 Minuten Installation/Einführung Processing
15 Minuten Brainstorming
 Erwartungen / Vorkenntnisse
90 Minuten Einzelarbeit: Ausgangslage, Entwicklungsumgebung
90 Minuten Gruppenarbeit/Gruppenpuzzle
 G1: 3D, Bewegungen und Kollisionen
 G2: Bilder
 G3: Audio und Video
 G4: Sketches im Web: processing.js
 (Weitere Nützliche Bibliotheken)
45 Minuten Präsentation/Austausch: Experten
10 Minuten Wissenssicherung: Zufallsquadrate, Spirale
90 Minuten Einzelarbeit: Projektrecherche
180 Minuten Projektarbeit
90 Minuten Präsentation des Produkts: Projekte
Dauer
Die Dauer des Moduls umfasst ca. 10 bis 15 Unterrichtslektionen, wobei die Zeit abhängig von den
möglichen Vorkenntnissen der Klasse ist.
Lernziele und Handlungskompetenzen
 Ich kann Quellcode verständlich Ausarbeiten (Variablenname, Struktur, Kommentare), um die
Nachvollziehbarkeit des Programms sicher zu stellen
 Ich kann Quellcode analysieren und Veränderungen nachvollziehen
 Ich dokumentiere meine Scripts aus Entwickler- und Anwendersicht
 Ich kann Ablaufstrukturen mit Hilfe einer Script Sprache umsetzen
 Ich kann mit einer JavaScript Bibliothek in ein HTML5 <canvas> Element zeichnen, Text darstellen und Bilder anzeigen
 Ich entwickle ein grundlegendes Programmierverständnis
 Ich kennen Algorithmen zum Lösen von Aufgaben und Problemen aus verschiedenen Anwendungsgebieten
 Ich kann gegebene Algorithmen lesen und interpretieren
 Ich kann Algorithmen entwerfen und realisieren mit den algorithmischen Grundbausteinen
 Ich kann Algorithmen geeignet darstellen
 Ich kann ein Programm von der Idee aus umsetzen
 Ich entwerfe, implementiere und teste Programme
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
5
Grundlagen der Programmierung
Processing wurde als Programmiersprache speziell für Gestalter und Künstler entwickelt. Sie eignet
sich speziell für die Programmierung von Bildern, Animation und Sound und führt sehr schnell zu visuell ansprechenden Resultaten.
Mit Hilfe der Processing Entwicklungsumgebung können Programme geschrieben und ausgeführt
werden. Darüber hinaus hilft die Umgebung noch bei weiteren Aufgaben: Etwa Fehler im Code zu finden, oder das Programm für das Web zu exportieren. Processing ist Open Source Software, und kann
frei unter http://processing.org/download/ herunter geladen werden.
Was ist ein Programm?
Programme sind Algorithmen in maschinenlesbarer Form - also die Beschreibung eines Rechenvorgangs. Programme sind ausführbare Einheiten, bestehend aus einer Abfolge von Anweisungen/Statements.
Ein Programm liegt meistens als ausführbare Datei vor und wird zur Verarbeitung in den Arbeitsspeicher des Computers geladen.
Was ist ein Algorithmus?
Ein Algorithmus ist eine aus endlich vielen Schritten bestehende eindeutige Handlungsvorschrift zur
Lösung eines Problems oder einer Klasse von Problemen. Algorithmen sind eines der zentralen Themen der Informatik und Mathematik. In Form von Computerprogrammen und elektronischen Schaltkreisen steuern sie Computer und andere Maschinen. Für Algorithmen gibt es unterschiedliche formale Repräsentationen. Algorithmen können in Struktogramme, Programmablaufplänen und Datenflussdiagramme grafisch dargestellt werden.
Lesen Sie dazu noch http://dennisreimann.de/studies/programm_und_prozess/algorithmus und
http://www.grundstudium.info/algorithmen/
Was ist ein Prozess?
Der Ablauf eines Programms wird als Prozess bezeichnet - ein Prozess ist also ein Programm in Ausführung. Die Verarbeitung des Programms findet auf dem Prozessor des Computers statt. Jedes ausgeführte Programm beansprucht also den Prozessor und Ressourcen des Systems, wie z.B. Speicher.
Was ist eine Programmiersprache?
Eine Programmiersprache ist eine Mensch-Computer-Schnittstelle - dabei handelt es sich um ein formales Regelwerk mit definierter Syntax, welche es erlaubt, einseitig mit dem Rechner zu kommunizieren und ihm Anweisungen zu geben. Programmiersprachen sind auf der Grammatik- und Syntaxseite sehr fehleranfällig, da sie keine Toleranz erlauben.
Was ist ein Compiler? Was ist ein Interpreter?
Ein Compiler übersetzt Programmcode in ausführbare Programme, sogenannten Maschinencode. Diese Übersetzung ist maschinen- bzw. prozessorspezifisch, so dass bestimmte Rechner das Programm
ausführen können. Interpreter hingegen verarbeiten den Programmcode zur Laufzeit, so dass keine
vorangegangene Übersetzung notwendig ist.
Es gibt auch Mischformen zwischen Compiler und Interpreter - in Java wird beispielsweise der Programmcode in Bytecode vorkompiliert und auf der ausführenden Maschine durch die Java Virtual Machine interpretiert.
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
6
Processing Entwicklungsumgebung
Processing basiert auf der höheren Programmiersprache Java, vereinfacht deren Schreibweise und
minimiert so den Schreibaufwand bei Programmieren beachtlich. Dabei liegt der Schlüssel für das Verständnis von Programmierung liegt im Erlernen der Formulierung von Programmanweisungen - der
sog. Syntax - und der logischen Strukturierung von Programmabläufen, also dem Gestalten von Algorithmen.
Koordinatensystem
Processing verwendet ein kartesisches Koordinatensystem mit dem Nullpunkt in der oberen linken
Ecke.
Siehe auch Zeichenebene und Koordinatensystem http://www.mathe-online.at/mathint/zeich/i.html
Anweisungen
Mit Hilfe von Anweisungen teilen wir dem Computer mit, dass er bestimmte Dinge ausführen soll. Im
Folgenden werden die ersten Zeichen- und Farbanweisungen in Processing vorgestellt.
 size Setzt die Grösse des Zeichenbereichs.
 background Setzt die Hintergrundfarbe der Zeichenfläche.
 point Zeichnet einen Punkt
 line Zeichnet eine Linie
 rect Zeichnet ein Rechteck
 ellipse Zeichnet eine Ellipse
 stroke Setzt die aktuelle Farbe des Strichs
 fill Setzt die aktuelle Füllfarbe
Variablen
Eine Variable ist ein Zeiger zu einer Speicherstelle im Computer. Computer verarbeiten immer nur
eine Anweisung pro Zeit; mit Hilfe von Variablen können wir also Informationen an einem Schritt im
Programm speichern, und an einem späteren wieder benutzen. Jede Variable hat einen bestimmten
Typ, der vor der Benutzung explizit festgelegt werden muss.
In Processing wird eine Variable definiert, in dem zunächst der Typ, dann der Name und schliesslich
der Anfangswert angegeben werden.
Spezielle Variablen
Processing definiert einige speziellen Variablen, die wir direkt verwenden können, ohne sie selbst deklarieren zu müssen. Dadurch ermöglicht Processing häufig wiederkehrende Aufgaben zu vereinfachen.
 mouseX: Die horizontale Position des Mauszeigers
 mouseY: Die vertikale Position des Mauszeigers
 width: Die Weite des Zeichenbereichs
 height: Die Höhe des Zeichenbereichs
 mousePressed: Eine boolean-Variable, die den Wert true hält, wenn die Maustaste gedrückt
ist, und false, wenn sie nicht gedrückt ist
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
7
Schleifen
Mit Schleifen kann man unter anderem den Programmablauf steuern. Wir werden uns jetzt speziell
mit der for-Schleife beschäftigen. Damit kann man den zu schreibenden Code beträchtlich verkürzen,
was zu weniger Fehlern und besserem Überblick führt.
Neben der for-Schleife gibt es auch noch die Möglichkeit einer while- Schleife. Sie wird vorwiegend
in Fällen eingesetzt, in denen man von vorne herein nicht weiss, wie viele Schleifendurchläufe es
geben soll. Die while -Schleife wird durchlaufen, solange die jeweilig Bedingung erfüllt ist.
Quellcode
Struktogramm
Flussdiagramm
while (i>10) {
Anweisungen
}
Bedingungen
Bis jetzt sind unsere Programme immer von vorne nach hinten durchgelaufen, ohne auf irgendetwas
zu reagieren. Die if – Anweisung gibt uns die Möglichkeit Bedingungen für den weiteren Verlauf des
Programms zu setzen. Das können true/false -Abfragen oder der Vergleich zweier Zahlen sein. Es
sollten bei Zahlen immer nur Ganzzahlen (int) miteinander verglichen werden. Für Anweisungen, die
nur ausgeführt werden sollen, wenn bestimmte Bedingungen erfüllt sind, empfiehlt sich folgende
Schreibweise:
Quellcode
Struktogramm
Flussdiagramm
if (test) {
Anweisungen
}
Vergleichsoperatoren
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
8
Funktionen
Funktionen dienen dazu, oft wiederkehrende Codebereiche (Berechnungen, Formen usw.) nur einmal
eingeben zu müssen, und sie dann immer wieder aufrufen zu können. In der Regel geben Funktionen
etwas zurück (das Resultat der Berechnung). Deshalb werden die Rückgabewerte von Funktionen
auch einem Datentyp zugeordnet (int, float usw.)
Objekte, Klassen, Methoden und Attribute
Die objektorientierte Programmierung (kurz OOP) ist ein auf dem Konzept der Objektorientierung
basierendes Programmierparadigma. Die Grundidee dabei ist, Daten und Funktionen, die auf diese
Daten angewandt werden können, möglichst eng in einem sogenannten Objekt zusammenzufassen
und nach aussen hin zu kapseln, so dass Methoden fremder Objekte diese Daten nicht versehentlich
manipulieren können.
Zur besseren Verwaltung gleichartiger Objekte bedienen sich
die meisten Programmiersprachen des Konzeptes der Klasse.
Klassen sind Vorlagen, aus denen Instanzen genannte Objekte
zur Laufzeit erzeugt werden. Man kann sich die Erzeugung von
Objekten aus einer Klasse vorstellen wie das Fertigen von Autos
aus dem Konstruktionsplan eines bestimmten Fahrzeugtyps.
Klassen sind die Konstruktionspläne für Objekte. Die Klasse entspricht in etwa einem komplexen Datentyp wie in der prozeduralen Programmierung.
Häufig wird der Begriff Methode synonym zu den Begriffen Funktion oder Prozedur aus anderen Programmiersprachen gebraucht. Die Funktion oder Prozedur ist jedoch eher als Implementierung einer
Methode zu betrachten.
Im täglichen Sprachgebrauch sagt man auch „Objekt A ruft Methode m von Objekt B auf.“
Objekte (Fenster, Buttons, Laufleisten, Menüs, …) besitzen verschiedene Eigenschaften (Farbe, Grösse,
Ausrichtung, …). Diese Eigenschaften eines Objekts heissen Attribute.
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
9
Graphiken, Schriften und Objekte
Hand Grafiken
1. Nehmen Sie ein Blatt Papier und zeichnen Sie darauf zwei 10×10 cm grosse Rechtecke.
2. Zeichnen Sie in eines dieser Rechtecke eine (einfache) Grafik, ohne dass der Nachbar diese sehen kann.
3. Beschreiben Sie diese Zeichnung nun ihrem Nachbarn.
4. Vergleichen Sie ihre Grafiken miteinander. Wo gibt es Gemeinsamkeiten, wo Unterschiede?
Was gab es für Schwierigkeiten bei der Übermittlung?
5. und vice versa …
Linie zeichnen
Die Struktur eines Processing Programm (Sketch) besitzt im Wesentlichen zwei Methoden:


setup() wird direkt nach dem Programmstart einmalig ausgeführt.
draw() wird nach dem Ablauf von setup() ins Leben gerufen und läuft in einer Schleife bis
das Fenster geschlossen wird.
Wir verwenden die Anweisung line(x1, y1, x2, y2) so, dass zwei sich überkreuzende Linien
gezeichnet werden.
Gesicht zeichnen
Wir nutzen die verschiedene Zeichen- und Farbanweisungen und zeichnen ein Gesicht.
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
10
Objekte Überlagern
Wir zeichnen ein fast nicht sichtbares rotes Quadrat in die Zeichenfläche. Durch die Überlagerungen
der einzelnen Objekte addieren sich die Transparenten Objekte und das Quadrat erhält eine bestechende Farbe.
frameRate() erlaubt das Steuern der Bildfrequenz (wie oft der draw() Block pro Sekunde abgearbei-
tet wird) durch Angabe einer Ganzzahl. Für Processing stellt es jedoch nur einen Richtwert dar - Abweichungen sind möglich.
Zufallslinien zeichnen
Wir schreiben ein Sketch, das Linien mit zufällig gesetzten Anfangs- und Endpunkten zeichnet.
Schriftarten verwenden
In Processing können auch Schriftarten eingesetzt werden, um Texte darzustellen. Bevor man Text in
Processing ausgeben kann, muss man eine beliebige Schrift zuerst in das .vlw Format konvertieren
(Processing –> Tools –> Create Font).
Bei diesem Vorgang werden der oder die Buchstaben in der angegebenen Grösse gerendert. D.h. sie
liegen dann als Rastergrafik vor, was zur Folge hat, dass sie nicht mehr beliebig skalierbar sind, sonder
man vorher überlegen muss, wie gross die Zeichen sein müssen. Die Rastergrafiken werden in einer
.vlw – Datei im Sketch- Ordner des aktuellen Projektes gespeichert.
Um im Programm auf die Zeichen zugreifen zu können, gibt es einen eigenen Datentyp, nämlich
PFont. Um Text auf dem Bildschirm ausgeben zu können, muss man eine Variable (genau genommen
ein Objekt) vom Typ PFont erstellen und dann mit der Funktion LoadFont() die Zeichen laden. Mit
textFont() muss die aktuelle Schrift ausgewählt werden. Um den Text dann anzeigen zu können
benutzt man die Funktion text().
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
11
3D, Bewegungen und Kollisionen
3 Dimensionen
In Processing ist es auch möglich in 3D zu arbeiten. Dies gibt uns die Möglichkeit alle bisher programmierten Bilder und Animationen um eine Dimension zu erweitern.
Im Gegensatz zu 2D, wo wir nur die Achsen x und y haben, kommt in 3D eine z-Achse dazu, die vom
Ursprung (links oben) aus direkt aus dem Bildschirm heraus zeigt.
Damit wir die 3. Dimension nutzen können, müssen wir Processing sagen, dass wir nun in 3D arbeiten
wollen und einen entsprechenden Renderer wählen.
Einen letzten wichtigen, und manchmal etwas verwirrenden Punkt stellt die Tatsache dar, dass der
Betrachter in einer 3-dimensionalen Darstellung ja auch seine Position haben muss. Um das zu verdeutlichen spielen wir mit der Funktion translate() im folgenden Beispiel.
translate(width/2,height/2, 0);
Mit dieser Zeile verschieben wir das Koordinatensystem von links oben in die Mitte des Programmfensters. Die 0 als z-Koordinate bewirkt, dass wir eine Szene so betrachten, als ob wir in 2D arbeiten
würden. Wenn wir jetzt aber eine negative Zahl als z-Koordinate wählen, werden die gezeichneten
Objekte kleiner, da wir den Ursprung des Koordinatensystems von uns weg bewegt haben.
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
12
3D Objekte


sphere(int size); Zeichnet eine Kugel mit der Grösse size.
box(int size); Zeichnet einen Würfel mit der Grösse size
Sollten komplexere Formen benötigt werden, kann man diese entweder über beginShape(),
vertex(x,y,z) und endShape() in Processing erstellen, oder man importiert fertige 3D Objekte (*.obj) mit Hilfe der loadShape(*.obj) Funktion.
3D Oberflächen und Licht
Betrachtet man ein reales Objekt, z.B. einen einfärbigen Würfel, so stellt man fest, dass alle Seiten unterschiedliche Farbschattierungen aufweisen. Das liegt am Spiel zwischen Licht und Schatten. Dieses
Spiel gilt es so gut, wie möglich zu immitieren, will man realitätsnahe 3D Darstellungen generieren.
Generell müssen Lichtquellen in jedem draw() Durchlauf, und nicht in setup() aufgerufen werden.
Die einfachste Möglichkeit in Processing mit Licht zu arbeiten bietet die Funktion lights()
Objekte bewegen
Um eine Bewegung nicht abrupt ablaufen zu lassen gibt es eine einfache Technik – das “Easing”. Wird
ein Objekt nicht sofort an seinen Endpunkt bewegt, sondern nur einen bestimmten Prozentwert in
dessen Richtung. Das führt zu einer harmonischen runden Bewegung.
Konkret wird der Unterschied in der x-Position von Objekt und Mauszeiger errechnet (dx).
Wenn dieser Wert grösser ist als 1, dann wird ein neuer Wert für die Objektposition berechnet.
Lesen Sie die Artikel aus http://btk.tillnagel.com/creative-coding-1/05-bewegungen.html
Objekte kollidieren
Wenn wir eine Kollision in Processing erkennen wollen, d.h. das
Aufeinandertreffen zweier visueller Elemente, müssen wir bestimmte Bedingungen prüfen. Und zwar, ob diese beiden Elemente
kollidiert sind, also ob sie sich an gleicher Position befinden.
Wenn x grösser/gleich der Weite ist, dann bedeutet dies, dass der
Punkt den rechten Rand berührt, er also mit dem Rand kollidiert. In
diesem Fall soll die Geschwindigkeit umgedreht werden, so dass
sich der Punkt danach nach links bewegt.
Lesen Sie noch den Artikel http://btk.tillnagel.com/creative-coding-1/06-bewegungen2.html
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
13
Bilder verwenden
Einzelbilder speichern
Manchmal möchte man seine Processing Kreation als Bilder weiterverwenden, um es beispielsweise
bei Flickr hochladen zu können.
Dazu sollte man sein Processing Programm folgendermassen aufbauen:
Mit der Leertaste kann man nun seine Aufnahme beginnen. Vorsicht: Das kann ziemlich hohe Last für
die Festplatte bedeuten. Ist man mit der Aufnahme fertig, wechselt man in den Ordner des Sketches.
Jedes Frame steht als Bild zur Verfügung.
Bilder laden
In der digitalen Bildbearbeitung werden computergestützt Bilder bearbeitet. Dies umfasst die Analyse,
die Manipulation, die Speicherung und die Anzeige von (Raster-)Bildern. Die Bildbearbeitung kommt
in vielen Gebieten zum Einsatz, sei es um die Helligkeit eines Fotos nachzuverbessern, um einen Ausschnitt perspektivisch zu korrigieren, oder eine eingescannte Grafik zu schärfen.
Um Bilder in Processing verwenden zu können, müssen wir diese in einer Variable speichern. Dazu
verwenden wir den neuen Datentyp PImage. (Dies ist im Gegensatz zu int, float oder boolean
kein primitiver, sondern ein Objekt-Datentyp, was auch an der Grossschreibung erkennbar ist.)
Mit background(foto); wird das Bild als Hintergrund verwenden. Dabei sollten die Grössen übereinstimmen. Die Bilder sollten dabei im data-Ordner unterhalb des Programmordners liegen. (Nutze
den Menüpunkt "Sketch > Show Sketch Folder", um zum Programmordner zu gehen.)
Nachdem mit loadImage() ein Bild in ein PImage geladen wurde, kann die Grösse des Bildes abgefragt werden. Dazu können die Eigenschaften width und height verwendet werden.
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
14
Pixel-Array der Zeichenfläche
Um schneller arbeiten zu können, können statt mit Zeichenanweisungen auch direkt die Farben des
sichtbaren Felds manipulieret werden. So können einzelne Pixel über das Array pixels[] verändert
werden, anstatt mit point(x, y). Das Pixel-Array enthält für alle Pixel des Zeichenbereichs die
Werte (vom Datentyp color). Bevor mit dem Array gearbeitet werden kann, müssen die aktuellen
Werte, d.h. die aktuell zu sehenden Farben auf der Zeichenfläche, mittels loadPixels() geladen
werden. Nachdem man die Daten geändert hat, muss updatePixels() aufgerufen werden, um die
Änderungen auch sichtbar zu machen.
Bilder verarbeiten
Neben dem einfachen Darstellen des Bildes kann man auch Pixel um Pixel verändern, ähnlich einem
Photoshop Filter. Ein Bild besteht aus den einzelnen Bildpunkten, die auf einer Fläche angeordnet
sind. Auf die einzelnen Farbwerte des Zeichenbereichs kann über die Anweisung get(x, y) zugegriffen werden.
Die einzelnen Bildpunkte eines PImage-Bildes sind in einem Pixelarray gespeichert. In Processing
kann man auf die Pixel via img.pixels[i] zugreifen. In diesem Array sind die Farbwerte jedes
Bildpunktes allerdings einfach, d.h. linear hintereinander abgelegt.
Zur besseren Veranschaulichung dieses Pixelarrays hier ein Beispiel, dass ein Bild nicht direkt zeichnet, sondern an zufällige Positionen Kreise zeichnet, die von einem an dieser Stelle liegenden Farbwert
beeinflusst werden.
Je mehr und je feinere Kreise gezeichnet werden, desto besser kann das Original-Bild erkannt werden.
Analysieren und Dokumentieren Sie das Script.
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
15
Audio und Video verwenden
Frequenz und Tonhöhe in Kürze
Schallwellen besitzen eine sinusförmige Form. Wellenlänge
ist der Abstand zweier benachbarter Punkte gleichen Pegels.
Die Frequenz beschreibt die Anzahl der Wellen je Sekunde.
Töne sind Schwallwellen mit bestimmten Frequenzen. Je
höher die Frequenz, desto höher der Ton. Ein Klang sind
mehrere Töne übereinander gelegt.
Amplitude und Lautstärke in Kürze
Die Amplitude eines Tons wird als die Höhe der Welle repräsentiert. Ein lauter Ton hat eine hohe Welle und eine grosse
Amplitude. Und andersrum: eine kleine Amplitude repräsentiert
einen leiseren Ton. Die Lautstärke wird in Dezibel gemessen.
Nicht die Ohren kaputt machen!
Schall wird in Wellen übertragen, die entstehen, wenn bei der Klangerzeugung eines Objekts, beispielsweise eines Stereolautsprechers, die umgebende Luft verdrängt und dadurch der Luftdruck geringfügig verändert wird. Zur Beschreibung von Schallwellen verwenden Akustikexperten Begriffe wie
Frequenz und Amplitude. Lesen Sie den Online Artikel http://www.apple.com/de/sound/
Musik abspielen mit Minim
Analysieren Sie das Beispiel PlaySound_Minim und verändern Sie die abgespielte Sounddatei.
Nutzen Sie die audioPlayer.mix.get(sampleNumber) Funktion, und stellen Sie die Wellen in
Echtzeit dar. Nutzen Sie audioPlayer.left und audioPlayer.right um eine StereoVisualiserung zu erzeugen.
Mikrophon Lautstärke visualisieren
Analysieren Sie das Beispiel MicAudioLevel. Erstellen Sie ein Struktogramm, welches den Prozess
der draw Methode veranschaulicht. Nutzen Sie das Mikrophon als Steuerelement. So können Sie etwa
die Farbe eines Elements von der Umgebungslautstärke abhängig machen. Oder eine Grafik über die
Tonhöhe beeinflussen. Oder oder ...
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
16
Video abspielen
Wir wollen ein fertiges Video in Processing abspielen. Dazu muss zunächst die Bibliothek importiert
werden. Dann erzeugt man ein Objekt der Klasse Movie und gibt beim Konstruktor den Namen des
Quicktime-Videos an (das – wie gehabt – im data-Ordner liegen muss).
Live Video einbinden
Wenn ein Live-Videosignal verwendet werden soll, muss statt Movie die Klasse Capture eingesetzt
werden. So liefert beispielsweise die Kamera in den iMacs oder eine per USB angeschlossene Webcam
solch ein Live-Videosignal.
Beim Erzeugen des neuen Capture-Objekts wird die Weite und Höhe des aufzunehmenden Bildes
angegeben. Mit Hilfe der Funktion captureEvent() kann nun auf das jeweils neue Bild zugegriffen
werden (Zeilen 17-19).
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
17
Sketches im Web mit processing.js
Mithilfe der processing.js Bibliothek ist es möglich Processing ohne Einsatz von Java-Applets auf
Websites einzubinden. Die Javascript Bibliothek erweitert das HTML5 canvas -Element um weitere
Funktionen, wie die Möglichkeit, Formen und Animationen zu erstellen – und das direkt im
HTML/Javascript-Code.
Online-Journalismus
Online-Journalismus ist so viel mehr als nur Text, Bild, Foto, Audio oder Video. Erst wenn Medien
kombiniert werden, ergeben sich Geschichten, wie sie nur im Web gezeigt und nicht in der Zeitung, im
Fernsehen oder im Radio dargestellt werden können. Mit Content Management Systemen und Tools,
die in Redaktionen eingesetzt werden, stösst man allerdings schnell an seine Grenzen, wenn man einzigartige, auf bestimmte Geschichten zugeschnittene Darstellungsformen haben will. Lesen Sie den
vollständigen Artikel http://www.digitalerwandel.de/tag/processing-js/
HTML5 Gerüst
Den Ausgangspunkt bildet eine HTML5-Datei mit der Einbindung von Processing.js. Ebenso findet hier die Deklaration des canvas Element statt.
Processing Code
Der eigentliche Processing Code: sketches/test.pde
OpenProcessing.org
Es gibt viele Kurse und Workshops auf der ganzen Welt, die Verarbeitung zu unterrichten, und OpenProcessing.org ist ein Gastgeber für viele von ihnen, indem Professoren und Studenten auf dem Web,
und mit der Welt teilen, wie sie Verarbeitungszeit studieren zusammen.
Suchen Sie einige Sketches die Ihnen gefallen und analysieren sie Sie.
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
18
Weitere nützliche Bibliotheken
Mit Hilfe von Bibliotheken kann man erweiterte Funktionalitäten verwenden, die Processing nicht
direkt zu Verfügung stellt. Eine Bibliothek besteht aus Anweisungen und Klassen, die benutzt
und/oder erzeugt werden können. Der Code dieser Bibliotheken ist – wie selbst geschrieben – in Processing (oder Java) programmiert. Der Vorteil an einer Bibliothek ist, dass diese auf einfache Weise
eingebunden werden kann.
Mit solchen Libraries wird es über Grafikerzeugung und Bildbearbeitung hinaus möglich, etwa Audio
und Video zu benutzen oder mit externen Geräten zu kommunizieren. Auch das Einlesen von Daten
aus dem Internet und viele weitere Manipulationen werden erleichtert.
Wir können auch zusätzliche Bibliotheken aus weiteren Quellen verwenden. Diese sollten in Speicherort der Processing Sketches abgelegt werden.
Um eine Bibliothek verwenden zu können, muss sie im Processing-Programm hinzugefügt werden.
Dies geschieht mit einer einzelnen Zeile, in der die Bibliothek importiert wird. Diese kann man entweder selbst in den Code, oder über das Menü "Sketch > Import Library" hinzugefügt werden.
PDF erstellen
In Processing können Sie auch PDF-Dateien direkt erzeugen. Die Grafikanweisungen werden als Vektorgrafiken im PDF gespeichert und können so beliebig skaliert werden und in sehr hohen Auflösungen gedruckt werden. Zur Erstellung von PDFs muss die Bibliothek importiert werden.
In Zeile 4 des Beispiels wird in der size() Anweisung gesagt, dass die Grafik als PDF erzeugt werden
soll, und zwar in einer Datei mit Namen "circles.pdf". (Dabei wird sich kein Ausgabefenster öffnen; es
wird nur das PDF erstellt.)
OpenGL Bibliothek
Um zum Beispiel die grafischen Anweisungen schneller mit Hilfe der Grafikkarte ausführen zu können,
fügt man folgende Zeile am Anfang des Programms hinzu:
import processing.opengl.*;
GSVideo Bibliothek
Öffnen Sie das Beispiel ASCIIVideo.pde. Weshalb läuft die Anwendung nicht?
http://gsvideo.sourceforge.net/examples/Capture/AsciiVideo/AsciiVideo.pde
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
19
Aufgabestellungen
Die Methodik der generativen Kunst
Lesen Sie den Text „Die Methodik der generativen Kunst“.
Zufallslinie
Schreiben Sie ein Programm, das Linien mit zufällig gesetzten Anfangs- und Endpunkten und einer
zufälliger Farbe zeichnet.
Zufallsquadrate
Schreiben Sie ein Programm, das Quadrate (100x100Pixel) zufällig über dem Bildschirm verteilt. Der
Farbe der Quadrate soll ebenfalls zufällig gesetzt werden.
Spirale zeichnen
Schreiben Sie ein Programm, das vom Mittelpunkt ausgehend immer grössere Kreise auf den Schirm
zeichnet. Das ganze sollte so aussehen:
Zeichenprogramm
Entwerfen Sie ein Zeichenprogramm, das etwas anderes zeichnet, je nachdem, ob die Maus gedrückt
ist oder nicht. (z.B. Punkte statt Linien oder Kreise statt Rechtecke)
Rotationen
Schauen Sie sich das SquareFlower Beispiel an, und spielen Sie mit den Werten rum.
Ändern, Ausprobieren, Verstehen!
Text einlesen
Wählen Sie einen kleinen Text aus, und nutzen Sie den folgenden Sketch, um diesen Text in Processing
einzulesen. Erstellen Sie danach eine Darstellung der Zeilen.
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
20
Bilder laden und anzeigen
1. Erstellen Sie ein Programm das ein Bild horizontal bis zu maximal doppelter Breite skaliert.
2. Erstellen Sie ein Programm das ein Originalbild und eine rötlich eingefärbte, halbtransparente
Version des Bildes anzeigt.
3. Erstellen Sie ein Programm das in einem Bild die Farbe Rot entfernt.
4. Erstellen Sie ein Programm das ein Bild vertikal spiegelt.
5. Schreiben Sie drei Bildbearbeitungsprogramme:
a. Drehung um 90° nach rechts
b. Drehung um 180°
c. Drehung um 270° nach rechts
Projektrecherche



Suchen Sie ein Projekt oder ein Werk, das Text visualisiert, oder mit Text oder Schriften spielerisch umgeht. Dies können Poster, statische Grafiken, interaktive Software, Animationen oder
auch Installationen sein. Es sollte nur zu mindestens einem der beiden Bereiche passen:
 Analyse, Visualisierung, Textinterpretation, Generative Grafik, etc
 Schriften, Animation, Textgeneratoren, etc
Erstellen Sie eine Zusammenfassung. Achten Sie darauf, dass mindestens die folgenden Informationen dabei sind:
 Titel, Autor/Künstler, Quellenangabe (URL, Buch, ...)
 Kurzbeschreibung: Einen Absatz zum Projekt/Werk
 Tags: Drei bis fünf passende Stichwörter
 Zwei Screenshots: JPG oder PNG, 250px Weite
Setzen Sie den Text als Sketch um.
Projektarbeit
Erstellen Sie einen Sketch zum Thema "Beziehungen". Ihre Grafik oder interaktives Programm soll das
Konzept "Beziehung" visualisieren. Vorrangig soll es hierbei um die Grundidee gehen, und nicht etwa
aufwändige Animationen erstellen. Sie dürfen nur schwarz, weiss und drei weitere Farben verwenden.
Im Folgenden einige Beispiele (dies sind nur Anregungen):
 Beziehung zwischen zwei Menschen oder Gruppen symbolisch umsetzen
 Soziale Relationen aufzeigen (siehe Soziale Netze, Web2.0)
 Verbindungen zwischen Objekten/Ideen visualisieren (etwa die Beziehung zwischen Tag und
Nacht)
Quelltext Dokumentation
Schreiben Sie als Kommentar am Anfang in den Quelltext:
 Vollständige Namen aller Gruppenmitglieder
 Projektbeschreibung: Was ist die Idee/der Hintergrund? Was macht das Programm?
 Eventuelle Schwierigkeiten, bzw. Unvollständigkeiten in der Umsetzung
 Achtet darauf, dass ihr den Code formatiert, sinnvolle, aussagekräftige Variablennamen verwendet und – vor allem – gut kommentiert.
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
21
Projektbericht (Eigenbeurteilung)
Analyse der Gruppenarbeit als Gruppenmitglied. Erstellen Sie einen Projektbericht (mindestens 1 A4
Seite) unter Verwendung folgender Leitfragen.
Beantworten Sie alle Fragen.
1. Sind Sie mit dem Ergebnis der Gruppenarbeit zufrieden?
2. Sind Sie mit Ihrer Mitarbeit zufrieden?
3. Konnten Sie Ihre Ideen einbringen?
4. Wie war die Zusammenarbeit in der Gruppe?
5. Was ist Ihnen gelungen? Warum?
6. Was ist Ihnen weniger gelungen? Warum?
Verhaltensbeobachtungen (Fremdbeurteilung)
Zur Beurteilung der Gruppenarbeit werden die angeforderten Resultate aus dem Auftrag durch Beobachtungen von Arbeits- und Sozialverhalten ergänzt. Durch einen Projektbericht werden die
Lernenden gefördert ihre Arbeitsmethoden und Vorgehensweisen zu Analysieren.
Dabei wird das eigene Arbeits- und Sozialverhalten mit zwei Gruppenmitgliedern besprochen und
eingeschätzt.
Arbeitsverhalten






Zeigt Interesse und Arbeitsbereitschaft
Beteiligt sich zuverlässig an den Aufgaben
Ist konstruktiv und respektvoll
Bringt Ideen ein
Führt Aufgaben zügig und überlegt aus
Erkennt selbst zu erledigende Aufgaben







































Sozialverhalten





Fügt sich in die Gruppe ein
Unterstützt andere Partnerschaftlich
Hält Abmachungen und Termine
Gibt Informationen weiter
Geht auf andere ein
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
22
Strukturlegetechnik und ConceptMap
Compiler
Programm
Syntax
line
Quellcode
Variable
{}
Struktogramm
Array
int
Anweisung
Prozess
Datentyp
Y >= X
mouseX
fill
byte
PFont
Objekt
Klasse
Pixel
canvas
Sketch
Exception
true/false
Java
draw()
boolean
processing.js
import
Processing
mousePressed
Interpreter
Daten
Ein- / Ausgabe
return

Markieren Sie die Begriffe in der Tabelle die Sie einer anderen Person erklären können mit einem Grünen Hintergrund. Markieren Sie die Begriffe die Sie nicht kennen oder verstanden haben mit einem Gelben Hintergrund.

Erarbeiten Sie nun die Erklärung der Begriffe welche Sie nicht kennen. Sie können in den Unterlagen (Lehrmittel, Notizen, Internet, etc.) nachschlagen.


Nun werden wieder alle Begriffe einbezogen.
Legen Sie die Begriffe in Partnerarbeit so vor sich, wie sie der Bedeutung nach zusammen gehören. Begriffe, welche in einer Beziehung zueinander stehen, werden nebeneinander gelegt.
Dabei können sehr unterschiedliche Lösungen entstehen.

Wählen Sie nun 7 Begriffe, die für Sie wichtig erscheinen. Erarbeiten Sie ein Concept Map zur
Veranschaulichung der Begriffe und der Beziehungen
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
23
Indikatoren Raster und Bewertungen
Indikatoren Programmieren nach Vorgaben (Programming Basics)
Auftragsbeschreibung

Strukturen darstellen
Stukto-, Flussdiagramm




Datentypen
anwenden



Benutzerschnittstelle
erstellen



Ablaufstruktur umsetzen
Quellcode ausarbeiten








Testen, Testfälle
Dokumentation
Journal









Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Indikatoren
Die Struktur ist nicht erkennbar und auch nicht geeignet
dargestellt
Struktur ist erkennbar, aber nicht richtig dargestellt
Wahl der Struktur unvollständig, aber richtig dargestellt
Ablauf ist vollständig und richtig dargestellt
Struktur (Funktionalität) ist vollständig und richtig dargestellt
Die Datentypen sind nicht richtig eingesetzt
Die Unterscheidung der Datentypen ist erkennbar
Es wurden die richtigen Datentypen gewählt, Zahlenbereiche gezielt eingesetzt
Ein- und Ausgabe der Daten unvollständig umgesetzt
Ein- und Ausgabe der Daten grösstenteils umgesetzt
Ein- und Ausgabe der Daten vollständig und korrekt
umgesetzt
Struktur und Code haben nichts gemeinsam
Implementierung entspricht nur teilweise der Struktur.
Struktur wurde richtig umgesetzt
Codierung erfolgte nicht nach den Vorgaben der Programmiersprache
Syntaktische Fehler im Code
Logische Fehler im Code, welche vom Compiler bzw.
Interpreter nicht gefunden werden
Korrekte Berechnungen, Prozesse
Robuste Benutzerschnittstelle
(Fehlerabfrage und -meldung)
Unstrukturierter Test ohne erkennbare Strategie.
Test reproduzierbar, Testfälle nicht zwingend
Testbeschrieb korrekt und kluge Wahl der Testfälle
(Abdeckung)
Vorgehen nicht dokumentiert.
Dokumentation ist vorhanden mit kleineren Lücken
System-Dokumentation ist vollständig und Code kommentiert
Gliederung und Darstellung ist unübersichtlich
Alle Aktivitäten gemäss Zeitplan sowie alle ungeplante
Arbeiten sind erwähnt
Erfolge und Misserfolge sind erwähnt
Fabian Dennler, @foxfabi
Punkte
-0.25
+0.25
-0.25
+0.25
-0.25
+0.25
-0.25
+0.25
-0.25
+0.25
-0.25
+0.25
-0.25
+0.25
-0.25
+0.25
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
24
Indikatoren Präsentation
Auftragsbeschreibung
Zeitmanagement
Medieneinsatz
Lautstärke, Geschwindigkeit, Blickkontakt
und Gestik
Sprachliche
Ausdrucksfähigkeit
schriftdeutsch
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Indikatoren
 Der Zeitrahmen wurde um nicht mehr als 4% Minuten
über- oder unterschritten
 Der Zeitrahmen wurde um nicht mehr als 2% Minuten
über- oder unterschritten.
 Der Zeitrahmen wurde eingehalten
 Die gewählten Präsentationstechniken sind nicht adressaten- und inhaltsgerecht. Sprache und Medien Veranschaulichung passen nicht überein.
 Es werden keine Präsentations- und Moderationstechniken eingesetzt
 Sprache und Medienveranschaulichung passen nicht
immer überein.
 Bedient die eingesetzten Hilfsmittel professionell
 Setzt geeignete Mittel und Techniken ein
 Gute Vorbereitung
 Zwei Bewertungspunkte nicht erfüllt oder mehr
 Ein Bewertungspunkt nicht erfüllt oder zwei Bewertungspunkte schlecht erfüllt.
 Die Lautstärke war der Raumgrösse und der Sitzordnung der Zuhörer angepasst
 Die Sprechgeschwindigkeit war angenehm
 Es fand häufig Blickkontakt mit den Zuhörern statt
 Die Gestik wirkte offen, kontrolliert und ruhig
 Viele Silben werden verschluckt.
 Die Formulierungen sind oft umgangs-sprachlich.
 Die Sätze sind kompliziert aufgebaut oder unvollständig
 Die Sätze sind gelegentlich grammatikalisch falsch.
 Die Aussagen sind tadellos formuliert
 Die Aussprache ist deutlich.
Fabian Dennler, @foxfabi
Punkte
-0.25
+0.25
-0.25
+0.25
-0.25
+0.25
-0.25
+0.25
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
25
Indikatoren Methodenkompetenzen
Auftragsbeschreibung
Arbeitstechniken und
Problemlösen
Prozessorientiertes
vernetztes Denken und
Handeln
Lernstrategien
Kreativitätstechniken
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Indikatoren
 Hilflosigkeit im Benutzen der Hilfsmittel. Selbstständiges Arbeiten nicht möglich
 Erkenntnis der eignen Arbeitsschritte fehlen und es
findet keine systematisches anpassen statt
 Weitgehendes ordnen und benutzen der Hilfsmittel
 Vorwiegend realistische Erkenntnis der eignen Arbeitsschritte und teilweise systematisches anpassen
 Lückenloses ordnen und benutzen der Hilfsmittel
 Realistische Erkenntnis der eignen Arbeitsschritte und
systematisches anpassen
 Ist auch Hilfe des Unterrichtaufbaues nicht in der Lage
Prozesse und Zusammenhänge zu erkennen
 Erkennt mit Hilfe des Unterrichtaufbaues Prozesse und
Zusammenhänge weitgehend.
 Erkennt mit Hilfe des Unterrichtaufbaues Prozesse und
Zusammenhänge
 Nachlässiges anpassen der Lernstrategien
 Weitgehend Selbstständiges Anpassen der Lernstrategien.
 Selbstständiges anpassen der Lernstrategien
 Hilflosigkeit beim kreieren eigener Denkmuster
 Permanente Unterstützung
 Vorwiegend selbstständiges formulieren
 Weitgehendes kreieren eigener Denkmuster
 Selbstständiges formulieren
 Eigene kreative Denkmuster kreieren und weiterentwickeln.
Fabian Dennler, @foxfabi
Punkte
-0.25
+0.25
-0.25
+0.25
-0.25
+0.25
-0.25
+0.25
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
26
Indikatoren Selbst- und Sozialkompetenzen
Auftragsbeschreibung
Indikatoren
 Beschränktes/Keine Überprüfung vorhanden
 Hilflos im Aufnehmen von Kritiken und antworten mit
gestärktem Selbstbewusstsein
 Weitgehend Eigene Überprüfung vorhanden
Kommunikationsfähigkeit  Überwiegendes aufnehmen von Kritiken und antworten
mit gestärktem Selbstbewusstsein
 Eigene Überprüfung vorhanden
 Kritiken aufnehmen und mit gestärktem Selbstbewusstsein antworten
 Beschränkt Konfliktfähig und unmotiviert lösungsorientierte Mass-nahmen zu entwickeln und erarbeiten
 Konfliktfähig und hilft mit lösungsorientierte MassnahKonfliktfähigkeit
men zu entwickeln und erarbeiten.
 Überaus Konfliktfähig und motiviert lösungsorientierte
Massnahmen zu entwickeln und erarbeiten
 Erkennt die Wichtigkeit eines Teams nicht und lässt das
Team für sich arbeiten. Passiv.
 Erkennt die Wichtigkeit eines Teams weitgehend und
Teamfähigkeit
arbeitet im Team gut mit
 Erkennt die Wichtigkeit eines Teams und arbeitet im
Team vorbildlich
 Oft unpünktlich, unordentlich und unzuverlässiges Arbeiten
 Sein Verhalten den Erwartungen selten/nie angepasst
 Weitgehend pünktlich, ordentlich und zuverlässiges
Umgangsformen
Arbeiten
 Sein Verhalten den Erwartungen vorwiegend angepasst
 Überaus pünktlich, ordentlich und zuverlässiges Arbeiten
 Sein Verhalten den Erwartungen angepasst
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Punkte
-0.25
+0.25
-0.25
+0.25
-0.25
+0.25
-0.25
+0.25
Letzte Änderung: 17.12.2012
Gewerbliche
Berufsschule Chur
http://www.gbchur.ch
Thema
Fach
Seite
Creative Coding mit Processing
Informatik
27
Quellen















Processing. 12.12.12. http://processing.org
Processing Wiki. 12.12.12 http://wiki.processing.org .
Processing. 12.12.12. http://de.wikipedia.org/wiki/Processing
Processing Bibliotheken. 12.12.12.
http://blogs.iad.zhdk.ch/computer-vision-2011/lektionen/7-2-marz-processing-bibliotheken/
Creative Coding. 12.12.12. http://btk.tillnagel.com/archive/creative-coding-2/09-extern-1.html
Learn Processing. 12.12.12. http://lernprocessing.wordpress.com/
Programm & Prozess. 13.12.12. http://dennisreimann.de/studies/programm_und_prozess/
Kreativ programmieren mit Processing. 03.04.2009. http://www.heise.de/ct/projekte/Kreativprogrammieren-mit-Processing-284093.html
Kreativ programmieren mit Processing und Arduino. 03.04.2009.
http://www.heise.de/ct/projekte/machmit/processing
Infographiken programmieren mit Processing. 13.12.12. http://ddi.informatik.huberlin.de/hausarbeiten/Eva_Gerth_Unterrichtsentwurf_Infografiken.pdf
Programmieren oder Zeichnen? 14.12.12.
http://wiki.arch.ethz.ch/asterix/pub/Psz07/WebHome/ProgrammierenOderZeichnenA5.pdf
Nassi-Shneiderman-Diagramm. 12.12.12. http://de.wikipedia.org/wiki/Nassi-Shneiderman-Diagramm
Objektorientierte Programmierung. 13.12.12
http://de.wikipedia.org/wiki/Objektorientierte_Programmierung
Warum Processing? 13.12.12.
http://www.ralphammer.de/teaching/doku.php?id=tutorials:processing:grundlagen:00_warum
Kriterienkatalog Qualifikationsverfahren Informatiker/in – PkOrg. 12.12.12.
http://www.pkorg.ch/pdf/PkOrg_Kriterienkatalog.pdf
Creative Coding mit Processing.doc
CC BY-SA 3.0 CH
Fabian Dennler, @foxfabi
Letzte Änderung: 17.12.2012
Herunterladen