Java in der 9. Jahrgangsstufe (Bayern, Gymnasium)

(14 Kommentare.)

Ausgangspunkt

Mit dem neuen Lehrplan am wieder neunjährigen Gymnasium lernen die Schüler und Schülerinnen am naturwissenschaftlich-technologischen Zweig in diesem Schuljahr zum ersten Mal bereits in der 9. Klasse eine objektorientierte Programmiersprache – Java, in aller Regel.

Weil ich zwei 9. Klassen habe, und weil es sich so ergeben hat, habe ich mir diesmal alles aufgeschrieben. Und ich bin so zufrieden von den Lernfortschritten, dass ich mir vorstellen kann, in den nächsten Jahren ähnlich vorzugehen. Endlich eine dieser Lehrkräfte sein, die nur ihren Ordner vom letzten Jahr herausziehen und immer das gleiche machen!

Das habe ich nämlich noch nie gemacht, in keinem Fach und keiner Klasse. Vielleicht bin ich zu unorganisiert, vielleicht ist der Leidensdruck einfach nicht groß genug, vielleicht würde mich das auch zu sehr langweilen, vielleicht macht es Sinn, die Eigenheiten der Klasse zu berücksichtigen. Deutsch und Englisch eignen sich dafür auch nicht so wie Mathematik, glaube ich. Mit Informatik 9 probiere ich das mal – nachdem ich in in Informatik 10 jedes Jahr andere Ansätze ausprobiert habe und nie damit zufrieden war.

Meine Reihenfolge

Die Inhalte sind arg miteinander verknüpft. Bevor man das eine kann, muss man erst das andere kümmern. Ich habe mir das mal so zusammengeschrieben:

Das erste Projekt

Der Anfang ist dieses fast leere Greenfoot-Projekt:

Da kann man wiederholen: was Klassen sind (rechts) und was Objekte (links); wie man Objekte per Mausklick erzeugt und auf dem Spielfeld platziert, wie man eine gegebene Methode aufruft und wie man eine Unterklasse per Mausklick anlegt. Code dazu ist eigentlich maximal:

  • public void act() { }
  • move(1)
  • turn(1)
  • setLocation( getX(), get(Y)+1))

Schwerpunkt ist der Unterschied zwischen dem Anlegen einer Methode und dem Aufruf einer Methode. Damit hat man schon Äpfel, Bananen und Cupcakes, die nach unten oder schräg unten fallen und sich dabei eventuell auch noch drehen. Zu einem vollständigen ersten Spiel fehlt nicht mehr, als man in der zweiten Doppelstunde zeigen kann; geübt wird das dann frei in einer dritten Doppelstunde:

  • if (Greenfoot.getRandomNumber(50)==0)
  • addObject( new Apfel(), Greenfoot.getRandomNumber(600), 0)
  • if (isAtEdge())
  • getWorld().removeObject(this)
  • if (isTouching(Banane.class))
  • removeTouching(Banane.class)
  • Greenfoot.stop()

Das kann man zusammenbauen zu einem Bären, der Obst fängt und Hindernissen ausweichen muss. (Die Steuerung des Bären gebe ich durch die Oberklasse vor.) Geübt und varriert wurde das in der dritten Doppelstunde; ich hatte das Gefühl, dass das alles halbwegs sitzt. Die einen haben dabei bereits die Vorteile von Vererbung vorweggenommen (isTouching(Actor.class)), die anderen wollen Punktezähler (dieser Wunsch erleichtert später das Einführen von Attributen) oder den Bären nicht immer von Hand anlegen müssen (womit man bei Konstruktoren ist).

Und schon hat man ein erstes kleines Spiel. Eingeführt dabei: Anlegen von Klassen, Anlegen einer Methode ohne Rückgabeyp und ohne Parameter, Aufruf von Methoden, mit Argumenten oder ohne, erste einfache bedingte Anweisungen, erzeugen von Objekten mit dem new-Operator.

Funktionales Programmieren

All das geht ohne zu deklarierende Attribute oder lokale Variablen. Die schiebe ich diesmal so weit nach hinten wie möglich – und man kann ja in Greenfoot halbwegs Spiele programmieren ohne sie. Das rein funktionale Programmieren ist den Schülern und Schülerinnen ja ohnehin noch von der Tabellenkalkulation her vertraut.

Deshalb ist der nächste Schritt dann auch das Anlegen von Methoden mit Parametern und Rückgabetypen – aber immer noch ohne lokale Variablen. Da werden dann auch bedingte Anweisungen noch einmal aufgegriffen und gefestigt.

Weiterführen des Projekts

Vererbung bietet sich an, und der Bär kann ja jetzt schon schießen, wenn man mit der Tastaturabfrage etwas hilft – und zwar weiterhin alles ohne Variablen. Bären schießen zwar üblicherweise nicht, aber das Bären-Fangspiel ist ja auch nur dann eines, wenn man sich das mit der Grafik so vorstellt. Das exakt gleiche Spielprinzip hat man ja auch bei einem Spiel, in dem man eine Rakete steuert, die von oben herabstürzenden Meteoriten ausweichen oder sie abschießen muss. (Ein Laserstrahl ist ja eigentlich auch nur eine Banane, die nach oben fliegt.) Und es ist genau das gleiche wie ein Auto, das man aus Draufsicht steuert und dabei anderen Verkehrsteilnehmenden ausweichen muss.

Weil Schüler und Schülerinnen nun mal sind, was sie sind, gibt es da auch Katzen, Bomben, Blutflecke im Zusammenhang mit Katzen, Schutzschilde. Die Bilder stammen von Spielen aus der 10. Klasse, die schon weiter sind und insbesondere auch schon Variablen kennen – und die Kommunikation zwischen Objekten, die in 9 ganz außen vor bleibt. (Geholfen habe ich nur mit der automatisch scrollenden Hintergrundgrafik fürs Autorennen, die für das Spiel irrelevant ist, aber hübsch aussieht.) Das waren kleine Zwischendurchprojekte, nicht das größere Projekt zum Schuljahresende.

Später dann mal: Wiederholungen

Hübsche Aufgaben, um das Erlernen von Zählschleifen zu motivieren: Das Aufstellen von Figuren.

(Die letzten drei Aufstellungen benutzen Zufall für Zeilen oder Spalten oder überhaupt.) Spätestens, wenn man das auf ein 20×20-Spielfeld erweitert, wünschen sich die Schüler und Schülerinnen wahrscheinlich eine Abkürzung.

Weitere Spiele ohne Kommunikation zwischen Objekten und ohne Variablen

Ohne heißt: Möglichst wenig jedenfalls. Variablen können und sollen sie später ja anwenden, das mit der Kommunikation zwischen Objekten – also der eigentliche Sinn hinter den ja auch im Lehrplan stehenden leidigen Getter- und Setter-Methoden – kommt erst im Jahr darauf.

So viel Spiele gibt es nicht. Breakout geht noch – aber mehr Möglichkeiten hat man auch da natürlich, wenn die Objekte miteinander kommunizieren dürfen.


Beitrag veröffentlicht am

in

Kommentare: 14

Schlagwörter:

Kommentare

