Scratch-Programmierung für Kids

Aus LinuxUser 07/2023

Scratch-Programmierung für Kids

© AlexeyIvanov / 123RF.com

Bunte Blöcke

Mit Scratch programmieren Kinder und Jugendliche eigene Anwendungen, indem sie grafische Elemente im Browser zusammenklicken. Dabei liegt der Fokus auf Struktur und Logik, Syntax bleibt außen vor.

Das Herzstück der Webseite von Scratch [1] bildet der Bereich zum “Schreiben” von Programmen (Abbildung 1). Hier finden sich allerdings keinerlei Codezeilen, sondern einzelne Blöcke, mit deren Hilfe sich das Programm quasi zusammenstecken lässt. In der Leiste links neben dem Programmbereich zeigt Scratch ebendiese Blöcke an. Sie lassen sich mit der Maus auf den Programmbereich ziehen und unterscheiden sich je nach Funktion farblich. Rechts neben dem Programmierbereich schließt sich die sogenannte Bühne an. Hier fügen Nutzer Figuren ein und greifen auf eine Vorschaufunktion zu.

Abbildung 1: Die Arbeitsoberfläche von Scratch unterteilt sich in drei Bereiche: links finden sich die Codebausteine, mittig das eigentliche Programm und rechts eine Vorschau.

Abbildung 1: Die Arbeitsoberfläche von Scratch unterteilt sich in drei Bereiche: links finden sich die Codebausteine, mittig das eigentliche Programm und rechts eine Vorschau.

Stein für Stein

Blöcke sind für Scratch unentbehrlich, es braucht sie zum Programmieren von Figuren und Steuern der Bühne. Die Blöcke bilden das eigentliche Programm beziehungsweise entsprechen dem Code. Jede Blockgruppe besitzt ihren eigenen Zweck, den jeder Block in der Gruppe ähnlich ausführt. Während Bewegungsblöcke das Bewegen der Figuren übernehmen, verändern Sie mithilfe der Aussehensblöcke das Äußere der Figuren und der Bühne. In diese Kategorie fallen außerdem das “Sprechen” und “Denken” (Sprech- und Denkblasen) der Figuren.

Über Klangblöcke fügen Sie Geräusche in das Programm ein. Ereignisblöcke ermöglichen es, mit Figuren zu interagieren oder auf Ereignisse zu reagieren. Mithilfe von Steuerungsblöcken definieren Sie, ob das Programm Dinge ständig oder eine bestimmte Anzahl von Malen wiederholt. Sie entsprechen den Schleifen in anderen Programmiersprachen. Darüber hinaus dienen Steuerungsblöcke dazu, einen Klon einer Figur zu erstellen. Mit Fühlenblöcken programmieren Sie Figuren so, dass sie auf Mausklicks oder Tastendrücke reagieren.

Möchten Sie in Ihrem Programm eine komplizierte mathematische Operation ausführen, greifen Sie dazu auf die Operatorblöcke zurück. Mit deren Hilfe können Schüler und Schülerinnen zwar keine Hausaufgaben machen, aber immerhin lassen sich damit Ergebnisse hervorbringen, die den Verlauf des Programms beeinflussen.

Selbstverständlich kommt auch Scratch nicht ohne Variablen und die zugehörigen Blöcke aus. Wie sollte eine Figur sonst merken, wie oft eine bestimmte Aktion schon ausgeführt wurde? Hinter Variablen stecken in Scratch Platzhalter, denen Sie einen Namen geben. Bauen Sie diese anschließend in den Code ein, weiß das Programm sofort, welchen Wert Sie meinen, sobald Sie den Platzhalter ansprechen, und wird daraufhin damit arbeiten. Dementsprechend müssen Sie nicht jedes Mal aufs Neue eine Zahl eingeben und laufen nicht Gefahr, zu vergessen, diese Zahl zu ändern.

Schließlich bietet Scratch ganz unten in der Leiste eine Funktion zum Erzeugen eigener Blöcke. Mithilfe dieser selbst gebauten Blöcke gestalten Sie das Programm noch bunter und kreativer. Unter Meine Blöcke lassen sich darüber hinaus Blöcke von anderen Anbietern einbinden, zum Beispiel eine Steuerung für Lego-Bausteine.

Bühne frei

Die Bühne stellt den Bereich dar, um den sich Ihr ganzes Programm dreht. Hier werden all Ihre eingefügten Figuren zu sehen sein. Alles, was Sie im Programm schreiben, verändert etwas auf der Bühne. In Ihrem Programm legen Sie außerdem fest, ob einzelne Figuren und Bühnenbilder zu sehen sind oder verborgen bleiben sollen.

Im Figurenbereich lassen sich von Scratch bereits vorgegebene Figuren einfügen oder eigene Bilder als Figuren integrieren. Nach dem Hochladen erscheinen die Figuren sofort auf der Bühne und tauchen als kleine Vorschaubilder im Bereich darunter auf. Zwischen dem Figurenbereich und der Bühne finden Sie die Änderungsleiste für die Figuren. Dort ändern Sie die Position, die Größe, die Ausrichtung, die Namen und die Sichtbarkeit der Figuren. Die Werte lassen sich zudem jederzeit mittels des Programms modifizieren.

Weitere Gestaltungsmöglichkeiten für die Figuren bietet der Reiter Kostüme. Hier können Sie etwas zeichnen, einen Text hinzufügen und die Größe des Bilds beziehungsweise der Figur variieren. Im Reiter Klänge ergänzen Sie Geräusche, die Ihr Programm akustisch gestalten. Diese Töne lassen sich ebenfalls im Nachhinein anpassen und über die Blöcke ansteuern.

Beispielprogramm

Da ich mich sehr für die Luftfahrt interessiere, hatte ich die Idee, den internationalen Flughafen in Frankfurt am Main (FRA) in Scratch nachzubauen. Daraus entstand letztlich mein Beispielprogramm, dessen Ergebnis Sie in Abbildung 2 betrachten können. Ich hätte zwar lieber den Hauptstadtflughafen BER verwendet, aber da er sich im Bau als gewaltige Panne entpuppte, eignet er sich meiner Meinung nach nicht als Beispielflughafen für dieses Projekt.

Abbildung 2: Nachdem mir die Pannen beim Bau des Hauptstadtflughafens BER eher als schlechtes Omen erschienen, fiel meine Wahl auf den Frankfurter Flughafen FRA.

Abbildung 2: Nachdem mir die Pannen beim Bau des Hauptstadtflughafens BER eher als schlechtes Omen erschienen, fiel meine Wahl auf den Frankfurter Flughafen FRA.

Der Frankfurter Flughafen ist der größte Flughafen Deutschlands und das Hauptquartier der größten deutschen Fluggesellschaft, der Lufthansa. Darüber hinaus gehört er zu den größten Flughäfen Europas. Auf der europäischen Rangliste der pro Jahr abgefertigten Flüge liegt er auf Platz 7. Auf der Weltrangliste erreichte er vor der Corona-Pandemie Platz 15. Der Flughafen bringt also die perfekten Voraussetzungen für unser kleines Scratch-Projekt mit.

Anlässlich dieses Beispiels habe ich den Flughafen zunächst in Lego nachgebaut, inklusive Hangar, Tower und Rollbahn (Modell nicht maßstabsgetreu). Die Fotos des Flughafens und der Modelle habe ich anschließend in Gimp ausgeschnitten und nachbearbeitet. Den Code zu dem Scratch-Programm finden Sie auf der Webseite des Scratch-Projekts [2]. Sie können ihn gern kopieren und für eigene Versuche verwenden.

@:Für die Flugzeugkenner unter Ihnen: Die Flugzeuge, die ich genutzt habe, sind eine Boeing 747-400 und ein Airbus A340. Im Programm passieren mehrere Dinge gleichzeitig, also nebenläufig. Im ersten Schritt wird ein Flugzeug abgefertigt, das im zweiten Schritt daraufhin zur Startbahn rollen und schließlich abfliegen soll. Ein weiteres Flugzeug ist bereits abgefertigt und startet direkt nach dem Beginn des Programms. Die einzelnen Programmblöcke dazu sehen Sie in Abbildung 3 oder wenn Sie das Beispielprogramm in Scratch öffnen.

Abbildung 3: Die einzelnen Schritte im Programm erfolgen nebenläufig.

Abbildung 3: Die einzelnen Schritte im Programm erfolgen nebenläufig.

Im Rahmen der Abfertigung fahren erst einmal mehrere Fahrzeuge unabhängig voneinander zum Flieger. Dort verweilen sie für einige Sekunden, bevor sie zurück zum Hangar rollen. Das soll das Beladen und Betanken des Fliegers simulieren. Währenddessen wartet das Flugzeug seinerseits in einer einprogrammierten Programmschleife. Das lässt sich gut daran ablesen, dass am Flugzeug alle paar Sekunden die Denkblase Waiting for Take Off erscheint.

Um die Sicherheit auf dem Rollfeld zu garantieren, erhöht jedes Fahrzeug beim Befahren des Vorfelds die Variable Fahrzeuge auf dem Rollfeld. Sobald das Fahrzeug in den Hangar zurückgekehrt ist, verringert sich die Variable um eins. Erst wenn die Variable null ist, sich also kein Fahrzeug mehr auf dem Rollfeld befindet, ist die Abbruchbedingung für die Warteschleife des Flugzeugs erreicht, und der Flieger kann zum nächsten Programmschritt übergehen.

In Scratch lässt sich das umsetzen, indem Sie mehrere parallele Programmblöcke nutzen: eines für jede Figur, eines für jedes Flugzeug und eines für den Tower. Diese Blöcke können auf Ereignisse (Events) und Zustände (Variablen) anderer Programmblöcke reagieren. Zum Beispiel setzen die Programme für die Fahrzeuge sie auf den Zustand sichtbar, sobald sie das Rollfeld befahren. Nachdem die Fahrzeuge zurück in den Hangar gerollt sind, schaltet das Programm die Figuren auf nicht sichtbar um. Eine weitere Interaktion findet zwischen dem Flieger und dem Tower statt: Sobald der Flieger die Startbahn erreicht, wird eine Variable gesetzt, die beim Tower die Freigabe anfragt. Der Programmblock für den Tower reagiert dann auf dieses Ereignis, prüft die Landebahn und erteilt letztlich die Freigabe. Danach gibt der Flieger Gas und hebt ab.

Zugegeben, es handelt sich um ein recht einfaches Programm, aber genau darin liegt der Sinn und Zweck von Scratch. Mithilfe dieses kleinen Beispiels lassen sich immerhin verschiedene Konzepte veranschaulichen, die man in anderen Programmiersprachen erst umständlich lernen muss: Variablen, Schleifen, bedingte Anweisungen, Ereignisbehandlung und Nebenläufigkeit. Dank des Aufbaus mit Programmblöcken können sich die Anwenderinnen und Anwender ganz auf die eigentliche Funktionalität und die kreative Idee konzentrieren. Im ersten Moment womöglich verwirrende und vermutlich vor allem für junge Menschen abschreckende Details entfallen hier. Darüber, wo eine Klammer hinkommt, wie viele Zeichen man einrücken muss oder wie man einer Variablen einen Wert zuweist, braucht man sich keine Gedanken zu machen.

Fazit

Hinter den meisten Programmen, die Sie auf der Scratch-Webseite finden, stecken ebenfalls kleine Spiele. Es lohnt sich, ab und zu auf den Schalter See Inside in Scratch zu drücken, um sich anzusehen, wie der oder die Entwicklerin das Programm geschrieben hat. Gerade, wenn Sie häufiger an solchen Projekten arbeiten, werden Sie mit der Zeit immer besser und können Ihrer Fantasie schneller freien Lauf lassen.

Das vorgestellte Beispiel verdeutlicht, dass es durchaus Sinn ergibt, Scratch zu nutzen, wenn Sie irgendeine Idee in Ihrem Kopf haben und diese schnell und unkompliziert ausprobieren möchten. Mithilfe des Tools lernen Jugendliche schnell, wie Programmieren abläuft und aus welchen Elementen sich ein Programm zusammensetzt. Der Fantasie sind dabei (fast) keine Grenzen gesetzt.

Scratch ist freilich eher eine Webseite als eine richtige textbasierte Programmiersprache. Dementsprechend haben seine Entwickler mehr Wert auf das Visuelle gelegt. Darüber hinaus konzentriert sich die Anwendung eher auf das Erstellen einfacher Spiele und Programme. Möchten Sie damit große Spiele programmieren, stoßen Sie sicher irgendwann an die Grenzen von Scratch. Zu diesem Zeitpunkt werden Sie allerdings in der Lage sein, eine andere Sprache wie Python oder Java zu lernen.

Zum Schluss möchte ich Ihnen noch ein paar Ideen für eigene Projekte in Scratch mitgeben: Beispielsweise könnten Sie Ihr eigenes Autorennen, einen Raketenstart, ein kleines Jump-and-Run- oder ein Flappy-Bird-Spiel programmieren. Denken Sie bitte auch daran, Ihr Projekt anschließend zu veröffentlichen – indem Sie es teilen, inspirieren Sie mit Ihrer Idee andere Nutzerinnen und Nutzer. (csi)

Der Autor

Pascal Scherbaum ist 14 Jahre alt und besucht das Gymnasium. Er betreibt einen eigenen Blog rund um das Thema Programmieren (https://pascal.scherbaum.la/blog/). Bei Fragen oder Anregungen freut er sich über Nachrichten auf Mastodon (mailto:@pscherbaum@brandenburg.social).

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 07/2023 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben