Wir nutzen Cookies, um das allgemeine Benutzerelebnis zu verbessern. Mit der Nutzung unseres Wikis stimmst du der Nutzung von Cookies zu.

Scratch

Scratch-Versionen: v1.0v1.1v1.2v1.3v1.4v2.0|| Wichtige Mods: PantherChirpBYOBSnap!ScratchJrGP
Spezialisierungen: 3D: Beetle BlocksBlocksCAD Roboter: Enchanting || Vergleich blockbasierter Prog.-Sprachen

Scratch ist eine erstmals 2007 veröffentlichte erziehungsorientierteWikipedia.jpg visuelleWikipedia.jpg ProgrammierspracheWikipedia.jpg für Kinder und Jugendliche inklusive ihrer Entwicklungsumgebung und der eng verknüpften Online-CommunityWikipedia.jpg-Plattform. Scratch ist eine imperative ProgrammierspracheWikipedia.jpg (wie auch viele andere Programmiersprachen) bei der ein Programm aus einer Folge von Anweisungen besteht, die vorgeben, in welcher Reihenfolge welche Aktionen ausgeführt werden.

Scratch
Logo Scratch Katze
Basisdaten
ParadigmenWikipedia.jpg: ereignisorientiertWikipedia.jpg

Imperative ProgrammierungWikipedia.jpg teilweise objektorientiertWikipedia.jpg

Erscheinungsjahr: 2007
Designer: Mitchel ResnickWikipedia.jpg
Entwickler: -#Mitchel Resnick
-#John Maloney
-#Natalie Rusk
-#Evelyn Eastmond
-#Tammy Stern
-#Amon Millner
-#Jay Silver
-#Brian Silverman
Aktuelle Version: 2.0  (9. Mai 2013)
TypisierungWikipedia.jpg: dynamischWikipedia.jpg
Wichtige Implementierungen: Scratch 1.x in SqueakWikipedia.jpg

Scratch 2.x in FlashWikipedia.jpg

Beeinflusst von: LogoWikipedia.jpg, Smalltalk-80Wikipedia.jpg, SqueakWikipedia.jpg, E-ToysWikipedia.jpg, HyperCardWikipedia.jpg, AgentSheets, StarLogo, Tweak, Snap! / BYOBWikipedia.jpg (BYOB-Einfluss in beide Richtungen)
Beeinflusste: Snap! / BYOBWikipedia.jpg, App InventorWikipedia.jpg, Pocket Code
Betriebssystem: WindowsWikipedia.jpg, Mac OS XWikipedia.jpg, LinuxWikipedia.jpg
scratch.mit.edu


siehe auch in Wikipedia: Scratch (Programmiersprache)Wikipedia.jpg
(Scratch-Wiki:Wikipedia Versionen des Scratch und BYOB Artikels abgleichen)

Dieser Artikel basiert auf dem DE-Wikipedia-Scratch-Artikel (Entstehung des DE-Artikels und des EN-Artikels)

Diese Version wurde & wird für unser DACH-Scratch-Wiki verlinkt, aktualisiert, erweitert, ist informeller und geht mehr ins Detail.]]

Scratch in 5 Minuten kennen - Scratch in 10 Minuten benutzen

In diesem Scratch Programm vom Kinderlabor seht Ihr in 5 Minuten, wie schnell man mit Scratch ein einfaches Spiel programmieren kann. Wenn Ihr danach Lust bekommen habt, genau dieses Spiel oder etwas anderes in Scratch zu programmieren, geht auf die Scratch-Website und startet den Editor über den Link Entwickeln. Damit eure Ergebnisse gespeichert werden, legt auch am besten einen Account auf der Scratch-Seite an in dem ihr auf "Scratcher werden" klickt. Um zu sehen, dass man mit Scratch quasi alles programmieren kann, schaut mal auf Kultspiele in Scratch.

Einen schnellen Einstieg bieten unsere 6 * 5 Minuten Einsteiger-Screencasts und unser Leitfaden.



Schau' dir dieses Projekt auf der Scratch-Webseite an...


Tipp: auf der Startseite von Scratch könnt ihr die Sprache auf Deutsch einstellen, dann werden alle Tipps und Befehle in deutscher Sprache angezeigt.

Zielsetzung

Ihr Ziel ist es, Neueinsteiger und insbesondere Kinder und Jugendliche mit den Grundkonzepten der Computerprogrammierung vertraut zu machen. Unter dem Motto “imagine, program, share” („Ausdenken, Entwickeln, Teilen“) wird die kreative und explorativeWikipedia.jpg Erstellung eigener SpieleWikipedia.jpg und MultimediaWikipedia.jpg-Anwendungen, verbunden mit dem gegenseitigen Austausch darüber als Motivation genutzt. Kostenlos und werbefrei können die Ergebnisse in einer internationalen Online-CommunityWikipedia.jpg 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.

Nutzung als Lehr- und Lernsprache

Scratch wird weltweit und natürlich auch in DACH in verschiedensten Schulformen und Unterrichtsveranstaltungen eingesetzt. Durch die mit Scratch verbundene interaktive Internetplattform hat sich eine schnell wachsende Gemeinschaft von Programmieranfängern, Schülern, Pädagogen und Hobbyisten gebildet, die sich gegenseitig motivieren und unterstützen, ihre Kreativität und Programmierkenntnisse zu entwickeln.

Folgende „Cartoon“ veranschaulicht ganz gut den Kontrast zwischen den heute etablierten textbasierten Programmiersprachen (als Beispiel Java) und den neuen grafischen Programmiersprachen wie Scratch. JavaIsTheRealThing.jpg

Der erste Kontakt mit textbasierten Programmiersprachen wie Java oder C, demotiviert viele Anfänger beim Einstieg in das eigentlich spannende Thema Softwareentwicklung. Der Fokus liegt dort zwangsläufig auf - für die Logik von Algorithmen eigentlich unwichtigen - Details, wie die sklavische Einhaltung der Syntaxregeln. Ehe dort nur das einfachste Programm läuft, sind sehr viele Fehlerquellen zu umschiffen, was den Großteil der eingesetzten Zeit beansprucht.

Dennoch fällt das Umdenken noch schwer - bei Programmieranfängern jeden Alters - mit grafischen Sprachen wie Scratch zu beginnen. Das Vorurteil, dass "echtes Programmieren" textbasiert sein muss, ist bei vielen noch fest verankert. Doch es gibt bereits Gegenbeispiele, in denen Scratch und seine Weiterentwicklungen selbst in universitäre Veranstaltungen zum Einsatz kommen:

Mehr dazu in: Sind Scratch, BYOB und Snap! für den Informatik-Unterricht geeignet?

Namensherkunft

Der Name Scratch leitet sich von der DJWikipedia.jpg-ScratchtechnikWikipedia.jpg 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: RemixingkulturWikipedia.jpg). Dadurch erhalten Anfänger sehr schnell Erfolgserlebnisse, die motivieren, sich vertieft mit der Materie auseinanderzusetzen.

Entwicklung und Implementierung

Mitchel Resnick

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

Die erste Implementierung der Scratch-Entwicklungsumgebung basierte auf Scratch Implementierung in Squeak Smalltalk bis Scratch 1.4 im Jahr 2009 der Scratch-Web-Player zunächst auf Java. Die aktuelle Version Scratch 2.0 erschien am 9. Mai 2013 und basiert komplett auf Flash.

Phänomen Scratch

Versuche, die Einstiegsschwelle für den Erwerb von Programmiersprachen-Kenntnissen zu verringern und dafür ein geeignetes Werkzeug zu schaffen, hat es bereits viele gegeben. Seit -#Seymour Papert schon in den 60er Jahren LOGOWikipedia.jpg als Programmiersprache für Kinder entwickelte, reißen die Bemühungen nicht ab, Kindern einen leichten Einstieg in die Welt der Programmierung zu ermöglichen. So zählten schon zu Beginn der 2000er-Jahre Werkzeuge wie der Roboter Karol oder Kara zu den Standardhilfsmitteln zur Einführung in die Programmierung an deutschen Schulen und Bildungseinrichtungen weltweit. Selten hat jedoch ein Werkzeug eine so schnelle und weltweite Verbreitung gefunden wie Scratch, das im Mai 2007 vom MIT Media Lab herausgegeben wurde. Die kostenlose graphische Programmier-Lern-Sprache ermöglicht es jedem, Multimedia-Animationen und Computerspiele zu erstellen und im Internet zu veröffentlichen. Die bunten Programmier-Bausteine und intuitiven Elemente machen den Einstieg leicht. So wurde Scratch schnell zu einer Art „YouTube“ der Programmierung, das eine weltweite begeisterte Anhängerschaft fand und viele Kinder und Jugendliche motiviert, sich intensiv mit der Schaffung eigener kreativer Software zu beschäftigen. Obwohl es auch Stimmen gibt, die Scratch lediglich für den Einsatz in Grundschulen geeignet halten (vgl. Baumann LOG IN 156, S. 58), fasziniert es Jugendliche und Erwachsene gleichermaßen. Woher kommt dieser Effekt? Vielleicht liegt es daran, dass Scratch nicht „am Reißbrett“ entstand, sondern in jahrelangen Untersuchungen erforscht wurde, 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. So stehen mächtigen Funktionen wie Multimediaelementen und Multitasking starke Einschränkungen in Peripherienutzung und Sprachumfang gegenüber. Als Ergebnis dieser Herangehensweise ermöglicht es Scratch Programmieranfängern jedoch, sehr schnell, Ideen für Spiele, Animationen und Programme in die Tat umzusetzen und damit Informatik-systeme nicht nur rezeptiv sondern selbst gestalterisch und kreativ zu nutzen. Scratch weckt also den Spaß am Programmieren, aber umfasst noch nicht alle Bereiche in ihrer Tiefe, obwohl sich bereits jetzt anspruchsvolle Probleme lösen lassen, die jenseits des rein spielerischen liegen. Scratch wird erfolgreich in Grund- und Sekundarschulen eingesetzt und selbst Harvard-Studenten erwerben mit Scratch erste Programmiererfahrungen