14 Antworten zu „Java in der 9. Jahrgangsstufe (Bayern, Gymnasium)“

  1. Arnulf Helmut Sinz

    Wer ist die Zielgruppe für diesen Aufsatz?

  2. Ich denke nicht bewusst darüber nach, aber so im Nachhinein: Informatiklehrkräfte aus Bayern, und aus Bundesländern mit einem Fach Informatik, und mein späteres Ich.

  3. Hallo Herr Rau,

    danke für den Beitrag. Das Bild, wie die Themenbereiche zusammen hängen finde, ich sehr gut! Habe auch zwei 9. Klassen. Meine aktuelle Reihenfolge (ich halte mich da an ein gewisses Schulbuch, setze aber auf die Online-IDE von Martin Pabst auf):

    1. Klassen und Objekte (Modellierung), prinzipiell Wiederholung der alten Konzepte.
    2. Aufbau einer Java-Klasse
    3. Was ist eine IDE? Java-Code->Übersetzen->Prozessor führt aus
    4. Einfachste Methoden von Typ void tuWas() programmieren. Diese rufen einfach andere Methoden auf.
    5. Deklaration von Attributen und Wertzuweisung
    6. Übergabewerte (Parameter von Methoden)
    7. Rückgabewerte von Methoden (da wären wir beim Taschenrechner)
    8. Benutzereingaben und Ausgaben am Bildschirm (speziell OnlineIDE)
    9. Methoden als Aussagefunktionen (==, !=, <,… wiederholen und im Java-Kontext anwenden)
    10. Lokale Variablen
    11. Konstruktor
    12. Set- und Get-Methoden
    … und der Rest kommt nach Ostern ;-)

    Jeder Punkt war eine Unterrichtsstunde.

    Arbeite hierbei nach dem Flipped-Classroom-Prinzip. Habe dazu ein Video zu jedem Thema erstellt, was sie die SuS (hoffentlich) daheim zur Vorbereitung ansehen, damit ich im Unterricht mehr Zeit zum Üben habe. Für die Programmierübungen bette ich die Online-IDE mit den entsprechend vorbereiteten Aufgaben in mebis-Textseiten ein.

    Herzliche Grüße aus Kelheim,
    Chris Gräßl

  4. Danke dir, Chris, für deine Reihenfolge. Manches sehe ich genauso, da kommt man wohl nicht aus, bei anderen Sachen kann man wählen – insbesondere wann man Attribute und lokale Variablen macht. Ich bin schon mal gespannt, wie es weitergeht – so weit wie du bin ich wohl noch nicht, aber geplant sind die nächsten Stunden schon alle.

  5. Aginor

    Mich haut immer wieder weg, was für Mittel man heute hat beim Programmieren lernen. Das sieht ja nach richtig viel Spaß aus!

    Sie haben vermutlich wie ich (und die meisten Menschen die über 30 sind) das Programmieren mit einem Texteditor und einer simplen Befehlszeile gelernt, ganz ohne IDE, Graphik, oder irgendeiner Lernunterstützung die nicht ein Buch oder ein erfahrener Programmierer ist.
    Menschen die heute über 60 sind haben sogar mit Lochkarten oder dergleichen angefangen.

    Bei diesem Blogeintrag bekommt man ja richtig Lust, jemandem Programmieren beizubringen.
    Danke für den Einblick!

    Gruß
    Aginor

  6. >das Programmieren mit einem Texteditor und einer simplen Befehlszeile gelernt

    Ha! Wir wären froh gewesen damals um einen Texteditor. Das Betriebssystem *war* die Kommandozeile, und man tippte einfach:
    10 PRINT „HALLO“
    20 GOTO 10
    – und wenn man etwas verbessern wollte… ich weiß gar nicht mehr, wie das ging. Man tippte einfach die Zeile 10 neu, oder ließ sie sich ausgeben, fuhr mit dem Cursor hinauf und änderte dann etwas, mit Enter zu bestätigen?

    Aber ja, stimmt schon alles.

  7. Prof. Dr. Martin Bünner

    Hallo

    Sehr cool. Danke 🙏.

    Wird dies in allen bayerischen Gymnasien in der 9. unterrichtet? Oder ist dies nur ein Wahlfach?

    Darf ich fragen wo sie unterrichten?

  8. Das wird in allen bayerischen Gymnasien unterrichtet, aber in diesem Umfang nur im naturwissenschaftlich-technologischen Zweig, der allerdings der größte ist. Im sprachlichen Zweig hat man auch Informatik, aber weniger, und vor allem weniger Programmierung.

    Bis vor ein paar Jahren gab es Java erst ab Klasse 10, jetzt ist – wie oben – der Stoff auf 9 und 10 verteilt. Das klang am Anfang nach einer sehr guten Idee, und vielleicht ist sie das auch wirklich, aber von 9 auf 10 verschwindet sehr viel eigentlich Erlerntes, damit müssen wir noch umzugehen lernen.

    Ich unterrichte an einem Gymnasium in Fürstenfeldbruck bei München, bin aber bald an einem anderen Gymnasium direkt in München.

  9. C.P.

    Hallo Thomas,
    hab gelesen, dass Du ab dem 26. Februar an einer neuen Schule bist.
    Respekt und viel Freude!
    Hoffe, die Brucker verschmerzen deinen Abgang (und dass Du nicht versehentlich in die S-Bahn steigst.)
    Tatsächlich habe ich eine fachliche und wahrscheinlich banale Frage zu deiner oben verwendeten Vorlage für das Spiel in Greenfoot. Woher kommt den die Klasse Apfel? Gibt es die bereits fertig unter Greenfoot oder hast Du die gemacht?
    (Bin gerade selbst am rumprobieren und beginne momentan mit dem ReaktorRobot aus bw…)
    Viele Grüße
    Christian

  10. C.P.

    Uh. Hab gerade greenfoot geöffnet, nachdem ich den Kommentar hier abgeschickt habe. *schäm* Und meine Frage scheint gelöst: greenfoot stellt ja alles zur Verfügung. Toll.
    Ziehe die Anfrage zurück. Die herzlichen Wünsche bleiben.
    Vg C.

  11. Hallo C.P., du hast es ja schon herausgefunden. Ich habe aber auch alles Material in drei teachSHARE-Kurse gepackt, das da oben ist im Prinzip der erste Kurs. (Zu teachSHARE und dort „Thomas Rau“ ins Suchfeld eingeben.) Ob der Kurs noch funktioniert, weiß ich nicht, da sind auch Quizaufgaben und alles mögliche drin, so etwas ist ja gerne mal instabil. Aber die Greenfoot-Projektdateien sind auch alle drin, die kannst du ja anschauen. Viele Grüße und Dank für die Wünsche, ich werde langsam sehr aufgeregt.

  12. Christoph Thiele

    Lieber Thomas,

    vielen Dank für das Teilen deines Materials! Der Kurs besteht noch und ich werde mich dort demnächst auch inspirieren lassen, habe nämlich in der 9. Klasse dasselbe Problem: Zu 100% war ich noch nie zufrieden, dein Material sieht aber sehr vielversprechend aus! Dieses Jahr testen wir die Online-IDE und meine 10. Klasse findet diese deutlich besser als Greenfoot. Schauen wir mal, wie das in der 9. Klasse läuft.

    Liebe Grüße und viel Erfolg an der neuen Schule,
    Christoph (ehemaliger Student einer deiner LMU-Kurse)

  13. Lieber Christoph, das freut mich! (Und mit der 9. und 10. hadern wir hier auch noch. Irgendwie ist es schwieriger, als ich gedacht hätte, im Gegensatz zum G8 früher.)

  14. […] der Mindmap in diesem Blogeintrag ist eine Mebis-Lernlandkarte […]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert