Wikipedia · einfach zusammengefasst · Stand
Scratch (Programmiersprache)
Scratch ist eine erstmals 2007 veröffentlichte bildungsorientierte blockbasierte visuelle Programmiersprache für Kinder und Jugendliche inklusive ihrer …
Inhalt5 Abschnitte
Grundidee und Ziel
Scratch ist eine 2007 veröffentlichte, bildungsorientierte, blockbasierte visuelle Programmiersprache für Kinder und Jugendliche. Zum Angebot gehören eine Entwicklungsumgebung und eine eng damit verbundene internationale Online-Community. Entwickelt wurde Scratch unter Leitung von Mitchel Resnick durch die Lifelong Kindergarten Group am MIT Media Lab. Die aktuelle Hauptversion 3.0 erschien am 2. Januar 2019.
Scratch soll besonders Neueinsteiger mit den Grundkonzepten der Programmierung vertraut machen. Das Motto „imagine, program, share“ („Ausdenken, Entwickeln, Teilen“) beschreibt den Ablauf: Lernende entwickeln kreativ und erkundend eigene Spiele oder Multimedia-Anwendungen und teilen sie anschließend mit anderen. Die Nutzung ist kostenlos und werbefrei. Veröffentlichte Projekte können abgespielt, diskutiert, heruntergeladen und weiterentwickelt werden.
Die Sprache verbindet mehrere Programmierweisen: Sie ist imperativ, weil Skripte aus einer geordneten Folge von Befehlen bestehen, und ereignisorientiert, weil ein Skript durch ein Ereignis wie einen Tastendruck oder Mausklick startet. Sie unterstützt parallele Abläufe, sodass mehrere Skripte gleichzeitig laufen können. Außerdem besitzt sie eine einfache Form der Objektorientierung: Spielfiguren kapseln ihre eigenen Daten und Skripte und können Nachrichten austauschen. Klassen, Vererbung und Prototyping gibt es jedoch nicht. Variablen sind dynamisch typisiert, ihr Datentyp wird also nicht vorher festgelegt und kann sich während der Ausführung ändern.
Projekte, Figuren und Daten
Ein Scratch-Projekt enthält Programme sowie Multimediaelemente wie Bilder und Klänge. In Scratch 1.4 wurde es als einzelne Datei mit allen Elementen und Startwerten gespeichert; ab Scratch 2.0 kann auch vollständig online gearbeitet werden.
Zentrale Bestandteile sind die Bühne und beliebig viele Spielfiguren, auch Objekte oder Sprites genannt. Spielfiguren können sich bewegen und drehen, ihre Größe verändern, erscheinen oder verschwinden, sprechen und denken sowie Malspuren oder Stempel hinterlassen. Figuren und Bühne können unterschiedliche Kostüme, also Grafiken, verwenden und Geräusche, Schlagzeugklänge oder Noten abspielen.
Zu den Werten einer Spielfigur gehören unter anderem X- und Y-Position, Ausrichtung, Größe, Lautstärke, Tempo und Stifteinstellungen. Zusätzlich lassen sich lokale Variablen und Listen für einzelne Figuren sowie globale Variablen und Listen für das gesamte Projekt anlegen. Eine Liste speichert mehrere Elemente und wird über eigene Blöcke bearbeitet. Die gespeicherten Werte und Variablenbelegungen bestimmen den Startzustand eines Projekts.
Im Abspielmodus ist nur die Bühne sichtbar. Im Programmiermodus kann das Projekt gleichzeitig ausgeführt und verändert werden. Die Oberfläche enthält Bühne, Spielfigurenauswahl, Bausteinkiste und einen Bereich für Programme, Kostüme und Klänge der ausgewählten Figur oder Bühne. Die grüne Flagge startet alle dafür vorgesehenen Skripte, das rote Stoppschild beendet sie.
Programmieren mit Blöcken
Programme entstehen überwiegend per Drag-and-drop: Befehlsblöcke werden aus der Bausteinkiste in das Programmierfeld gezogen und zu Skripten verbunden. Die Form der Blöcke und ihrer Eingabefelder zeigt, welche Elemente zusammenpassen. Unpassende Teile lassen sich nicht einklinken, und Auswahllisten bieten nur vorhandene Elemente an. Dadurch entfallen viele Syntaxfehler und ein Großteil der sonst nötigen Tipparbeit. Eigene Blöcke können ebenfalls erstellt werden.
Die Blöcke sind nach Farben und Aufgaben geordnet. Dazu gehören Bewegung (Blau), Aussehen (Lila), Klang (Violett), Ereignisse (Dunkelgelb), Steuerung (Braun), Fühlen (Hellblau), Operatoren (Hellgrün), Variablen (Orange/Rot), Meine Blöcke (Pink) und Malstift (Grün). Erweiterungen ermöglichen unter anderem Musik, Text-zu-Sprache, Videoerfassung, Übersetzung sowie die Steuerung externer Geräte wie PicoBoard oder Lego WeDo.
Ein Scratch-Skript beginnt mit einem Kopfbaustein, der das auslösende Ereignis festlegt, etwa den Klick auf die Startflagge, einen Tastendruck, einen Klick auf eine Figur oder den Empfang einer Nachricht. Mit „sende X an alle“ können andere Skripte gestartet werden, deren Kopfbaustein auf diese Nachricht reagiert. So werden Ereignissteuerung und gleichzeitige Abläufe unmittelbar erfahrbar. Kontrollstrukturen umfassen Sequenzen, bedingte Anweisungen und Verzweigungen sowie drei verschiedene Schleifenformen.
Programmierzeit und Laufzeit gehen fließend ineinander über: Ein laufendes Projekt kann verändert werden, einzelne Skripte können durch Anklicken getestet werden. Laufende Skripte erhalten einen weißen Rand, Ausführungsfehler wie eine Division durch 0 einen roten. Im Einzelschrittmodus wird der jeweils ausgeführte Block hellgelb markiert. Programme, Grafiken und Töne können auf andere Figuren gezogen werden; auch ganze Figuren lassen sich kopieren. So kann beispielsweise aus einer einmal erstellten und mehrfach kopierten Figur eine komplexe Simulation entstehen.
Technik, Plattformen und Gemeinschaft
Die technische Grundlage änderte sich mehrfach. Scratch 1.0 bis 1.4, erschienen von 2007 bis 2009, basierte auf Squeak; Projekte liefen offline in Squeak und online zunächst mit Java, seit 2011 wahlweise auch mit Flash. Scratch 2.0 erschien am 9. Mai 2013, basierte vollständig auf Flash und lief direkt auf der Website. Eine Offline-Version erforderte Adobe AIR. Scratch 3.0 ist seit Januar 2019 verfügbar, basiert auf HTML5 und JavaScript und nutzt Blockly. Es funktioniert im Standardbrowser auch auf Tablets; für Smartphones ist der Editor wegen des kleinen Bildschirms nicht sinnvoll einsetzbar. Die Scratch-App dient als Offline-Editor. Die Scratch-Ressourcen sind auf GitHub frei verfügbar, die Lizenz ist die 3-Klausel-BSD-Lizenz.
Scratch ist leicht übersetzbar. Community-Mitglieder übertragen Entwicklungsumgebung, Website und Befehlsblöcke in zahlreiche Sprachen, darunter Deutsch sowie Schriften, die nicht auf lateinischen Buchstaben beruhen oder von rechts nach links geschrieben werden. Bestehende Projekte lassen sich per Knopfdruck auf eine andere Sprache umstellen.
Von März 2007 bis Ende 2012 wurden mehr als 1.300.000 Onlinekonten angelegt; der Altersschwerpunkt lag zwischen 8 und 16 Jahren. Über 400.000 Nutzer veröffentlichten in diesem Zeitraum mehr als 3.000.000 Projekte. Mittlerweile nennt der Artikel mehr als 89.000.000 registrierte Accounts und mehr als 102.000.000 veröffentlichte Projekte. Die tatsächliche Nutzerzahl dürfte höher sein, weil Scratch auch ohne Konto und ohne Webeinsatz verwendet werden kann.
Scratch wird weltweit an Schulen und Hochschulen sowie in Familien, Clubs und anderen Freizeitgruppen eingesetzt. Die Gemeinschaft wird unter anderem durch Scratch Week, Konferenzen, Unterrichtsmaterialien und das Scratch-Wiki unterstützt. ScratchEd war eine Online-Community für Lehrkräfte und andere Ausbilder; sie wurde 2019 archiviert, ihre Inhalte bleiben jedoch öffentlich zugänglich.
Ein wichtiger Bestandteil ist das Remixing: Nutzer dürfen vorhandene Projekte, Figuren, Grafiken, Klänge und Skripte untersuchen, verändern, neu kombinieren und wieder veröffentlichen. Figuren lassen sich zusammen mit Kostümen, Klängen und Programmen exportieren und importieren. Die Herkunft eines Remix bleibt auf der Website nachvollziehbar; daraus können Remix-Ketten und -Bäume mit Hunderten Projekten entstehen.
Weiterentwicklungen und Lernergebnisse
Neben der offiziellen Weiterentwicklung gibt es zahlreiche Abwandlungen und verwandte Systeme. ScratchJr wurde am 20. Juli 2014 für Kinder ab 5 Jahren veröffentlicht und ermöglicht das Programmieren interaktiver Geschichten und Spiele auf Android, Apple iOS und Chromebook. Snap!, früher bis Version 3.1.1 BYOB („Build Your Own Blocks“), richtet sich an fortgeschrittene Schüler und die Erwachsenenbildung und ist zusätzlich von Scheme beziehungsweise Lisp beeinflusst. Scratch for Arduino stellt eine Scratch-ähnliche Programmierumgebung für Arduino-Mikrocontroller bereit. mBlock dient zur grafischen Programmierung von Robotern wie mBot und mBot Ranger.
Microsoft MakeCode erzeugt blockbasierte Browser-Entwicklungsumgebungen für Bildungscomputer wie BBC micro:bit und Calliope mini; neben Blöcken kann dort auch JavaScript verwendet werden. NEPO nutzt wie Scratch 3.0 die frei verfügbare Blockly-Bibliothek. Cubi wurde besonders für Grundschulkinder und die Arbeit im Klassenverband entwickelt. TurboWarp kompiliert Scratch-Projekte in JavaScript, damit sie schneller ausgeführt werden; forkphorus stammt vom selben Entwickler und verfolgt denselben Zweck. Panther ergänzt Scratch um zwei Kategorien und kann Projekte in ausführbare EXE-Dateien umwandeln. „Programmieren mit der Maus“ ist eine vereinfachte, vom WDR entwickelte Variante mit Bildern der Sendung mit der Maus.
Die Studienlage zu den pädagogischen Wirkungen ist überwiegend positiv; häufig wurden bessere Lernerfolge bei Computerkonzepten festgestellt. Manche Schüler haben jedoch weiterhin Schwierigkeiten mit Variablen, gleichzeitigen Abläufen und der Initialisierung, also dem Festlegen eines korrekten Anfangszustands.
Eine Studie mit 56 Schülern aus zwei 7. Gymnasialklassen verglich Scratch mit Karel. Die Scratch-Gruppe zeigte eine höhere intrinsische Motivation und bewertete Scratch besser; der Bewertungsunterschied war „fast“ statistisch signifikant. In der Abschlussprüfung gab es keinen nennenswerten Leistungsunterschied. Karel wurde allerdings als näher am „realen“ Programmieren wahrgenommen, und die Karel-Gruppe erkannte häufiger einen Sinn in der Bearbeitung der Aufgaben.
Lernvideos zu Scratch (Programmiersprache)
13:24
Spiel programmieren mit SCRATCH - Tutorial auf Deutsch
Programmieren lernen · 147.667 Aufrufe
12:55
SCRATCH EINFÜHRUNG – Tutorial für den perfekten Einstieg auf Deutsch | Silicon Valley Kids
Programmieren - Sivakids · 109.078 Aufrufe
5:25
Einsteig in Scratch - Einstieg in die Informatik
frankjuchim · 2.643 Aufrufe
3:52
Scratch Grundlagen 😺 #1 – Was ist Scratch? Einfach erklärt für Kinder & Anfänger
Informatik mit Leo – Programmieren leicht erklärt · 769 Aufrufe