Das ist, glaube ich, der Gedanke, den viele meiner 10. und leider auch 11.-Klässler haben, wenn mal wieder der Compiler meckert oder das Programm nicht das tut, was es soll. Ich versuche dann den Schülern zu erklären, dass die Struktur, die sie sich einprägen müssen, wie folgt aussieht (erstellt mit “meinem” EBNF-Syntaxdiagramm-Wandler):

Aber irgendwie klappt das bei ganz vielen nicht. Meine neueste Vermutung, warum sich so viele damit schwer lautet: for-Schleife und Arrays habe ich bisher mehr oder weniger zusammen eingeführt. Damit habe ich aber zwei Konzepte miteinander verknüpft, die eigentlich gar nichts zwingend miteinander zu tun haben. Das möchte ich dieses Jahr trennen. Ich führe erstmal die for- und später auch die while-Schleife ein und viiiiiiieeeel später dann die Arrays.
Und damit das alles nicht so langweilig wird und die Schüler auch Programmierergebnisse sehen, greife ich auf Processing zurück. Darüber schrieb ich bereits schon einmal und möchte hier meinen Weg darstellen. Ob das dann alles so geklappt hat, werde ich in ein paar Wochen schreiben.
Basis für die Schüler ist ein fast leeres BlueJ-Projekt (FarbenSpielVorlage), das in einem +libs-Ordner die processing-Library enthält. Dazu noch zwei Klassen, damit die Schüler sich nicht lange mit der Startkonfiguration rumärgern müssen. Und um es gleich vorwegzunehmen: Man könnte auch gleich mit einem Online-Processing-Editor bzw. p5.js-Editor anfangen, aber es geht um Java und ich möchte nicht unnötig Verwirrungs stiften. Erst “int” und “double” etc. bei Java einführen und dann JavaScript-Variablendefinitionen wie beispielsweise “let x=0;” sind für Programmieranfänger dann doch ein wenig viel.
Das schöne bei processing ist, dass man als Programmierer gleich “coole” Sachen programmieren kann. Anregungen findet man dazu bei processing selbst, aber auch bei p5 bzw. beim CodingTrain.
Bei meinem Startbeispiel (FarbenSpielVorlage) wird zwar nur ein weißer Punkt an der Stelle gezeichnet an die der Anwender geklickt hat. Aber wer mal versucht hat, dies direkt in Java umzusetzen, wird den Unterschied erkennen:
if (mousePressed) {
fill(255);
ellipse(mouseX, mouseY, 10, 10);
}
Hier können die Schüler einzelne Parameter (Farbe, Größe) leicht unter meiner Anleitung verändern.
Sollen aber mehrer Punkt gezeichnet werden, so wird irgendeine Form der Zählwiederholung benötigt, wie die Schüler sie oftmals aus der 7. Klasse bei Karol kennengelernt haben. Und schon bin ich bei der for-Schleife und damit bei beispielsweise dem nebenstehenden Verlauf.
Daraufaufbauen ließe sich ein Funktionsplotter umsetzen oder Lissajous-Figuren realisieren. Auch einfache Spiele wären denkbar.
Für den Übergang zu den Arrays nehme ich dann wieder das Startprojekt, speichere aber dann die geklickten Punkt in diesem Array und iteriere über dieses Feld. Mal schauen, wie es wird.