Entwicklungsumgebung, Internetplattform und Scratch-Player

Scratch bis Version 1.4

Die Entwicklungsumgebung kann kostenlos aus dem Internet heruntergeladen werden. Da sie mit dem plattformunabhängigen SmalltalkWikipedia.jpg-Entwicklungssystem SqueakWikipedia.jpg erstellt ist, gibt es Versionen für WindowsWikipedia.jpg, Mac OS XWikipedia.jpg und potentiell für weitere BetriebssystemWikipedia.jpge. 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 Webbrowser dient ein JavaWikipedia.jpg-InterpreterWikipedia.jpg, der sogenannte Scratch-Player.

Scratch ab Version 2.0

Die Entwicklungsumgebung ist auf der Scratch-Homepage direkt lauffähig und wie der neue Scratch-Player komplett in FlashWikipedia.jpg erstellt. Download und Installation sind daher nicht mehr erforderlich. Eine Offline-Version zum Herunterladen für Mac OS, Windows und einige Linux-Versionen (32 bit) ist ebenfalls verfügbar.[2]

Scratch auf iPhone/iPad/iPod

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

Da Scratch-Web-Player auf JavaWikipedia.jpg oder FlashWikipedia.jpg basieren, welche auf den mobilen Geräten von AppleWikipedia.jpg (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.[3]

Ein HTML5 Player für Scratch, mit dem obige Beschränkung für iPhone/iPad/iPod aufgehoben werden soll, befindet sich in Entwicklung und kann bereits öffentlich im Web getestet werden.[4]

Verbreitung und Nutzung

Seit 2007 breitete sich die Scratch-Idee u.A. durch den NetzwerkeffektWikipedia.jpg 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 der Scratch-Entwicklungsumgebung und der Scratch-Website. Hinzu kommt eine erfolgreiche Kommunikation und Medienarbeit des MIT-Scratch-Teams (u. a. dem weltweiten Scratch DayWikipedia.jpg, der Ausbilder-Plattform ScratchEdWikipedia.jpg, dem Scratch WikiWikipedia.jpg, sowie vielen wissenschaftlichen Publikationen, Interviews und Beiträgen in verbreiteten US-Medien).[5]

Internationalität und Übersetzbarkeit von Scratch

Die Internationalität dieser Benutzergemeinde wird durch die leicht zugängliche Mehrsprachenfähigkeit aller Scratch-Plattformen gefördert, mit der die Online-CommunityWikipedia.jpg 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

Von den Anfängen im März 2007 bis Mitte 2015 legten mehr als >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).[6] 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

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 BerkeleyWikipedia.jpg für Nicht-Informatiker[7] oder an der Universität HildesheimWikipedia.jpg für Studierende des Lehramts.[8]

Scratch als Hobby

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.[9] 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 MINTWikipedia.jpg-begeisterte Jugendliche, oder auch zur Förderung von MINTWikipedia.jpg-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

Der seit 2009 jährlich stattfindende Scratch-Day trägt stark zur Verbreitung der Scratch-Idee bei (zuletzt am 18. Mai 2013.[10]). 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.[11]

Scratch@MIT Konferenz

Scratch@MIT ist eine Konferenz für Lehrer, Professoren, Forscher, Entwickler und alle, die sich mit Scratch oder dem Unterrichten von Kindern beschäftigen. Bei der Konferenz können Erfahrungen und Geschichten ausgetauscht-, Workshops besucht- und Vorträgen zugeschaut werden. Die Konferenz findet alle zwei Jahre (2008, 2010, 2012, 2014) am MIT Media Lab in Cambridge, Massachusetts, USA, statt und folgt jeweils einem ausgewählten Motto. Die Scratch Konferenz am MIT bildet ein Äquivalent zur neu eingeführten europäischen Scratch Konferenz (2013), die immer in den Jahren zwischen den Scratch@MIT Konferenzen stattfindet. Die Scratch@MIT Konferenz 2014 fand vom 6. bis zum 9. Juli unter dem Motto „Projects, Peers, Passion, Play“ statt.[12][13][14]

Europäische Scratch-Konferenzen

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.[15] Scratch Connecting Worlds 2013 in Barcelona war die erste europäische Scratch-Konferenz. Sie fand 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 nutzen die Gelegenheit um die kreativen Möglichkeiten von Scratch zu feiern und zu teilen.

Die insgesamt siebente internationale Scratch-Konferenz hat den Titel Scratch2015AMS – Creative communities[16] und findet in Amsterdam vom 12. bis 15. August 2015 statt.

ScratchEd

ScratchEd ist eine zusätzliche Online-CommunityWikipedia.jpg 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.[17]

Scratch Wiki

Das Scratch Wiki ist ein freies, gemeinschaftlich geschriebenes WikiWikipedia.jpg auf MediaWikiWikipedia.jpg-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 >900 Artikel, das deutschsprachige Scratch Wiki wurde am 8. Februar 2012 gegründet und enthält >450 Artikel.[18]

Prinzipien von Sprachumfang und Bedienung

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

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

  • visuellWikipedia.jpg – Alle Elemente, aus denen ein Scratch-Projekt im Wesentlichen per Drag & DropWikipedia.jpg 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.
  • erziehungsorientiertWikipedia.jpg – 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.
  • objektorientiertWikipedia.jpg – Scratch implementiert mit DatenkapselungWikipedia.jpg und polymorphenWikipedia.jpg Nachrichtenversand Teile des objektorientiertenWikipedia.jpg ProgrammierparadigmaWikipedia.jpgs. Scratch besitzt aber weder KlassenWikipedia.jpg noch VererbungWikipedia.jpg oder PrototypingWikipedia.jpg. Eine sehr einfache Objektorientierung ist damit für Programmieranfänger begreifbar: ObjekteWikipedia.jpg sind die Spielfiguren, die entweder als SingletonWikipedia.jpg nur sich selber als einzige Instanz besitzen oder durch Klonen mehrere Instanzen mit gleichem Code aber unterschiedlichen Daten haben können. Der Austausch von Nachrichten zwischen Objekten und Instanzen erfolgt mit den Bausteinen „sende XX an alle“ oder „sende XX an alle und warte“ und den Kopfbaustein „wenn ich XX empfange“.
  • imperativWikipedia.jpg – 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.
  • ereignisorientiertWikipedia.jpg – 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ützendWikipedia.jpg – Eine erstaunliche Eigenschaft von Scratch ist, dass das eigentlich komplexe ProgrammierparadigmaWikipedia.jpg Parallele ProgrammierungWikipedia.jpg 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 TypisierungWikipedia.jpg – Der DatentypWikipedia.jpg von VariablenWikipedia.jpg 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

Scratch 2.0 Entwicklungsumgebung Beispiel
Scratch 1.4 Entwicklungsumgebung Beispiel

Kein Tippen – Keine Syntaxfehler

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

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

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“

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 LogoWikipedia.jpg, 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

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

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)

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.

Farb-Kategorien der Scratch-Blöcke[19]

Bereich Farbe Programmier-Bausteine (Beispiele)
Bewegung Blau gehe, drehe , setze Richtung, setze x/y, …
Aussehen Violett wechsle zu Kostüm (), sage (), ändere Effekt, ändere Größe, …
Klang Pink spiele Klang, spiele Schlagzeug, spiele Note, setze Instrument, setze Lautstärke, …
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, falls
Fühlen Türkis Maus X/Y, Maustaste gedrückt, wird () berührt?, wird Farbe () berührt?, Stoppuhr, Entfernung von (), …
Operatoren Hellgrün +, -, *, / , Zufallszahl von bis, <, =, >, und , oder, nicht, …
Variablen Orange / Rot setze auf, ändere um, zeige, verstecke, …

