Blockbasierte Programmierumgebungen werden für viele Schüler zunehmend zur ersten Programmiererfahrung1, da immer mehr Schulen damit beginnen, Informatikkurse und Lehrpläne einzuführen und zu erweitern. Eine der beliebtesten blockbasierten Programmiersprachen heißt Scratch2(scratch.mit.edu). Täglich werden über 1.500 neue Programmierprojekte auf die Scratch-Site hochgeladen3. VEXcode selbst basiert auf Scratch-Blöcken.
Einer der Hauptgründe für die Entwicklung von Scratch ist, dass viele junge Schüler das Programmieren mit textbasierten Programmiersprachen als zu schwierig empfinden4, da diese Schüler sowohl das Tippen als auch die Syntax als schwierig zu beherrschen empfinden. Aus diesem Grund wurden blockbasierte Programmiersprachen für Schüler im Vorschulalter entwickelt, die meisten sind jedoch für Schüler im Alter zwischen 8 und 16 Jahren konzipiert. Blockbasierte Programmierung, einschließlich VEXcode, bietet für Programmieranfänger mehrere Vorteile5.
- Lesbarkeit:Blockbasierte Programmiersprachen verfügen über Befehle, die viel einfacher zu lesen sind als textbasierte Befehle.
- Speicherung:Bei blockbasierten Programmiersprachen sind alle Befehle für den Benutzer sichtbar. Bei textbasierten Programmiersprachen müssen Befehle häufig auswendig gelernt werden. Darüber hinaus müssen sich Benutzer die Syntax merken, die den Textbefehlen zugeordnet ist. Blockbasierten Befehlen ist keine Syntax zugeordnet.
- Tippen/Rechtschreibung:Jüngere Schüler haben Schwierigkeiten mit der Verwendung einer Tastatur. Rechtschreibfehler werden bei einer textbasierten Programmiersprache zu Compilerfehlern. Blockbasierte Programmiersprachen verwenden Drag & Drop. Daher ist kein Tippen und Beherrschen der Rechtschreibung erforderlich.
Auch wenn es erwiesen ist, dass es für unerfahrene Benutzer einfacher ist, mit einer blockbasierten Programmiersprache mit dem Programmieren zu beginnen, ist es dennoch wichtig zu fragen, ob blockbasierte Sprachen bei der Vermittlung von Informatikkonzepten effektiv sind. Die kurze Antwort lautet: Ja. Untersuchungen haben gezeigt, dass blockbasierte Programmiersprachen sich beim Unterrichten von Informatikkonzepten wie Algorithmen, Variablen, bedingter Logik und Codeverständnis als wirksam erwiesen haben6.
Die Verwendung blockbasierter Programmiersprachen hat natürlich einige Nachteile. Beispielsweise können Schüler manchmal das Gefühl haben, dass die Verwendung von Blöcken keine „authentische“ Lernerfahrung ist7. Mit anderen Worten: Echte Programmierer verwenden keine Blöcke. Dies ist ein wichtiger Aspekt, den es zu beachten gilt, aber es ist auch wichtig, die gut dokumentierten Herausforderungen im Auge zu behalten, die textbasierte Programmiersprachen für unerfahrene Programmierer mit sich bringen.
Als Pädagogen wissen wir, dass sich die Werkzeuge, mit denen wir Konzepte vermitteln, ändern, wenn sich die Schüler ändern. Mathematik wird am K-College unterrichtet. Die Hilfsmittel, mit denen ein Erstklässler unterrichtet wird, unterscheiden sich stark von den Hilfsmitteln, mit denen ein Junior im College unterrichtet wird. Untersuchungen haben gezeigt, dass blockbasierte Programmiersprachen für Anfänger einfacher zu verwenden sind und ein wirksames Mittel zur Vermittlung wichtiger Informatikthemen darstellen. Dies bedeutet jedoch nicht, dass Studierende immer in einer blockbasierten Programmierumgebung bleiben sollten oder müssen. Stattdessen lässt sich besser die Schlussfolgerung ziehen, dass eine Programmiermodalität, Blöcke oder Text, nicht grundsätzlich besser ist als die andere8. Welche Lösung für Ihr Klassenzimmer die richtige ist, hängt sowohl von Ihrem Komfortniveau als Pädagoge als auch von der Bereitschaft Ihrer Schüler ab. So wie Schüler ihre Multiplikationsfakten unterschiedlich schnell beherrschen, beherrschen einige Schüler das Programmieren mit Blöcken schneller als andere. Die Möglichkeit, mit der textbasierten Programmierung zu beginnen, wird sie motivieren und herausfordern. Tools wie VEXcode und Text ermöglichen es Ihnen, jeden Schüler auf seinem individuellen Unterrichtsniveau kennenzulernen.