Viele kennen Scratch - eine Programmierumgebung für Kinder, bei der es in der Regel darum geht, kreative Projekte nach dem Prinzip „von einfach bis komplex“ zu erstellen. Gleichzeitig ist der „klassische Ansatz“ zur Untersuchung der Programmierung (Variablen → Verzweigungen → Schleifen → Funktionen → Strukturen → Objekte → ...) in Scratch schwierig.
Das Ändern der Reihenfolge der Lernkonzepte (nennen wir sie Konzepte) der strukturellen, objekt- und ereignisorientierten Programmierung, das Verstecken hinter hellen Sprites und interaktiven Animationen bedeutet jedoch nicht, dass Konzepte nicht hervorgehoben werden sollten. Vor allem, wenn das Ziel weniger die Entwicklung kreativer Fähigkeiten als vielmehr die Ausbildung in Programmierung ist.
Ich habe versucht, diese Idee in meinem
Kurs zu reflektieren.
Das erste, was ein Anfänger kratzt, sind Sprites. Obwohl Scratch selbst keine objektorientierte Programmierung hat, können Sprites als Objekte betrachtet werden. Zu diesem Zeitpunkt sieht der Schüler, dass das Programm viele Objekte enthalten kann, deren Verhalten durch externe Skripte gesteuert wird. Sprites empfangen bei Bedarf Befehle oder senden Informationen über ihren Status, dh die Programmierung hängt von der Verwaltung von Objekten ab.
Das zweite, was einem jungen Programmierer sofort in den Sinn kommt, ist das Konzept des Multithreading. Für jedes Sprite können mehrere Skripte gleichzeitig ausgeführt werden. Mehrere Sprites können ihre Programme auch gleichzeitig miteinander ausführen. Und es stellt sich als schwieriger heraus, die sequentielle Ausführung zu organisieren.
Bereits in der ersten Lektion können wir es nicht vermeiden, die Zyklen kennenzulernen. Andernfalls wird die Katze nicht besonders weglaufen. In dieser Phase muss die Bekanntschaft intuitiv und oberflächlich bleiben. Wir beschränken uns auf die Zyklen "immer wiederholen" und "wiederholen ... Zeiten", die leichter zu verstehen sind. Eine bedingte Schleife wird in einer Lektion speziell für Schleifen untersucht. Diese Lektion erfordert Kenntnisse über logische Ausdrücke und Variablen.
Da Scratch eine ereignisgesteuerte Umgebung ist, ist es bequemer, bedingte Anweisungsblöcke vor Variablen zu untersuchen. Eine Bedingung können bestimmte Ereignisse sein.
Meiner Meinung nach ist eine solche Reihenfolge besser, da wir für jede Lektion ein Minimum an Konzepten einführen. Und nicht abstrakt, sondern sofort ihre praktischen Vorteile erkennen.
Wenn Sie die Variablen zuerst untersuchen, ist ihr Zweck und Nutzen schwer nachzuweisen, da der bedingte Operator, die Dateneingabe und die Zufallszahlengenerierung zuvor noch nicht untersucht wurden.
In Scratch wird ein Programmierer neben Listen mit drei Datentypen konfrontiert: Zahlen, Zeichenfolgen und Boolesche Typen. In diesem Fall ist der Typ an einen Wert gebunden, nicht an eine Variable. Das Konvertieren von Zeichenfolgen in Zahlen und umgekehrt ist nicht erforderlich. Zeichenfolgen werden nicht in Anführungszeichen gesetzt.
Ein Block, der einen logischen Wert zurückgibt und eine charakteristische Winkelform aufweist, kann in abgerundete Felder eingefügt werden. Das Gegenteil ist nicht der Fall: Wenn ein logischer Ausdruck angenommen wird, können Sie keine reguläre Variable einfügen.
Scratch ist so implementiert, dass während der Ausführung keine kritischen Fehler auftreten. Wenn Sie also versuchen, eine Zeichenfolge in einer arithmetischen Operation zu verwenden, wird sie anscheinend durch Null ersetzt (siehe den ersten Bildschirm).
Der Programmierer muss wissen, dass die Fähigkeiten von Programmiersprachen durch Bibliotheken erweitert werden. Während der Arbeit bei Scratch kann ein Schüler Ons hinzufügen, die der Umgebung neue Teams hinzufügen.
Scratch-Funktionen werden im Abschnitt „Andere Blöcke“ implementiert, in dem Sie einerseits Ihren eigenen Block erstellen, der in andere Skripte eingefügt werden kann. Auf der anderen Seite müssen sie die Funktionalität dieses Geräts zusammenbauen, das heißt, was es tun wird.
Es gibt keinen Rückgabewert von der Scratch-Funktion.
Das Studium von Programmierkonzepten in einer ereignisorientierten Umgebung hinterlässt somit Spuren. Tatsächlich untersuchen wir zunächst komplexere und abstraktere Konzepte und gehen, indem wir uns nur mit dem Prozess befassen, zu den Elementen der strukturellen Programmierung über. Plus oder Minus für eine erste Bekanntschaft ist ein strittiger Punkt.