Scratch (Programmiersprache)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Scratch
Logo Scratch Katze
Basisdaten
Paradigmen: objektorientiert

ereignisorientiert

Erscheinungsjahr: 2007
Designer: Mitchel Resnick
Entwickler: Mitchel Resnick, John Maloney, Natalie Rusk, Evelyn Eastmond, Tammy Stern, Amon Millner, Jay Silver, and Brian Silverman
Aktuelle Version: 2.0  (9. Mai 2013)
Typisierung: dynamisch
Wichtige Implementierungen: Scratch 1.x in Squeak

Scratch 2.x in Flash

Beeinflusst von: Logo, Smalltalk-80, Squeak, E-Toys, HyperCard, AgentSheets, StarLogo, Tweak, Snap! / BYOB (BYOB-Einfluss in beide Richtungen)
Beeinflusste: Snap! / BYOB, App Inventor
Betriebssystem: Windows, Mac OS X, Linux
scratch.mit.edu

Scratch ist eine erstmals 2007 veröffentlichte erziehungsorientierte visuelle Programmiersprache für Kinder inklusive ihrer Entwicklungsumgebung und der eng verknüpften Online-Community-Plattform.

Inhaltsverzeichnis

Zielsetzung[Bearbeiten]

Ihr Ziel ist es, Neueinsteiger − besonders Kinder und Jugendliche − mit den Grundkonzepten der Computerprogrammierung vertraut zu machen. Unter dem Motto “imagine, program, share” („Ausdenken, Entwickeln, Teilen“) wird die kreative und explorative Erstellung eigener Spiele und Multimedia-Anwendungen, verbunden mit dem gegenseitigen Austausch darüber als Motivation genutzt.[1] Kostenlos und werbefrei können die Ergebnisse in einer internationalen Online-Community mit dem Scratch-Player abgespielt, diskutiert und weiterentwickelt werden. Außerdem gibt es einige Beispiele, die Anregungen für Einsteiger schaffen und das Prinzip des Programmierens näher bringen.

Namensherkunft[Bearbeiten]

Der Name Scratch leitet sich von der DJ-Scratchtechnik ab. Die Gemeinsamkeit zum musikalischen „Scratchen“ ist die leichte Wiederverwendbarkeit von Versatzstücken: In Scratch können alle interaktiven Objekte, Grafiken und Töne leicht von einem in ein anderes Scratch-Projekt übertragen und dort neu kombiniert werden (siehe: Remixingkultur). Dadurch erhalten Anfänger sehr schnell Erfolgserlebnisse, die motivieren, sich vertieft mit der Materie auseinanderzusetzen.

Entwicklung und Implementierung[Bearbeiten]

Mitchel Resnick

Das erstmals 2007 veröffentliche Scratch wird unter der Leitung des US-amerikanischen Professors für Lernforschung Mitchel Resnick von einem kleinen Forschungsteam, der Lifelong Kindergarten Group, am MIT Media Lab entwickelt und größtenteils von der National Science Foundation und freiwilligen Spenden finanziert.[2]

Die erste Implementierung der Scratch-Entwicklungsumgebung basierte auf Squeak (Scratch 1.0 im Jahr 2007[3] bis Scratch 1.4 im Jahr 2009[4]), der Scratch-Web-Player zunächst auf Java[5], seit 2011 wahlweise auch auf Flash[6]. Die aktuelle Version Scratch 2.0 erschien am 9. Mai 2013 und basiert komplett auf Flash.[7]

Entwicklungsumgebung, Internetplattform und Scratch-Player[Bearbeiten]

Scratch bis Version 1.4[Bearbeiten]

Die Entwicklungsumgebung kann kostenlos aus dem Internet heruntergeladen werden. Da sie mit dem plattformunabhängigen Smalltalk-Entwicklungssystem Squeak erstellt ist, gibt es Versionen für Windows, Mac OS X und potentiell für weitere Betriebssysteme. Die mit Scratch erstellten Programme können direkt aus der Entwicklungsumgebung in einen persönlichen Benutzerbereich der Scratch-Homepage hochgeladen werden. Dort können die Programme von anderen Mitgliedern der Scratch-Community genutzt, kommentiert und zum Lernen und zur Weiterentwicklung heruntergeladen werden. Zur Ausführung direkt im Internetbrowser dient ein Java-Interpreter, der sogenannte Scratch-Player.

Scratch ab Version 2.0[Bearbeiten]

Die Entwicklungsumgebung ist auf der Scratch-Homepage direkt lauffähig und wie der neue Scratch-Player komplett in Flash erstellt. Download und Installation sind daher nicht mehr erforderlich. Eine Offline-Version ist inzwischen verfügbar, befindet sich aber noch in der Beta-Phase.

Scratch auf iPhone/iPad/iPod[Bearbeiten]

Programmieren mit der Scratch Modifikation Snap!/BYOB4.0 auf dem Apple_iPad von Apple funktioniert ohne Java und Flash.

Da Scratch-Web-Player auf Java oder Flash basieren, welche auf den mobilen Geräten von Apple (iPhone/iPad/iPod) nicht unterstützt werden, lassen sich Scratch-Projekte und die Scratch 2.0 Entwicklungsumgebung dort nicht ausführen. Eine eigenständige Scratch-Player-App für diese Geräte war bereits im App-Store gelistet, so dass man dort alle Scratch-Projekte ausführen konnte, wurde jedoch von Apple nach einigen Monaten wieder verbannt.[8]. Eine Alternative wird die Scratch-Modifikation BYOB 4.0/Snap! darstellen, deren Web-Player und Entwicklungsumgebung auf HTML5-Canvas und Javascript basieren, die aber bisher erst im Betastadium und noch nicht voll kompatibel zu Scratch vorliegt.[9]

Verbreitung und Nutzung[Bearbeiten]

Seit 2007 breitete sich die Scratch-Idee u.A. durch den Netzwerkeffekt rasch aus. So entstand eine weltweit wachsende Gemeinschaft von Programmieranfängern, Schülern, Studenten, Pädagogen und Hobbyisten, die sich gegenseitig motivieren und unterstützen. Daraus resultierten lokale Gruppen, Ereignisse, Kurse, Übersetzungen, Beispiele, Unterrichtsmaterialien und vieles mehr, um Programmieranfängern zu helfen, ihre Kreativität und Kenntnisse zu entwickeln. Befördert wurde dies durch die intuitive Bedienung und leichte Übersetzbarkeit, sowohl der Scratch-Entwicklungsumgebung als auch der Scratch-Website.[10] Hinzu kommt eine erfolgreiche Kommunikation und Medienarbeit des MIT-Scratch-Teams (u.A. dem weltweiten Scratch Day, der Ausbilder-Plattform ScratchEd, dem Scratch Wiki, sowie vielen wissenschaftlichen Publikationen, Interviews und Beiträgen in verbreiteten US-Medien).[11]

Internationalität und Übersetzbarkeit von Scratch[Bearbeiten]

