Biblionetz:a01274Blockbasierte Sprachen erleichtern den Einstieg ins Programmieren (wissenschaftlich noch nicht vollends geklärt)
Insbesondere auf der Sekundarstufe kommt aber häufiger Kritik an blockbasierten Programmiersprachen wie Scratch, weil es nicht der Vorstellung von ernsthafter Programmierung entspricht (Biblionetz:a01275):
«Scratch ist für Kinder, weil es wie Lego aussieht.»
Nicht verschwiegen werden soll, dass in einem reinen BYOB-Abiturkurs aber auch einige SchülerInnen unzufrieden mit der Auswahl der Sprache sind. Die Argumente, warum sie ungern mit BYOB arbeiten, sind eher emotionaler Natur, z.B. „Java ist näher an der Maschine“ oder „näher an der echten Informatik“ (vgl. dazu auch [Mo11b]). Interessanterweise schätzten diese SchülerInnen ein Java-Programm hoch ein, das zwar ein beeindruckendes Ergebnis lieferte, intern jedoch fast ausnahmslos aus dem Aufruf von Methoden verschiedener Java-Bibliotheken bestand und algorithmisch wenig anspruchsvoll war.
Von Kerstin Strecker im Konferenz-Band Informatik allgemeinbildend begreifen im Text Grafische Programmiersprachen im Abitur (2015) (Biblionetz:t19147)
Somit stellt sich die Frage, wie wir damit umgehen. Grundsätzlich gibt es folgende Massnahmen:
Ignorieren
Auf eine textbasierte Sprache wechseln
Zusätzlich eine textbasierte Sprache zeigen
Ein Werkzeug einsetzen, das sowohl textbasiert als auch blockbasiert programmieren kann
Blockbasiertes Programmieren für Nichtinformatiker an der Universität
Texteditor Tosh für Scratch-Programme
Eine Möglichkeit besteht darin, Schülerinnen und Schülern in einer Lektion mit dem textbasierten Scratch-Editor Tosh einmal das textuelle Programmieren erleben und mit dem blockbasierten Programmieren vergleichen zu lassen. Stefan Huber von der Projektschule Sek eins höfe hat das erprobt:
Die Lernziele einer solchen Unterrichtseinheit könnten sein:
Lernziele
Text- und blockbasiertes Programmieren miteinander vergleichen
Vor- und Nachteile von Tastatur- und Drag&Drop-Bedienung erkennen
Blockbefehle in Textbefehle umsetzen und deren Aufbau verstehen
Unterschiede in der Hierarchisierung & Zuordnung bei Bedingungen & Schleifen beschreiben
Verstehen, dass die Form einer Programmiersprache keine Aussage über ihre Mächtigkeit / Komplexität zulässt
Befehls(teile) müssen durch Einrückungen manuell einander zugeordnet werden
Bei jedem Befehl/jeder Schlaufe muss dem Computer mit «end» gezeigt werden, wo er endet
Drag & Drop von Befehlen, Automatisches Anhaften / Zuordnen
Durch die Klammern der Befehle/Schlaufen ist das Ende automatisch definiert.
EFFIZIENZ
AnfängerInnen haben sehr lange Befehle/Befehlsketten zu schreiben,
Fortgeschrittene arbeiten mit Tastatur effizienter, als mit Maus.
AnfängerInnen sind durch Drag und Drop sehr effizient.
Die Wege mit der Maus kosten jedoch Zeit
FEHLERTOLERANZ
Fehler passieren sehr schnell
Fehler werden kaum toleriert
Sehr sauberes Arbeiten nötig
Weniger Fehler durch vorgegebene Struktur
Teilweise automatische Fehlerkorrektur
KOMPLEXITÄT
Genau gleich! Beides ist Scratch!
Fazit von Stefan Huber:Primäre Erkenntnis: Die Lernenden haben tatsächlich zuerst das Gefühl, dass sie jetzt wie echte Profis programmieren ("Geil endlich!"), nach etwa einer Stunde kommt dann die Ernüchterung: Es ist einfach viel schwieriger, mit denselben Möglichkeiten wie bei Scratch. Mit etwas Übung kann man mit reiner Tastaturbedienung jedoch tatsächlich schneller Programmieren als mit Drag&Drop.Kritische Anmerkung von Beat Döbeli Honegger: Wer so schnell programmiert, macht was falsch. Meist sollte das Denken und Planen massiv mehr Zeit benötigen als das tatsächliche Coden