
Scratch ist vielen bekannt – eine Programmierumgebung für Kinder, in der das Lernen meist darauf abzielt, kreative Projekte nach dem Prinzip „von einfach bis komplex“ zu erstellen. Dabei stellt der „klassische Ansatz“ zum Erlernen von Programmierung (Variablen → Verzweigungen → Schleifen → Funktionen → Strukturen → Objekte → …) in Scratch eine Herausforderung dar.
Die Änderung der Reihenfolge, in der Konzepte (nennen wir sie Konzepte) des strukturierten, objektorientierten und ereignisgesteuerten Programmierens behandelt werden, sowie deren Verbergung hinter bunten Sprites und interaktiver Animation, bedeutet jedoch nicht, dass diese Konzepte nicht hervorgehoben werden sollten. Insbesondere wenn das Ziel darin besteht, nicht nur kreative Fähigkeiten zu entwickeln, sondern auch das Programmieren zu lernen. Diese Idee habe ich in meinem versucht darzustellen. .
Das Erste, worauf ein angehender Scratch-Programmierer stößt, sind die Sprites. Obwohl es in Scratch kein objektorientiertes Programmieren im klassischen Sinne gibt, können Sprites als Objekte betrachtet werden. In diesem Schritt erkennt der Lernende, dass es in einem Programm viele Objekte geben kann, deren Verhalten durch Skripte gesteuert wird, die extern zu ihnen sind. Sprites erhalten Befehle oder geben auf Anfrage Informationen über ihren Zustand weiter, was bedeutet, dass das Programmieren auf die Steuerung von Objekten hinausläuft.
Ein weiteres Konzept, das den jungen Programmierer in Scratch sofort trifft, ist die Idee der Multithreading. Jeder Sprite kann mehrere Skripte haben, die gleichzeitig ausgeführt werden. Mehrere Sprites können auch gleichzeitig ihre Programme untereinander ausführen. Dabei kann es jedoch schwieriger sein, die Ausführung in einer bestimmten Reihenfolge zu organisieren.


Bereits in der ersten Unterrichtsstunde können wir nicht umhin, uns mit Schleifen vertraut zu machen. Andernfalls wird unsere Katze nicht viel mehr als einen Sprung machen. In dieser Phase bleibt die Einführung intuitiv und oberflächlich. Wir beschränken sie auf die Schleifen "immer wiederholen" und "... Mal wiederholen", die einfacher zu verstehen sind. Die Schleife mit Bedingungen wird in einer Lektion behandelt, die speziell den Schleifen gewidmet ist. Diese Lektion setzt Kenntnisse über logische Ausdrücke und Variablen voraus.
Da Scratch eine ereignisgesteuerte Umgebung ist, ist es praktischer, die Bedingungsblöcke vor den Variablen zu lernen. Bedingungen können verschiedene Ereignisse darstellen.

Meiner Meinung nach ist eine solche Reihenfolge besser, da wir in jeder Lektion nur ein Minimum an Konzepten einführen. Und zwar nicht abstrakt, sondern zeigen gleich ihren praktischen Nutzen.
Wenn man zunächst die Variablen behandelt, ist es schwierig, ihren Zweck und Nutzen zu demonstrieren, da zuvor der Bedingungsoperator, das Eingeben von Daten und die Erzeugung von Zufallszahlen nicht behandelt wurden.
In Scratch gibt es neben Listen drei Datentypen: Zahlen, Strings und den Booleschen Typ. Dabei ist der Typ an den Wert gebunden, nicht an die Variable. Es ist nicht erforderlich, Strings in Zahlen und umgekehrt umzuwandeln. Strings werden nicht in Anführungszeichen gesetzt.
Ein Block, der einen booleschen Wert zurückgibt und eine charakteristische, eckige Form hat, kann in runde Felder eingefügt werden. Umgekehrt gilt das nicht: Wo ein boolescher Ausdruck erwartet wird, kann keine normale Variable eingefügt werden.

Scratch ist so gestaltet, dass während der Ausführung keine kritischen Fehler auftreten. Deshalb wird, wenn man versucht, einen String in einer arithmetischen Operation zu verwenden, dieser durch null ersetzt (siehe den ersten Screenshot).
Der Programmierer sollte wissen, dass die Möglichkeiten von Programmiersprachen durch Bibliotheken erweitert werden. Wenn Schüler in Scratch arbeiten, können sie Erweiterungen aktivieren, die neue Befehle in die Umgebung einführen.

Die Funktionen in Scratch sind im Abschnitt „Weitere Blöcke“ integriert, wo Sie auf der einen Seite Ihren eigenen Block erstellen, den Sie in andere Skripte einfügen können. Auf der anderen Seite müssen Sie die Funktionalität dieses Blocks zusammenstellen, das heißt, was er tun soll.

In Scratch-Funktionen gibt es keine Rückgabewerte.
Somit hinterlässt das Erlernen von Programmierkonzepten in einer ereignisgesteuerten Umgebung seinen Eindruck. Im Grunde genommen lernen wir zunächst die komplexeren und abstrakteren Konzepte und gehen erst im Verlauf des Prozesses zu den Elementen der strukturierten Programmierung über. Ob das ein Vorteil oder Nachteil für den ersten Kontakt ist, ist eine kontroverse Frage.
Quelle: habr.com