Die Internationalität dieser Benutzergemeinde wird durch die leicht zugängliche Mehrsprachenfähigkeit aller Scratch-Plattformen gefördert, mit der die Online-Community die Entwicklungsumgebung, die Webplattform und auch die Programmierbefehls-Bausteine selbst in alle Sprachen übersetzt, womit Scratch u.A. auch komplett in deutsch zur Verfügung steht. Auch in Ländern mit nicht auf lateinischen Buchstaben basierende und von rechts nach links zu schreibende Sprachen kommt Scratch zum Einsatz, denn bestehende Scratch-Projekte lassen sich per Knopfdruck auch in solche Sprachen umschalten. Bei der Übersetzung wird mit lokaler und/oder serverbasierter Pootle-Technologie gearbeitet.

Scratch Anwender-Zahlen[Bearbeiten]

Von den Anfängen im März 2007 bis Ende 2012 legten >1.300.000 Anwender - mit einem Altersschwerpunkt zwischen 8 und 16 Jahren - ein Scratch-Onlinekonto an, von denen >400.000 in dieser Zeit insgesamt >3.000.000 selbstentwickelte Scratch-Projekte ins Netz stellten und >1.380.000 Posts schrieben. (in 13 englischsprachigen und 17 internationalen Scratch-Community-Foren)[12]. Da mit Scratch auch ohne Benutzerkonto gearbeitet werden kann und die aktuelle Scratch-Entwicklungsumgebung in vielen Unterrichtsformen ohne Webeinsatz genutzt wird, beträgt die Anzahl der Scratch-Anwender wahrscheinlich ein Vielfaches der angemeldeten Benutzer.

Scratch an Erziehungseinrichtungen[Bearbeiten]

Scratcher an eTafel

Scratch wird weltweit in verschiedensten Schulformen und Unterrichtsveranstaltungen eingesetzt. Schulen in Deutschland, Schweiz, Österreich und Luxemburg nutzen Scratch zunehmend. Auch an Universitäten werden Scratch und/oder das auf Scratch basierende Snap! / BYOB zur Einführung in die Programmierung verwendet, etwa an der Universität Berkeley für Nicht-Informatiker[13] oder an der Universität Hildesheim für Studierende des Lehramts[14].

Scratch als Hobby[Bearbeiten]

Auch außerhalb von Schulen kommt Scratch in Hobby und Familie zum Einsatz. Viele Jugendliche entdecken Scratch selbstständig auf der Suche nach Möglichkeiten, wie sie selber leicht ein Computerspiel entwickeln und es anderen präsentieren können.[15] Speziell Eltern mit IT-nahen Berufen nutzen Scratch häufig, um ihren Kindern schon in jungen Jahren einen motivierenden Einblick in die IT-Welt vermitteln zu können. Zunehmend entwickeln sich auch im deutschsprachigen Raum Clubs oder Vereine für MINT-begeisterte Jugendliche, oder auch zur Förderung von MINT-Erziehungs-benachteiligten Kindern aus bildungsfernen Haushalten (z.B. Computer-Clubhouse-Bewegung in den USA), die ebenfalls Scratch einsetzen. Neben solchen physischen Hobbygemeinschaften haben sich auch viele virtuelle Onlinegruppen von Hobbyisten gebildet, die gemeinsam Projekte realisieren und dazu regelmäßig online zusammenkommen, um sich über ihr Hobby auszutauschen.

Scratch Day[Bearbeiten]

Der seit 2009 jährlich stattfindende Scratch-Day trägt stark zur Verbreitung der Scratch-Idee bei (zuletzt am 18. Mai 2013.[16]). Der vom MIT-Scratch-Team ausgerufene erste weltweite „Scratch Day“ am 16. Mai 2009 dokumentiert dies: Auf der dazugehörigen Webseite trugen sich innerhalb von wenigen Wochen weit über 100 regionale Organisationen, wie Schulen oder Computerclubs, ein, die eines der lokalen Scratch-Day-Ereignisse organisierten. Zum ersten deutschen Scratch Day 2009 kamen in Bochum Scratch-Experten aus ganz Deutschland zusammen, um Scratch für Kinder, Eltern, Lehrer und Wissenschaftler unter verschiedensten Aspekten vorzustellen.[17]

Scratch Connecting Worlds[Bearbeiten]

Scratch Connecting Worlds 2013 in Barcelona ist die erste europäische Scratch-Konferenz. Sie findet von 25. bis 27. Juli in, von der Citilab Barcelona zur Verfügung gestellten, Räumlichkeiten statt. Erzieher, Forscher, Entwickler und andere Mitglieder der weltweiten Scratch Gemeinschaft können die Gelegenheit nutzen um die kreativen Möglichkeiten von Scratch zu feiern und zu teilen. In den Jahren 2008, 2010 und 2012 konnten Interessierte an der Scratch Konferenz im MIT Media Lab in Cambridge, Massachusetts, teilnehmen. Mitglieder der europäischen Scratcher Gemeinschaft fanden, dass es auch für Scratcher, die nicht die Möglichkeit haben, in die USA zu reisen, eine Gelegenheit zum Treffen von anderen Scratchern geben sollte.[18]

ScratchEd[Bearbeiten]

ScratchEd ist eine zusätzliche Online-Community für Lehrer und andere Ausbilder, die mit Scratch arbeiten. Dort haben die Mitglieder einige hundert Materialien, Quellen und Tipps für die Bildungsarbeit mit Scratch eingestellt. Außerdem können sich die Anwender über die Internetseite austauschen und miteinander in Kontakt treten. Die Hauptsprache ist Englisch aber auch in vielen anderen Sprachen, u.A. Deutsch wurden bereits für den Unterricht nützliche Materialien hinterlegt. Das Angebot umfasst Anfang 2013 u.A. 193 "Stories" (d.h. Berichte über Veranstaltungen) und einige hundert "Ressourcen", deren Anwendungsbereich vom Kindergarten bis zur Hochschule und über alle Fachbereiche geht.[19]

Scratch Wiki[Bearbeiten]

Das Scratch Wiki ist ein freies, gemeinschaftlich geschriebenes Wiki auf MediaWiki-Basis, das Informationen über die Programmiersprache Scratch, deren Websites, Geschichte und begleitende Phänomene enthält. Das Wiki wird vom Scratch Team unterstützt, aber ist im Wesentlichen von Scratchern geschrieben. Das Scratch Wiki ist eine beliebte Quelle für Informationen über Skripte und Anleitungen die ständig weiter wächst, weil es Scratcher als ihre erste Informationsquelle nutzen. Das erste internationale "Schwester-Projekt" ist das ebenfalls vom Scratch-Team unterstützte DACH-Scratch-Wiki in deutscher Sprache. Das englischsprachige Scratch-Wiki wurde am 6. Dezember 2008 gegründet und enthält >700 Artikel, das deutschsprachige Scratch Wiki wurde am 8. Februar 2012 gegründet und enthält >300 Artikel. [20]

Prinzipien von Sprachumfang und Bedienung[Bearbeiten]

Bei Sprachumfang und Bedienung wurde hohe Priorität auf den intuitiven Zugang und auf die Vermeidung von hoher Komplexität oder Abstraktion gelegt. Mächtigen Funktionen wie Multimediaelementen und Multitasking stehen starke Einschränkungen in Peripherienutzung und Sprachumfang gegenüber. Alle Elemente, die den intuitiven Einstieg behindern könnten, wurden in empirischen Studien identifiziert und eliminiert. Alles, was den Einsteiger motiviert, sein Verständnis erleichtert und zur explorativen Entwicklung ermutigt, wurde betont. Spielerisches Lernen steht im Vordergrund. So können bereits Grundschulkinder erste Anwendungen erstellen und Jugendliche schnell hochmotivierende Ergebnisse erhalten. Aber selbst erfahrene erwachsene Programmierer haben sich der Scratch-Community angeschlossen. Sie reagieren – trotz der starken Einschränkungen – positiv darauf, wie schnell und intuitiv Ergebnisse zu erreichen sind und betrachten die Beschränkung als Herausforderung ihrer Programmierkünste.

Eigenschaften[Bearbeiten]

Scratch unterstützt folgenden Programmierparadigmen, bzw. Eigenschaften, die einem solchen ähnlich sind:

  • visuell – Alle Elemente aus denen ein Scratch Projekt im Wesentlichen per Drag & Drop zusammengebaut wird, werden durch ihre intuitiv verständliche grafische Darstellungen repräsentiert, wie z.B. Programmierbefehle durch Bausteinebilder, Sounds durch ein Aufnahme/Abspiel-Gerätebild, Objekte durch ihr Kostüm-Bild etc.
  • erziehungsorientiert – Scratch entstand nicht „am Reißbrett“ , sondern es wurde in jahrelangen Untersuchungen erforscht, welche Konzepte von Programmieranfängern intuitiv aufgenommen werden können. Alles weniger eingängige wird so lange vermieden, bis auch hierfür eine eingängige Herangehensweise gefunden ist.
  • imperativ – Ein einzelnes Programm-Skript aus Scratch-Programmier-Bausteinen ist imperativ. Es "besteht aus einer Folge von Befehlen, die vorgeben, in welcher Reihenfolge was vom Computer getan werden soll". Der objektorientierte Aspekt von Scratch tritt erst im Zusammenspiel mehrerer Scripte und/oder mehrerer Objekte (Spielfiguren) auf.
  • ereignisorientiert – Jedes Scratch-Skript, aus denen die Programmierung eines Scratch-Projektes besteht, startet, sobald das in seinem Kopf-Baustein definierte Ereignis eintritt. Zusätzlich kann mit einem "Warte bis"-Baustein der Programmfluss unterbrochen werden bis ein Ereignis eintritt.
  • parallelitätsunterstützend – Eine erstaunliche Eigenschaft von Scratch ist, dass das eigentlich komplexe Programmierparadigma Parallele Programmierung quasi nebenbei eingeführt wird. Im Gegensatz zu traditionellen erziehungsorientierten Programmiersprachen, wird dieses in Scratch auch von Anfängern intuitiv sofort genutzt, so dass sie sich später ggf. wundern, dass andere "Profi-Programmiersprachen" zunächst nur sequentiell arbeiten.
  • dynamische Typisierung – Der Datentyp von Variablen wird in Scratch nicht vereinbart und kann sich während der Ausführung ändern. Allerdings stehen oberflächlich nur wenige Typen zur Verfügung, nämlich Zahlen und Zeichenketten, wobei nicht näher zwischen INTEGER, DECIMAL, CHAR oder STRING unterschieden wird. Neben Programmier-Bausteinen für diese Variablen gibt es in Scratch die Liste, die jedoch über separate Bausteine angesprochen wird. Die Länge von Listen wird nicht vereinbart und ihre Elemente sind wiederum Zahlen, Wahrheitswerte oder Zeichenketten.

Programmier-Erfahrung mit Scratch[Bearbeiten]

Scratch 2.0 Entwicklungsumgebung Beispiel
Scratch 1.4 Entwicklungsumgebung Beispiel

Kein Tippen - Keine Syntaxfehler[Bearbeiten]

Scratch ist so konzipiert, dass bereits junge Kinder und Erwachsene ohne Computerkenntnisse mit Scratch motivierende Programmiererfahrungen machen können. Da es auf einer nahezu rein grafisch gehaltenen Oberfläche basiert, werden potentielle Frustfaktoren, wie viel Tipparbeit, komplizierte Sprachsyntax und diesbezügliche Fehler, ausgeschlossen.

Intuitives Lernen[Bearbeiten]

Die Erstellung von Scratch-Projekten soll sich beim Zusehen und Ausprobieren leichter erschließen lassen, als durch eine schriftliche Anleitung, da neben Textmetaphern (wie „Bühne“, „Spielfigur“, „Kostüm“, „Baustein“) viele intuitiv verständliche Form- und Farb-Ordnungen verwendet werden, die von Anfängern einfach benutzt werden können, ohne dass darüber bewusst nachgedacht werden muss. Da die Funktion vieler Elemente intuitiv klar wird, spielen ihre genauen Bezeichnungen beim Verständnis keine wesentliche Rolle, zumal diese Bezeichnungen – durch die beliebig austauschbaren Sprachdateien – willkürlich sind.

Das Scratch Projekt[Bearbeiten]

Die Scratch-Entwicklungsumgebung bearbeitet immer jeweils ein Scratch-Projekt, das aus mehreren Multimedia-Elementen (Bilddateien, Klangdateien) und Programmen besteht. Ein Scratch-Projekt wird als eine einzige Datei abgespeichert oder eingelesen, die alle Multimedia-Elemente, Programme und Startwerte enthält (in Scratch 1.4). Außerdem kann das Projekt per Klick auf der Scratch-Homepage veröffentlicht werden (mitteilen/"to share") oder von dort in die Entwicklungsumgebung geholt werden (Ab Scratch 2.0 ist keine lokale Installation mehr notwendig, auch die Entwicklungsumgebung ist online).

"Spielfiguren" und "Bühne"[Bearbeiten]

In einem Scratch-Projekt "agieren" beliebig viele "Spielfiguren" (Objekte/Sprites) auf einer "Bühne" (Hintergrund/Stage). Die Spielfiguren haben Ähnlichkeit mit der "Schildkröte" in der Programmierlernsprache Logo, jedoch wesentlich mehr Fähigkeiten und Eigenschaften. Spielfiguren und Bühne können wechselnde "Kostüme" (Grafiken) "anziehen" und Geräusche, Schlagzeugklänge oder Noten abspielen. Die Spielfiguren können sich auf der Bühne bewegen, drehen, ihre Größe ändern, sich – beeinflusst von verschiedenen grafischen Effekten – zeigen oder verstecken, Malspuren und Stempel-Abdrücke hinterlassen, sprechen und denken (Sprech-/Denkblasen).

Werte und Variablen[Bearbeiten]

Die Spielfiguren haben Werte (X, Y, Ausrichtung, Größe, Lautstärke, Tempo, Stifteinstellungen...) und zusätzlich erstellbare lokale Variablen und Listen, die bei Bedarf auf der Bühne dargestellt werden können. Neben diesen lokalen können auch globale Variablen und Listen angelegt werden, die in allen der Spielfiguren und der Bühne gelten. Die Werte und Variablenbelegungen im Zeitpunkt des Abspeichern oder Veröffentlichen eines Programms sind Teil desselben und definieren den Startzustand.

Entwicklungsumgebung & Player - Programmier- & Abspielmodus[Bearbeiten]

Im "Abspielmodus" der Entwicklungsumgebung und im Internet-Player sieht man vom fertigen Scratch-Projekt nur noch die Bühne. Im "Programmiermodus" der Entwicklungsumgebung kann das Projekt ebenfalls uneingeschränkt "abgespielt" werden, jedoch kann dabei jederzeit ändernd eingegriffen werden und die Bühne belegt nur einen Teil des Scratch-Fensters, das dann in vier Bereiche unterteilt ist:

Die "Bühne" (rechts oben), die "Spielfiguren-Auswahl" (rechts unten) und die in acht farbige "Fächer" eingeteilte "Bausteinkiste" (links), sind drei konstante Bereiche, während sich der vierte "Programme/Kostüme/Klänge"-Bereich, anhand der "Spielfiguren-Auswahl" ändert. Dieser mittlere Bereich zeigt stets die Programme, Kostüme, Klänge und Werte der ausgewählten Spielfigur, oder der ebenfalls auswählbaren Bühne. Im "Programme/Kostüme/Klänge"-Bereich kann mittels Laschen zwischen den Elementen der gewählten Spielfigur, bzw. der Bühne, geblättert werde.

Skripte aus Bausteinen (Blöcken)[Bearbeiten]

In die Lasche "Programme" werden die Programmier-Bausteine der Farbe des aktuell gewählten Baustein-Faches gezogen und dort zu Programmen zusammengebaut, die dann frei nebeneinander auf der Fläche liegen. Bausteine die nicht gebraucht werden, können ohne Funktion liegenbleiben, oder durch Herausziehen weggeräumt werden.

Viele Bausteine haben Bedienelemente, bzw. Öffnungen, in die andere Bausteine, Listenauswahlen, Zahlen, Buchstaben oder Farben (mit Bildschirmpipette auswählbar) eingesetzt werden. Die Form dieser Bedienelemente zeigt ihre Verwendung an, bzw. deutet darauf hin, welche Bausteine zusammen passen. Nur was passt, lässt sich "einklinken", nur existierende Elemente können in den Listen gewählt werden. Dadurch werden viele Fehler automatisch vermieden. Die Farben der Bausteine entsprechen den "Farb-Fächern" der Bausteinkiste, die ihren Einsatzbereich symbolisieren: Diese Bausteine sind wichtig für das Programm und die Tiere.

Farb-Kategorien der Scratch-Blöcke [21][Bearbeiten]

Bereich Farbe Programmier-Bausteine (Beispiele)
Bewegung Blau gehe, drehe , zeige Richtung, gehe zu, gleite in sekunden zu, setze X/Y ...
Aussehen Violett ziehe Kostüm an, sage " ", denke " ", ändere Effekt, ändere Größe...
Klang, Pink spiele Klang,spiele Schlagzeug, spiele Pause, spiele Note, setze Instrument, setze Lautstärke, setze Tempo...
Malstift Dunkelgrün wische weg, senke/hebe Stift, setze Stiftfarbe, setze Farbstärke, setze Stiftdicke, hinterlasse Abdruck
Steuerung Dunkelgelb wenn Start, wenn Taste, wenn Objekt geklickt, warte, wiederhole, sende, wenn ich empfange, wiederhole falls " ", falls " " sonst, warte bis, wiederhole bis, stoppe Programm, stoppe alles
Fühlen Türkis Maus X, Maus Y, Maustaste gedrückt, wird " " berührt", wird Farbe berührt, Stoppuhr, Entfernung von, Wert von Objekt, Lautstärke, Wert von Sensor....
Operatoren Hellgrün + , -, *, / , Zufallszahl von bis, <, =, >, und , oder , nicht , mod, gerundet, Funktion von....
Variablen Orange / Rot setze auf, ändere um, zeige, verstecke, füge zu hinzu....

Weitere Bedienelemente: Knöpfe & Menüs[Bearbeiten]

Neben den oben beschrieben Fensterbereichen der Scratch-Entwicklungsumgebung, gibt es noch einige Knöpfe, Menüs und Kontextmenüs (rechte Maustaste) und damit verbundene Auswahlboxen und Editoren zum Laden, Speichern, Kopieren, Erstellen und Beeinflussen von Spielfiguren, Medien und Projekten. Die wichtigsten sind die grüne Startflagge und das rote Stoppschild, mit denen alle Programme eines Projektes gestartet und gestoppt werden.

Kopfbausteine, Multitasking und Ereignissteuerung[Bearbeiten]

Programme beginnen immer mit einem der vier Kopfbausteine aus dem gelben Fach "Steuerung" der angibt, durch welches Ereignis sie gestartet werden (1. Klick die Start-Flagge, 2. Mausklick auf ihre Spielfigur, 3. Druck einer bestimmten Taste oder 4. Empfang einer bestimmten Nachricht). Indem ein Programme eine "Nachricht an alle" sendet, kann es andere Programme starten, die auf diese bestimmte Nachricht "warten". Multitasking und Ereignissteuerung sind so selbstverständliche Konzepte, die vom Programmier-Anfänger nebenbei erfasst werden.

Laufzeit, Programmierzeit, Debuggen & Einzelschrittmodus[Bearbeiten]

Laufzeit und Programmierzeit gehen fließend ineinander über: Während ein Projekt mit seinen Programmen läuft, kann weiterprogrammiert werden, bzw. wenn es nicht läuft, können Programme durch Anklicken gestartet und so ausprobiert werden, womit die erforschende spielerische Herangehensweise gefördert wird. Laufende Programme sind mit weißem Rand hervorgehoben und Ausführungsfehler (zum Beispiel Division durch 0) mit rotem Rand. Im Einzelschrittmodus werden auch die jeweils ausgeführten Bausteine hellgelb hervorgehoben.

Drag & Drop[Bearbeiten]

Programme, Grafiken und Töne können durch Ziehen auf andere Spielfiguren übertragen werden und Spielfiguren und Programme können per Knopf oder Kontextmenü kopiert werden. So kann zum Beispiel nur durch das Erstellen einer einzigen Spielfigur, die mehrfach kopiert wird, eine komplexe Simulation geschaffen werden, bei deren Ausführung die Kopien deterministisch aber dennoch unvorhersehbar interagieren.

Remixingkultur[Bearbeiten]

Ein wesentlicher (namensgebender, s.o.) Aspekt von Scratch ist es, dass sich die Nutzer von vorhandenem Medien-Material inspirieren lassen, daraus lernen, es neu kombinieren, verändern und ergänzen, um eigene Werke daraus zu schaffen. Diese werden dann wiederum anderen zur Verfügung gestellt. Die Installation bringt dafür bereits einen großen Fundus an Beispielprojekten, Spielfiguren, Grafiken und Sounds mit, der für erste Einsteigererfahrungen umfangreiches Ausgangsmaterial liefert. Dieses wird erweitert durch selbstgemachte oder aufgezeichnete Bild- und Tondateien, sowie den Multimediaelementen oder ganzen Spielfiguren und Programmen, die aus bereits veröffentlichten Scratch-Projekten anderer entnommen werden können. Das Wiederverwenden der Spielfiguren in anderen Projekten wird gefördert, indem sie komplett mit allen ihren Kostümen, Klängen und Programmen aus Projekten als Datei exportiert und in andere importiert werden können, was häufig ohne größere Anpassungen zu lauffähigen Kombinations-Projekten führt. Das Herunterladen fremder Projekte, anschließendes Ändern und Erweitern und Hochladen als eigenes Projekt wird in Scratch als „Remixing“ bezeichnet und ist eine beliebte und positiv bewertete Vorgehensweise. Remixing wird daher nicht als Plagiat oder Ideendiebstahl gesehen, sondern als Gemeinschaftserfahrung und als eine Ehre für denjenigen, dessen Material verwendet wird. Remixing wird unterstützt, indem ein Projekt seine Herkunft mit sich trägt und der Weg des Remix auf der Scratch-Homepage bis zum Ursprungsautor rückverfolgbar ist. Auf der Scratch-Homepage entstehen so durch eine spezielle Visualisierungsseite Remixing-Ketten und -Bäume, die durchaus hunderte von Projekten umfassen können. [22]

Weiterentwicklungen von Scratch[Bearbeiten]

Neben der offiziellen Weiterentwicklung durch das Scratch-Team, deren größter bisheriger Sprung die komplette Neuimplementierung mit Scratch 2.0 als Flash-Anwendung darstellte, existieren eine Vielzahl von Scratch Modifikationen[23][24]. Die „inoffiziellen Erweiterungen“ wurden von Mitgliedern der Community (meist basierend auf dem offenen Squeak-Smalltalk-Quellcode von Scratch 1.4) erstellt.

Sie umfassen sowohl lehrorientierte als auch rein anwendungsorientierte Neuerungen von extrem unterschiedlicher Qualität und Ernsthaftigkeit[25]. Einige offizielle Scratch-Weiterentwicklungen lassen sich auch auf Einflüsse aus Modifikationen zurückführen. So wurden beispielsweise die sogenannten Listen (eindimensionale Felder) von Chirp/BYOB übernommen[26], das sich inzwischen von einer Modifikation zu einer eigenständigen Programmiersprache mit von Scratch-unabhängiger Technologiebasis weiterentwickelt hat.

S4A[Bearbeiten]

Scratch for Arduino (S4A) eine Scratch-Modifikation, die eine Programmierumgebung im Scratch-Design für den Arduino-Mikrocontroller zur Verfügung stellt.[27]

Panther[Bearbeiten]

Panther ist eine beliebte Modifikation der Scratch Entwicklungsumgebung. Panther arbeitet mit Blöcken, hat zwei zusätzliche Kategorien und kann Projekte in ausführbare EXE-Dateien umwandeln.[28] Die Panther-Webseite[29] ermöglicht das Hochladen von Projekten.

Snap! (BYOB)[Bearbeiten]

BYOB / Snap!
BYOB-Logo (bis BYOB 3.x): Der aus Scratch bekannte "Gobo" wird durch die λ-Locke zum BYOB-Maskottchen "Alonzo" und "sagt" einen "First Class Block"
Snap!-Logo (ab BYOB 4.0): In der Umrahmung verweisen das λ-Zeichen auf Scheme und die Start-Block-Form auf Scratch.
Basisdaten
Paradigmen: Multi-Paradigma: visuell, erziehungsorientiert, funktional, prozedural, objektorientiert, meta, ereignisgesteuert
Erscheinungsjahr: 2011
Entwickler: Jens Mönig, Brian Harvey
Aktuelle Version: 3.1.1  (19. Mai 2011)
Typisierung: dynamisch
Wichtige Implementierungen: BYOB 3.x in Squeak als Mod von Scratch

BYOB/Snap! 4.x in JavaScript

Beeinflusst von: Scratch, Lisp, Scheme
Beeinflusste: Scratch (Einfluss in beide Richtungen, siehe Artikel)
Betriebssystem: Windows, Mac OS X, Linux
Lizenz: Open Source mit proprietären Komponenten
byob.berkeley.edu

Snap![30] (bis zu Version 3.1.1 unter dem Namen BYOB bekannt (engl. Abk: "Build Your Own Blocks" deutsch: "Bau deine eigenen Blöcke")) ist eine auf Scratch aufbauende und von Scheme und damit auch Lisp, inspirierte erziehungsorientierte visuelle Programmiersprache inklusive ihrer Entwicklungsumgebung für fortgeschrittene Schüler und für die Erwachsenenbildung.

Snap!/BYOB erweitert Scratch um komplexere und abstraktere Konzepte, die in Scratch zugunsten der Kindertauglichkeit bisher fehlten. Trotz der spielerischen Anmutung, die es sich aus seiner Scratch-Herkunft bewahrt hat, geht BYOB mit seinen anschaulichen und durchgängigen First-Class-Objekten und Meta-Programmierung weit über die Möglichkeiten traditioneller Programmier-Lern-Sprachen hinaus. Unter anderem kann der Lernbereich "Algorithmen und Datenstrukturen" mit BYOB direkt und vollständig abgedeckt werden, während Programmierkenntnisse nebenbei erworben werden.

Snap!/BYOB ist Open-Source und kommt im Sekundarstufen-II-Unterricht an deutschen Schulen und an amerikanischen und deutschen Universitäten zum Einsatz.

Die live in Unterricht und Vorlesung per Drag and Drop erstellbaren grafischen Programme ähneln Ablaufdiagrammen, sind aber direkt lauffähig, wodurch ein hoher Zeit- und Motivationsvorteil erzielt wird, da Redundanzen und Brüche zwischen Theorie und Praxis vermieden werden (Wegfall von: Diagramm → Pseudocode → lauffähiges Programm → Tipparbeit → Syntaxfehler → Testdurchläufe → Zeitverschwendung und Demotivation).

Entstehung, Entwicklung und Verbreitung[Bearbeiten]

Die Ursprünge von BYOB gehen auf das Freizeitprojekt Chirp[31] zurück, das der deutsche Jurist und Softwareentwickler Jens Mönig ab 2008 als Modifikation von Scratch 1.2.1 publizierte und auf das der für sein UCB-Logo bekannte Berkeleyprofessor Dr. Brian Harvey [32] aufmerksam wurde. [33]. Gemeinsam schufen sie daraus die für die Erwachsenenbildung geeignete Programmiersprache BYOB, um das in seinen Grundlagenvorlesungen eingesetzte Scheme abzulösen. Als Berater fungierten u.A.: John Maloney (der Chefentwickler von Scratch), Dan Ingalls, Mitchel Resnick und Mark Guzdial [34]. Auch in einer mehrtägigen Zusammenkunft mit Alan Kay und seinem Team wurden BYOB/Snap! reflektiert.[35]. Durch die Bewilligung öffentlicher Forschungsgelder [36] wurde aus dem Hobbyprojekt eine Vollzeittätigkeit, die schließlich zu einer kompletten von der Scratch-Technologiebasis unabhängigen Neuimplementierung von BYOB führte, das ab der Version 4.0 unter dem neuen Namen Snap! von der University of California, Berkeley publiziert wird und - in über 20 Sprachen übersetzt - direkt im Browser frei verfügbar ist [37].

Logo der Berkeley-Vorlesung "The Beauty and Joy of Computing"

BYOB/Snap! ist ein wesentliches Element der vielbeachteten Berkeley Grundlagenvorlesung "The Beauty and Joy of Computing"[38], die als Pilotprojekt für das neue "AP CS:Principles" Examen gewählt wurde [39] [40] auf dessen Basis die National Science Foundation ab 2015 10,000 Lehrer im Fach Informatik ausbilden will ("CS10K" [41]). In diesem Zusammenhang wurden weite Teile der Vorlesung incl. der BYOB/Snap!-Teile als Moodle-Version [42] und YouTube-Videos [43] öffentlich gemacht, incl. exemplarischer Examens-Prüfungen. [44]

Die hohe Popularität von Scratch bei seiner gleichzeitigen Nichteignung für den fortgeschrittenen Informatikunterricht hat eine weltweite Aufmerksamkeit von IT-Didaktikern auf BYOB/Snap! ausgelöst, da es dieses entscheidende Defizit von Scratch ausgleicht. Der deutsche Informatik-Didaktiker Eckart Modrow erkannte dieses Potenzial früh und trug durch Fachartikel [45] [46] [47] , einem Vorlesungsskript [48] sowie Vorträgen und Lehrerfortbildungen dazu bei, dass auch der deutsche Informatikunterricht von BYOB/Snap! profitieren kann. 2013 kam BYOB erstmalig auch in deutschen Abiturprüfungen zum Einsatz. [49]

Erweiterungen gegenüber Scratch[Bearbeiten]

Im Gegensatz zu Scratch, welches auf die Einfachheit und sofortige Verständnis für Anfänger zielt, ergänzt BYOB programmiertechnisch komplexere Konzepte. Da viele dieser Konzepte an die multi-paradigmen-Programmiersprache Scheme angelehnt sind, ermöglicht BYOB sowohl funktionale und prozedurale als auch objektorientierte und sogar Meta-Programmierung. Dazu werden zu den Scratch Eigenschaften nur wenige neue, aber sehr mächtige Optionen hinzugefügt, wie das Erstellen von Blöcken, First-Class Funktionen oder Prozeduren (ihre mathematischen Grundlagen werden auch als „Lambda-Kalkül“ bezeichnet), First-Class-Objekt-Listen (einschließlich Listen von Listen) und First Class Sprites. Mit Prototypenbasierte Programmierung wird in BYOB Objektorientierung ohne abstraktes Klassenkonzept ermöglicht: Neue Objekte entstehen als Kopie vorhandener Objekte ("cloning").[50] [51]

BYOB macht "First-Class-Objekte" anschaulich[Bearbeiten]
Titelbild des BYOB-Handbuches mit zwei Beispielen: BYOB macht "First Class Objekte" anschaulich

Die aus Scratch bekannten Spielfiguren (Sprites), Programm-Skripte, Listen und anderes, sind in BYOB "First-Class-Objekte", die wie Zahlen und Zeichenketten in Variablen und Listen gespeichert werden können. Alle Operationen, die direkt auf diese Objekte angewendet werden, können auch auf die Variablen und Listenelemente angewendet werden, welche diese Objekte enthalten. Dabei sind einige Operationen wie "say/sage" (Sprechblase) und "think/denke" (Denkblase), die sich bei Scratch nur auf Zahlen, Texte oder Listen von diesen beziehen, auf alle Objekte anwendbar. Dadurch, dass Programmcode in Variablen und Listen gespeichert und ausgeführt werden kann, können neue Kontrollstrukturen und Datenstrukturen frei definiert werden, die gleichwertig zu den Grundstrukturen der Programmiersprache verwendbar sind, was Meta-Programmierung ermöglicht: BYOB lässt sich in BYOB erweitern und ist mit der gleichzeitigen visuellen Orientierung eine der anschaulichsten Programmiersprachen, in der dies möglich ist.

Damit ermöglicht es BYOB prinzipiell, jede denkbare Kontroll- und Datenstruktur zu lehren und zwar wahlweise sowohl ihre Implementierung, als auch ihre Anwendung. Nachvollziehbar wird dies bereits in den zwei Beispielen aus dem Titelbild des BYOB-Handbuches, das rechts dargestellt ist. Es enthält zwei Gruppen von Bildern, die jeweils zusammenhängend ein Beispiel bilden:

Beispiel 1: First-Class-Objekte benutzen[Bearbeiten]

Die gelbe Spielfigur links unten im Bild führt den "sage/say"-Block auf einen Listenblock aus, der eine Liste mit den zwei Spielfiguren Sprite1 und Sprite2 erzeugt: Dadurch erscheint die Liste mit den Spielfiguren in der Sprechblase.

Beispiel 2: Kontrollstrukturen definieren[Bearbeiten]

BYOB umfasst keinen Programmierbefehl-Block für eine "For_=_To_" Schleife. Jedoch kann diese Kontrollstruktur leicht definiert und dann so verwendet werden, als sei der "For_=_To_"-Block ein normaler Bestandteil der Programmiersprache, wie das Definitionsskript oben links im Bild zeigt. In dessen Kopfblock werden die lokale Übergabevariablen "i", "start", "end" und "action" festgelegt. "i" ist durch den Pfeil nach oben als Variablenübergabevariable gekennzeichnet, welche die Laufvariable der Schleife aufnimmt. Die Wertübergabevariablen "start" und "end" sind mit 1 und 10 vordefiniert, wenn bei der Verwendung des "For-To-Schleifen"-Blocks keine anderen Angaben eingesetzt werden. Der aktive Programmcode, der im Innern einer "For_=_To_-"-Schleife ausgeführt werden soll, wird der Variable "action" übergeben und weiter unten im Definitionsskript als Parameter des "run"-Blocks ausgeführt. Mit Hilfe des zum BYOB-Sprachbestandteil gehörenden "repeat"-Blocks wird eine "For_=_To_"-Schleife nachgebaut. Im Beispielskript rechts wird der so entstandene "For_=_To_-Schleifen"-Block zwei mal ineinander verschachtelt verwendet: Bei Ausführung zählt die gelbe Spielfigur rechts 10 mal von 3 bis 5.

Einschränkungen gegenüber Scratch[Bearbeiten]

Bis zum Auseinanderdriften der Entwicklungsplattform (mit Scratch 2.0/BOYB 4.0) basierte BYOB auf dem in Squeak implementierten Quellcode von Scratch und war zu diesem Aufwärtskompatibel. Eine wesentliche Beschränkung von BYOB, wie auch aller anderen Scratch-Modifikationen, war dabei das Fehlen eines webfähigen Abspielers für die mit ihm geschaffenen Projekte. Damit fehlte - neben allen anderen hierzu notwendigen Roussourcen - auch die Technologiebasis für eine mit Scratch vergleichbare Online-Community-Plattform. Wie traditionelle Programmier-Lern-Umgebungen setzte BYOB hier auf eine reine lokale Verfügbarkeit.

BYOB 3.x Projekte können nur nach einer manuellen Umwandlung in Scratch-Projekte online publiziert werden, wobei natürlich auf alle BYOB-Fähigkeiten verzichtet werden muss. Wie in Scratch 2.0 sind jedoch in BYOB 4.0 nicht nur die Projekte im Webbrowser abspielbar, sondern zudem die komplette Entwicklungsumgebung ohne Installation online verfügbar. Beide Systeme sind heute (Anfang 2013) im Prereleasestadium nutzbar. Ob darauf basierend für BYOB 4.0 (bzw. Snapp! s.u.) auch eine Online-Plattform geschaffen und etabliert werden wird, wie für Scratch, ist unbekannt.

BYOB 4.0/Snap![Bearbeiten]

Arbeiten mit BYOB4.0/Snap!: Screenshot

Im Gegensatz zu den meisten anderen Modifikationen basiert die kommende Version nicht mehr auf dem Quellcode von Scratch selbst, sondern wurde vollständig neu programmiert, da wie bei Scratch 2.0, eine komplette Onlineverfügbarkeit von Projekt-Player und Entwicklungsumgebung angestrebt wird.

Aus BYOB 4.0 wird Snap![Bearbeiten]

Der neue Name "Snap!", der ab BYOB 4.0 verwendet wird, leitet sich lautmalerisch vom "(ein-)schnappen!" der Programmier-Bausteine ab, wenn sie miteinander zu den Programm-Skripten eines Snap!-Projektes verbunden werden.

Hintergrund dieser Umbenennung ist, dass "BYOB" leider eine weitere, im englischen sogar bekanntere Bedeutung als Build Your Own Blocks (Bau deine eigenen Blöcke) hat. Diese zweite Bedeutung bring your own beer/bottle [52] (Bring Deine Flasche/Dein Bier selbst mit, siehe Buddelparty) erschien für eine Anwendung im Bildungsbereich letztlich als zu missverständlich.

Technologie und Onlineverfügbarkeit[Bearbeiten]

Wie bei Scratch 2.0 ist die Entwicklungsumgebung von Snap! und damit auch der Player ohne Installation direkt im Webbrowser verfügbar. Hierzu wurde Squeak Smalltalk, die bisher gemeinsame Grundlage von Scratch und BYOB, verlassen und - wie auch bei Scratch 2.0 - eine komplette Neuentwicklung auf einer webfähigen Plattform durchgeführt, die ohne Installation in gängigen Internetbrowsern laufen soll. Während Scratch 2.0 jedoch auf Flash basiert, wurde für Snap! als Plattform HTML5-Canvas und Javascript verwendet. Auf dieser Basis wurde das aus Squeak bekannte Morphic neu implementiert und zur graphischen Grundlagenbibliothek von Snap!.

Alternative zu Scratch auf iPhone/iPad/iPod[Bearbeiten]

Damit stellt Snap! eine Alternative zu Scratch auf den mobilen Geräten von Apple (iPhone/iPad/iPod) und anderen Plattformen dar, auf denen Java und Flash nicht unterstützt werden und somit weder der Scratch-Projekt-Abspieler von Scratch 1.x, noch die Entwicklungsumgebung von Scratch 2.x ausführbar sind. Allerdings liegt die Snap! erst im Alphastadium vor und ist noch nicht voll kompatibel zu Scratch.[53].

Veröffentlichung[Bearbeiten]
Snap!-Handbuch-Cover

Snap! steht seit Beginn seiner Entwicklung 2011 öffentlich im Netz zur Verfügung und ist aktuell (Februar 2013) weitgehend nutzbar, incl. Sprachversionen in Deutsch und einem knappen Dutzend anderer Sprachen. Der aktuelle Status von Snap! wird von den Entwicklern als "Alpha" angegeben. Mit Hinzukommen eines Cloud-Servers soll im Jahr 2013 ein Betastadium eingeleitet werden und dann kurzfristig ein erster offizieller Fertigstellungspunkt definiert werden, bei dem man - aufgrund der permanenten Nutzbarkeit bereits vorher - jedoch nicht von einem richtigen "Veröffentlichungszeitpunkt" sprechen kann. Ein offizielles englischsprachiges Handbuch zu Snap! wurde Anfang 2013 herausgegeben.

Kooperation zwischen Scratch- und BYOB-Entwicklung[Bearbeiten]

Durch eine intensive Kooperation zwischen Scratch und BYOB Entwicklern fließen regelmäßig in BYOB erprobte Konzepte in Scratch ein, wie z.B. die Scratch-Listen, die lange vor ihrer Einführung in Scratch bereits in BYOB implementiert waren. Auch die Fähigkeit, eigene neue Programmierbausteine definieren zu können, wird - allerdings in vereinfachter Form, ohne Ein- und Ausgabeparameter - in der neuen Version Scratch 2.0 einfließen. Während im kleineren BYOB-Entwicklerteam der schnellen Entscheidung für Innovationen ein höherer Stellenwert zugeschrieben wird, setzt das größere Scratch-Entwicklerteam auf längere praktische Evaluierung, bevor ein neues Konzept offiziell eingeführt wird, was - aufgrund der jüngeren Zielgruppe und der wesentlich größeren Nutzergemeinde von Scratch - sinnvoll ist. Da für BYOB 4.0 mit JavaScript und HTML5 eine weniger etablierte, aber zukunftsträchtigere Plattform gewählt wurde, lässt sich vermuten, dass es auch in diesem Fall einen Einfluss auf zukünftige Scratch Versionen nach 2.0 haben könnte, speziell, wenn die für Scratch 2.0 gewählte etablierte Plattform Flash tatsächlich rückläufig und damit auf immer weniger Systemen verfügbar sein sollte, worauf bereits heute einiges hindeutet.

Siehe auch[Bearbeiten]

Literatur[Bearbeiten]

deutsch:

englisch:

Einzelnachweise[Bearbeiten]

  1. Scratch:Phänomen Scratch im DACH-Scratch-Wiki, abgerufen 17. Januar 2013
  2. Über Scratch-Seite der offiziellen Website Abgerufen 17. Januar 2013.
  3. Scratch 1.0 im DACH-Scratch-Wiki. Abgerufen 17. Januar 2013.
  4. Scratch 1.4 im DACH-Scratch-Wiki. Abgerufen 17. Januar 2013.
  5. Java Player im Scratch-Wiki(englisch), abgerufen 17. Januar 2013
  6. Flash Player im Scratch-Wiki (englisch). Abgerufen 17. Januar 2013.
  7. Scratch 2.0 im DACH-Scratch-Wiki. Abgerufen 12. Juni 2013.
  8. Scratch iPhone Player auf mobilewikiserver.com (englisch, PDF) Abgerufen am 13. November 2012.
  9. Snap! im DACH-Scratch-Wiki, abgerufen am 27. Januar 2013
  10. Übersetzung auf der Seite des DACH-Scratch-Wiki Abgerufen am 15. Januar 2013.
  11. Statistik-Karte auf der Scratch-Homepage Abgerufen am 15. Januar 2013.
  12. Scratch Statistics (englisch) Abgerufen am 9. Juni 2012.
  13. Webseite des Kurses „UC Berkeley EECS CS10 : The Beauty and Joy of Computing Summer 2012“ (englisch) Abgerufen am 7. Juli 2012.
  14. Förster 2011
  15. Scratch auf KiKa: Programmieren als Hobby im DACH-Scratch-Wiki, abgerufen am 22. Januar 2013
  16. Scratch Day auf der Seite des DACH-Scratch-Wiki Abgerufen am 8. September 2012.
  17. Scratch Day 2009 auf der Seite des DACH-Scratch-Wiki Abgerufen am 8. September 2012.
  18. Scratch Connecting Worlds 2013 in Barcelona im DACH-Scratch-Wiki, Abgerufen am 22. Februar 2012.
  19. ScratchEd auf der Seite des DACH-Scratch-Wiki, abgerufen am 22. Januar 2013.
  20. Über das Scratch-Wiki auf der Seite des DACH-Scratch-Wiki, abgerufen am 11. Februar 2013.
  21. Alle Blöcke = Übersichts-Liste im DACH-Scratch-Wiki abgerufen am 27. Februar 2013
  22. Remix im DACH-Scratch-Wiki, abgerufen am 18. Januar 2013
  23. Liste der Modifikationen im DACH-Scratch-Wiki abgerufen am 6. Oktober 2013]
  24. List of Scratch Modifications - (englisches Scratch-Wiki)
  25. Modifikationen im DACH-Scratch-Wiki abgerufen am 6. Oktober 2013
  26. Weitere Entwicklungen von Scratch im Bericht vom Scratch-Day 2009, DACH-Scratch-Wiki abgerufen am 6.Oktober 2013
  27. S4A - Scratch for Arduino - (Scratch-Dach)
  28. Panther - (Scratch-Dach)
  29. Panther - based on Scratch - (offizielle Panther-Webseite)
  30. Snap! (Build Your Own Blocks) - (offizielle Snap!-Seite der Universität Berkeley)
  31. Homepage von Chirp
  32. Brian Harvey in der englischsprachigen Wikipedia
  33. Bericht: Jens Mönig am Scratchday 2013 im DACH-Scratch-Wiki, abgerufen am 6.Oktober 2013
  34. Mark Guzdial in der englischsprachigen Wikipedia
  35. Blogeintrag von Jens Mönig zur Beratung des Snap!-Teams durch John Maloney, Dan Ingalls, Mitch Resnick, Mark Guzdial und Alan Kay, abgerufen 28. Januar 2013
  36. Collaborative Research: Type I: FRABJOUS CS — Framing a Rigorous Approach to Beauty and Joy for Outreach to Underrepresented Students in Computing at Scale (PDF; 248 kB)
  37. Online-Präsenz von Snap! an der University of California, Berkeley. Direkt im JavaScript-fähigen Browser ausführbar.
  38. Homepage der Vorlesung "The Beauty and Joy of Computing"
  39. The beauty and joy of computing (BJC), AP CS principles, and the CS 10K effortDan Garcia, veröffentlicht im Journal of Computing Sciences in Colleges, Volume 27 Issue 5, May 2012 , Pages 126-127
  40. Repräsentanz der Vorlesung "Beauty And Joy Of Computing (BJC)" auf der Plattform der CS10K Projects Comunity
  41. The CS10K Project: Mobilizing the Community to Transform High School Computing (PDF; 145 kB), Owen Astrachan (Duke University), Cameron Wilson Director (ACM Office of Public Policy), Jan Cuny (National Science Foundation), Chris Stephenson (Executive Director, CSTA)
  42. Moodle-Version der Berkeley-Vorlesung "The Beauty and Joy of Computing"
  43. YouTube-Version der Berkeley-Vorlesung "The Beauty and Joy of Computing"
  44. Beispiel eines Berkeley CS10 FinalExamens aus 2010 unter Verwendung von BYOB/Snap! (PDF; 883 kB)
  45. OOP mit BYOB, Prof. Dr. Eckart Modrow, LOG IN Heft Nr. 171 (2011) (PDF; 575 kB), abgerufen am 27. Januar 2013
  46. Visuelle Programmierung - oder: Was lernt man aus Syntaxfehlern? , Prof. Dr. Eckart Modrow, 9. Januar 2011 (PDF; 83 kB), abgerufen am 27. Januar 2013
  47. Wozu Java?, Prof. Dr. Eckart Modrow,Jens Mönig, Dr. Kerstin Strecker, LOG IN Heft Nr. 168 (2011) (PDF; 557 kB), abgerufen am 27. Januar 2013
  48. Vorlesungsskript: "Informatik mit BYOB / Snap!" (PDF; 5,7 MB), 9. Februar 2013 von Prof. Dr. Eckart Modrow auf dem Server des Lehrerbildungszentrums Informatik der Universität Göttingen
  49. DACH-Scratch-Wiki: Bericht vom ScratchDay 2013: Das Gymnasium Sulingen ist die erste deutsche Schule, an der BYOB von der Klasse 7 bis zur Abiturklausur eingesetzt wurde.
  50. Build Your Own Blocks (Scratch Modifikation) im DACH-Scratch-Wiki, abgerufen am 27. Januar 2013
  51. Spieleprogrammierung mit Scratch und BYOB , Seminar Didaktik der Informatik 3. Semester, Michael Heinelt, Wintersemester 2011/12 (PDF; 3,2 MB), abgerufen am 27. Januar 2013
  52. en:BYOB (beverage) in der englischsprachigen Wikipedia
  53. Snap! im DACH-Scratch-Wiki, abgerufen am 27. Januar 2013

Weblinks[Bearbeiten]

 Commons: Scratch (programming language) – Sammlung von Bildern, Videos und Audiodateien