
Viele kennen Scratch – eine Programmierumgebung für Kinder, deren Lernen normalerweise darin besteht, kreative Projekte nach dem Prinzip "von einfach zu komplex" zu erstellen. Dabei ist der "klassische Ansatz" zum Erlernen der Programmierung (Variablen → Verzweigungen → Schleifen → Funktionen → Strukturen → Objekte → …) in Scratch schwierig.
Eine Veränderung der Reihenfolge, in der die Konzepte (nennen wir sie Konzepte) der strukturierten, objektorientierten und ereignisgesteuerten Programmierung erlernt werden, sowie deren Verbergung hinter bunten Sprites und interaktiver Animation bedeutet jedoch nicht, dass nicht auf die Konzepte Wert gelegt werden sollte. Besonders wenn das Ziel nicht nur die Entwicklung kreativer Fähigkeiten, sondern auch das Erlernen der Programmierung ist. Diese Idee habe ich in meinem .
Das erste, mit dem ein neuer Scratch-Nutzer konfrontiert wird, sind die Sprites. Obwohl es in Scratch keine objektorientierte Programmierung im eigentlichen Sinne gibt, können Sprites als Objekte betrachtet werden. In diesem Stadium sieht der Lernende, dass es in einem Programm viele Objekte geben kann, deren Verhalten von externen Skripten gesteuert wird. Sprites erhalten Befehle oder geben auf Anfrage Informationen über ihren Zustand weiter, d.h. Programmierung reduziert sich auf die Steuerung von Objekten.
Das zweite Konzept, das in Scratch sofort auf den jungen Programmierer einprasselt, ist das der Multithreadedness. Jeder Sprite kann mehrere Skripte haben, die gleichzeitig ausgeführt werden. Mehrere Sprites können auch gleichzeitig ihre Programme untereinander ausführen. Dabei ist es jedoch schwieriger, eine sequenzielle Ausführung zu organisieren.


Bereits in der ersten Unterrichtsstunde können wir nicht umhin, uns mit Schleifen vertraut zu machen. Sonst läuft der Kater nicht weit. An diesem Punkt muss die Einführung intuitiv und oberflächlich gehalten werden. Wir beschränken uns auf die Schleifen "immer wiederholen" und "wiederhole ... mal", die leichter zu verstehen sind. Der Schleifen mit Bedingung 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 bequemer, die Blöcke des bedingten Operators vor den Variablen zu erlernen. Die Bedingung kann verschiedene Ereignisse darstellen.

Meiner Meinung nach ist diese Reihenfolge besser, da wir in jedem Unterricht mindestens ein Konzept einführen. Dabei handelt es sich nicht um abstrakte Konzepte, sondern wir sehen sofort ihren praktischen Nutzen.
Wenn man jedoch zuerst Variablen lernt, ist es schwierig, ihren Zweck und Nutzen zu demonstrieren, da der bedingte Operator, die Dateneingabe und die Zufallszahlengenerierung zuvor nicht behandelt wurden.
In Scratch, abgesehen von Listen, trifft der Programmierer auf drei Datentypen: Zahlen, Strings und den booleschen Typ. Dabei ist der Typ an den Wert und nicht an die Variable gebunden. 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 ist es nicht möglich: Dort, wo ein boolescher Ausdruck erwartet wird, kann keine normale Variable eingefügt werden.

Scratch wurde so umgesetzt, dass während der Ausführung keine kritischen Fehler auftreten. Offensichtlich wird daher, wenn man versucht, einen String in einer arithmetischen Operation zu verwenden, er durch null ersetzt (siehe ersten Screenshot).
Der Programmierer muss wissen, dass die Möglichkeiten von Programmiersprachen durch Bibliotheken erweitert werden. Während der Arbeit in Scratch kann der Schüler Erweiterungen anschließen, die zu neuen Befehlen in der Umgebung führen.

Funktionen in Scratch sind im Abschnitt „Andere Blöcke“ implementiert, wo Sie auf der einen Seite Ihren eigenen Block erstellen, den Sie in anderen Skripten einfügen können. Auf der anderen Seite müssen Sie die Funktionalität dieses Blocks zusammensetzen, also das, was er tun wird.

Es gibt keine Rückgabe von Werten aus Scratch-Funktionen.
Somit hat das Lernen von Programmierkonzepten in einer ereignisgesteuerten Umgebung seinen eigenen Einfluss. Im Wesentlichen lernen wir zunächst komplexere und abstraktere Konzepte und gehen erst bei vertiefter Beschäftigung zu den Elementen der strukturierten Programmierung über. Ob das als Vor- oder Nachteil für die erste Begegnung zu betrachten ist, ist eine umstrittene Frage.
Quelle: habr.com