Weitere Bedienelemente – Knöpfe & Menüs

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

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 Programm 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

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

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

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 VisualisierungWikipedia.jpgsseite Remixing-Ketten und -Bäume, die durchaus hunderte von Projekten umfassen können.[20]

Weiterentwicklungen von Scratch

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 Modifikationen. Diese „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. Einige offizielle Scratch-Weiterentwicklungen lassen sich auch auf Einflüsse aus Modifikationen zurückführen. So wurden beispielsweise die sogenannten Listen (eindimensionale FelderWikipedia.jpg) von Chirp bzw BYOB übernommen,[21] das sich inzwischen von einer Modifikation zu einer eigenständigen Programmiersprache mit von Scratch-unabhängiger Technologiebasis weiterentwickelt hat.


  • Snap! ist eine Neuimplementierung vom damaligen Scratch 1.2.1 in HTML5 und bietet heute eine im Sprachumfang bedeutend gegenüber Scratch erweiterte Programmiersprache.
  • ScratchJr ist eine Tablet-App, welche kleinen Kindern (5 bis 7 Jahre) mithilfe eines auf Scratch basierenden Systems einfach und spielerisch das Programmieren näherbringt
  • Scratch for Arduino (S4A) eine Scratch-Modifikation, die eine Programmierumgebung im Scratch-Design für den Arduino-Mikrocontroller zur Verfügung stellt.
  • Panther ist eine beliebte Modifikation der Scratch Entwicklungsumgebung.
  • Pocket Code (Catrobat) ist eine App für Android, iOS, Windows Phone und FirefoxOS, mit der man ähnlich wie in Scratch Programme und Spiele erstellen kann.

Siehe auch

Literatur

deutsch
englisch

Weblinks

Einzelnachweise

  1. Über Scratch-Seite der offiziellen Website Abgerufen 17. Januar 2013.
  2. 2.0 Offline-Editor für Scratch, abgerufen am 27. März 2015
  3. Scratch iPhone Player auf mobilewikiserver.com (englisch, PDF) Abgerufen am 13. November 2012.
  4. HTML5 Playerim DACH-Scratch-Wiki, abgerufen am 21. August 2014
  5. Statistik-Karte auf der Scratch-Homepage Abgerufen am 15. Januar 2013.
  6. Scratch Statistics (englisch) Abgerufen am 9. Juni 2012.
  7. Webseite des Kurses „UC Berkeley EECS CS10 : The Beauty and Joy of Computing Summer 2012“ (englisch) Abgerufen am 7. Juli 2012.
  8. Förster 2011
  9. Scratch auf KiKa: Programmieren als Hobby im DACH-Scratch-Wiki, abgerufen am 22. Januar 2013
  10. Scratch Day auf der Seite des DACH-Scratch-Wiki Abgerufen am 8. September 2012.
  11. Scratch Day 2009 auf der Seite des DACH-Scratch-Wiki Abgerufen am 8. September 2012.
  12. Homepage der Scratch@MIT_Konferenz, Abgerufen am 20. August 2012.
  13. Scratch@MIT_Konferenz im DACH-Scratch-Wiki, Abgerufen am 20. August 2012.
  14. Scratch@MIT_2014 im DACH-Scratch-Wiki, Abgerufen am 20. August 2012.
  15. Scratch Connecting Worlds 2013 in Barcelona im DACH-Scratch-Wiki, Abgerufen am 22. Februar 2012.
  16. Scratch2015AMS – Creative communities
  17. ScratchEd auf der Seite des DACH-Scratch-Wiki, abgerufen am 22. Januar 2013.
  18. Über das Scratch-Wiki auf der Seite des DACH-Scratch-Wiki, abgerufen am 11. Februar 2013.
  19. Alle Blöcke = Übersichts-Liste im DACH-Scratch-Wiki abgerufen am 27. Februar 2013
  20. Remix im DACH-Scratch-Wiki, abgerufen am 18. Januar 2013
  21. Scratch-Day_2009_in_Bochum#Weitere_Entwicklungen_von_Scratch Weitere Entwicklungen von Scratch im Bericht vom Scratch-Day 2009, DACH-Scratch-Wiki abgerufen am 6. Oktober 2013



Code zum Einbinden ins Forum:
[wiki=de:Scratch]Scratch[/wiki]