Scratch – Grafisches Programmieren von kreativen Anwendungen

Scratch ist eine Plattform für das grafische Entwickeln von kreativen Anwendungen, die erstmals 2007 veröffentlicht wurde und mittlerweile Millionen Menschen in über 150 Ländern erreicht. Scratch ist besonders für Neueinsteiger sehr einfach zugänglich und richtet sich schwerpunktmäßig an 8-16 jährige. Abgerundet wird es durch eine starke Online Community, in der Ideen ausgetauscht und Fragen beantwortet werden.

Entwickelt wird Scratch von einem der Lifelong Kindergarten Group am MIT Media Lab unter Leitung von Mitchel Resnick.

Die Fähigkeit zu Programmieren ist ein wichtiger Bestandteil in unserer Gesellschaft. Wenn Leute Scratch programmieren lernen, lernen sie wichtige Problemlösungsstrategien, wie man Projekte macht und Ideen kommuniziert.

Mitch Resnick – Direktor der Lifelong Kindergarten-Group am MIT Media Lab

Wie es funktioniert: Skripte aus Blöcken

Das Prinzip von Scratch ist einfach. Es lässt sich komplett aus einem Browser bedienen ohne dass eine Installation erforderlich ist.

Die Umgebung von Scratch im Browser

In Scratch werden kleine Programme als Skripte bezeichnet. Ein solches Skript wird aus Blöcken ähnlich einem Ablaufdiagramm zusammengesteckt. Die fertigen Blöcke stehen dabei für konkrete Befehle, zum Beispiel eine Figur eine gewisse Schrittweise nach Vorne zu bewegen oder einen Ton abszuspielen.

Durch das Aneinanderreihen mehrerer Blöcke entsteht ein Programm. Die vordefinierten Blöcke sind sortiert nach ihrer Funktionalität, zum Beispiel zum Bewegen von Figuren, zum Ändern des Aussehens einer Figur oder zum Abspielen von Klängen.

Es können verschiedene solcher Programme bzw. Ketten von Blöcken erstellt werden.

Ereignisse und Steuerung

Eine besondere Rolle spielen die Kategorien Ereignisse und Steuerung.

Ereignisse starten einen Programmablauf. Zum Beispiel ist der Programmstart ein Ereignis, genauso aber auch das Drücken einer speziellen Taste oder das Anklicken einer Figur.

In der Kategorie Steuerung finden sich Blöcke, die den Ablauf des Programms verändern. Zum Beispiel kann ein Programmteil mehrfach wiederholt werden. Oder es kann ein Programmblock nur im Falle einer gewissen Bedingung ausgeführt werden.

Weitere Blöcke erlauben das Überprüfen spezieller Bedingungen (z. B. ob sich zwei Figuren berühren), die Verwendung von Operatoren (z. B. das Addieren von zwei Zahlen) sowie die Verwendung von Variablen (z. B. für den Punktestand in einem Spiel) oder die Definition eigener Blöcke.

Figuren, Leinwand und Klänge

Im Vordergrund von Scratch stehen kreative, grafische Anwendungen, zum Beispiel Spiele oder kleine Animationen.

Hierzu legt man zunächst eine Leinwand fest, quasi das Hintergrundbild. Es können verschiedene Leinwände erstellt und zwischen diesen umgeschaltet werden, zum Beispiel ein Spielstart, dann das eigentliche Spiel und abschließend eine “Game Over”-Leinwand.

Auf dieser Leinwand sind Figuren. Zum Beispiel können dies die Spielfigur und Spielgegner sein, ebenso aber auch unbewegte Objekte wie Münzen, die die Spielfigur einsammeln kann. Figuren werden mit Skripten ausgestattet, die dann das Verhalten der jeweiligen Figur festlegen. Zum Beispiel kann ein Skript vier Befehlsketten für die Tasten Pfeil nach Oben, Unten, Links, Rechts besitzen, welches die Figur entsprechend bewegt. Ein anderes Skript könnte einen Spielgegner bewegen und bei der Berührung mit der Spielfigur zum Game Over führen.

Bearbeiten von Kostümen in Scratch

Scratch wird mit vielen fertigen Hintergründen und Figuren (inklusive Animationen, die als Kostüme bezeichnet werden) ausgeliefert. Es lassen sich mit einem einfachen, integrierten Grafikprogramm aber auch eigene Kreationen erstellen oder existierende Grafiken hochladen.

Gleiches gilt für Klänge. Auch hier stehen fertige Klänge zur Verfügung. Zudem können existierende Klänge hochgeladen werden und mit einem integrierten Bearbeitungsprogramm verändert werden (z. B. in der Geschwindigkeit).

Ein einfaches Beispiel

Schauen wir uns dies an einem einfachen Beispiel an: Wir haben als Spielfigur eine Maus, die zu einem Donut gelangen muss. Im Weg stehen rote Wände, die nicht berührt werden dürfen.

Die roten Wände haben wir einfach mit Rechtecken in die Bühne eingezeichnet. Maus und Donut sind jeweils Figuren. Nur die Figur Maus ist mit einem Skript ausgestattet.

Dies hat folgenden Ablauf (den man fast direkt aus den Blöcken ablesen kann):

  • Los geht es, wenn Start (die grüne Flagge geklickt wird)
  • Zunächst geht die Maus auf eine Startposition
  • Nun wird ein Programmteil wiederholt bis die Maus das Ziel, den Donut, berührt.
    • Wir drehen nun die Maus in Richtung des Mauszeigers und…
    • …gehen einen Schritt in diese Richtung. (Die Maus steuert also langsam auf den Mauszeiger zu).
    • Nun prüfen wir, ob eine Wand berührt wird, konkret indem wir eine Berührung mit roter Farbe prüfen.
    • Ist dies der Fall, zeigen wir eine Nachricht an (“Leider verloren”) und beenden das Programm
  • Wenn wir hier angelangen, haben wir die vorangehende Schleife verlassen. Konkret berührt nun also die Maus den Donut. Entsprechend haben wir gewonnen und dies wird als Nachricht angezeigt.

Konkret sieht dies dann wie folgt aus:

Damit sehen wir eine weitere, tolle Eigenschaft von Scratch. Man kann seine Anwendungen sehr einfach anderen zur Verfügung stellen, einen Link darauf an Freunde schicken oder sie in Webseiten einbinden. Und jeder, der Zugang zu einer Scratch Anwendung hat, kann sich diese auch “im Inneren” anschauen.

Das bringt uns noch abschließend zur Namensherkunft von Scratch, die sich vom “Scratchen” (eines DJs) ableitet. Obekte, Grafiken und Töne können sehr leicht über Projekte hinaus übertragen und neu kombiniert werden, so dass man also einfach einen “Remix” erstellen kann.

Abschließende Bemerkungen

Die Kunst und Stärke von Scratch liegt ganz klar darin, was vorhanden ist und was bewusst weggelassen wurde.

Mit den bereitgestellten Bausteinen lassen sich wundervolle Anwendungen realisieren. Im Internet sind vielfältige Beispiele verfügbar, zum Beispiel Adaptionen von Arcade-Klassikern wie Donkey Kong. Trotzdem bleiben die Bausteine überschaubar und man findet schnell einen umfassenden Zugang. Es entsteht nicht das Gefühl, von den Möglichkeiten erschlagen zu werden.

Es gibt allerdings Programmierkonzepte wie zum Beispiel Datenstrukturen und komplexere Algorithmen, die objektorientierte oder funktionale Programmierung, die sich nicht sinnvoll mit Scratch abbilden lassen. Das ist aber keinesfalls eine Schwäche von Scratch. Die Zugänglichkeit ist so hoch, da an den richtigen Stellen Dinge weggelassen wurden. Wer hier weitergehen will, ist entweder mit Snap! (ehemals BYOB) gut beraten – oder mit “echten” Programmiersprachen wie z. B. Python oder Java.

Unsere Einschätzung

Für welche Altersklassen ist es geeignet?
Am besten eignet es für Kinder, die bereits lesen können. Kinder sollten mindestens 6 Jahre alt sein, besser älter. Auch Erwachsene können mit Scratch Programmieren lernen und kreative Anwendungen gestalten. Allerdings wächst man irgendwann aus dem Funktionsumfang hinaus.

Was benötigt man und was kostet das ungefähr?
Das Angebot ist kostenfrei, man benötigt eine Internetverbindung und ein Zugangsgerät (Computer oder Laptop, Tablet). Es gibt auch eine Anwendung zum Herunterladen, die ohne Internetverbindung ablauffähig ist. Tendenziell ist die Verwendung eines echten Computers besser und angenehmer als die Nutzung eines Tablets.

Was lernt man?
Mit Scratch lernt man Grundzüge der Programmierung des Gestaltens kreativer Anwendungen (Spiele, Animationen).

Wie ist der Spaßfaktor?
Die Lernkurve ist sehr steil und die grafischen Ergebnisse (inklusive Ton, ggf. auch Kamera oder der Ansteuerung von Robotern) motivieren stark. Wir haben einen sehr hohen Spaßfaktor beoabchtet, wenn man die richtigen Anreize und Impulse setzt (damit man z. B. schnell zu eigenen Spielen gelangt).

Wofür empfehlen wir es?
Wir empfehlen es vor allem für Kinder ab Grundschulalter (und auch jung gebliebene Erwachsene), die einen Computer grundlegend bedienen können (Maus, Tastatur) als Einstieg in die Programmierung mit der man sehr lange Zeit viel Freude haben kann.

Veröffentlicht von Gero

Familienvater mit zwei Kinder und Hund, Dortmunder, Informatiker, Geschäftsführer eine IT-Dienstleistungsfirma (im Bereich Data & Analytics und Custom Made), leidenschaftlicher Skifahrer, interessiert an fast allem von Algebra bis Zappa.