Programmieraufgabe 115: Game of life

Auf der Suche nach einer Programmierübung zu 2D-Arrays ist mir wieder das “Game of life” von Stanisław Marcin Ulam eingefallen. Ulam dürfte dem ein oder anderen vielleicht bekannt sein über dessen Ulam-Funktion (auch Collatz-Problem), die ich etliche Male im Unterricht besprochen habe. Überhaupt ist meiner Meinung nach Ulam eine spannende Persönlichkeit, denn neben vielen seiner mathematischen Erkenntnisse, die problemlos im Unterricht behandelt werden können (Monte-Carlo-Methode) war er leider auch maßgeblich an der Entwicklung der Atombombe beteiligt, die dann allerdings wiederum zur Idee des nuklearen Pulsantriebes führte, die in etlichen Sci-Fi-Geschichten aufgegriffen wird.

Warum also nun Game of life? Ganz einfach: Mein Problem ist sehr häufig, dass ein zweidimensionales Array wie beispielsweise int[][] zahlen = new int[6][4] als eine rechteckige Tabelle der Form 6 Spalten und 4 Reihen verstanden wird. Leider stimmt das aber nicht. Zumindest nicht in Java und das ist immer noch die Sprache, die ich im Unterricht benutze.

Die Zeile int[][] zahlen = new int[6][4] ; erzeugt viel mehr eine Tabelle mit 6 Reihen und 4 Spalten. Und da häufig mit geschachtelten for-Schleifen gearbeitet wird und  Anweisungen der Art zahlen[x][y] = 7; auftreten, gibt es sehr häufig ArrayOutOfBoundsExceptions. Bei quadratischen 2D-Arrays gibt es das Problem nicht, aber bei rechteckigen. Und um das Arbeiten mit 2D-Arrays zu üben, ist die Aufgabe zu Game of life auf einem nicht-quadratischen Feld.

Aufgabe

Erstelle ein Programm, das bildschirmfüllend das Game of life von Stanislaw Ulam umsetzt.

Lösung: Bei der Lösung ist noch zusätzlich eine Funktion enthalten, um das Programm anzuhalten und zu starten (Tastendruck) und mit der Maus aktive Zellen zu ergänzen (nur bei gestoppter Anzeige). GameOfLife

Programmieraufgabe 114

Da es in einer meiner fortgeschrittenen Klassen mal zu wenig Schüler gab, um mit dem Unterrichtsstoff fortzufahren, haben wir zusammen Pril-Blumen in processing umgesetzt. War ganz spannend, da sonst eher ungewöhnliche Funktionen wie translate(), rotate() dran kamen. Auch die Datenstruktur Stack wurde benutzt und mal wieder das Bogenmaß.

Aufgabe

Schreibe ein Programm, dass auf Mausklick eine Pril-Blume mit zufälliger Größe und zufälliger Farbe generiert.

Ausnahmsweise auch mal wieder eine Lösung, damit meine fehlenden Schüler den Code auch haben: Prilblume

chatGPT unterstützte Unterrichtsvorbereitung

Meine erste Unterrichtsstunde, die ich mit Hilfe der KI chatGPT erzeugt habe. Das Thema war binäre Suchbäume in der Jahrgangsstufe Q11 in Bayern. Die üblichen Schritte Grundwissen->Kontrolle->Anwendung habe ich mit Hilfe der KI generieren lassen, nachdem ich für mich zwei passenden Internetseiten gefunden hatte. Diese hat die KI nicht gefunden. Ich denke aber, dass bei einer Kopplung von KIs mit Suchmaschinen, wie das bald der Fall sein wird, noch problemloser wird.

Vorab schon mal das Ergebnisdokument: Binärbäume aus KI. Es ist bewusst wenig bearbeitet, um zu sehen, wie viel Arbeit noch in die Formatierung geht. Und das ist dann doch einiges, denn später habe ich es noch 1 Stunde überarbeitet, Fragen ergänzt etc.

Jetzt zu den Prompts, die ich gestellt, aber nicht alle genutzt habe und was mir so durch den Kopf ging:

  1. Schreibe eine inhaltliche Zusammenfassung von ungefähr 200 Wörtern von folgender Internetseite: https://mathigon.org/course/graph-theory/introduction
    Darauf bekam ich leider nur eine Metabeschreibung der Seite, also um was es auf der Seite geht. Wenig hilfreich. Also nächster Versuch.
  2. Erstelle einen Lückentext zu der Seite https://mathigon.org/course/graph-theory/introduction , um die wichtigsten Fachbegriffe abzuprüfen.
    Der Text hatte nur drei uninteressante Lücken. Ich hätte die gewünschten Fachbegriffe wahrscheinlich eingeben können, aber das wollte ich nicht. Wofür habe ich eine KI.
  3. Erstelle einen Multiple-Choice-Test mit 20 Fragen inklusive der Antworten zu der Internetseite https://de.wikipedia.org/wiki/Bin%C3%A4rbaum
    Das hat sehr viel besser geklappt, aber 20 Fragen waren wohl zu viel und es wurde mittendrin abgebrochen. Also habe ich die Fragen genauer formuliert:
  4. Erstelle einen Multiple-Choice-Test mit 5 Fragen inklusive der Antworten zum Thema binärer Suchbaum auf Basis der Internetseite https://de.wikipedia.org/wiki/Bin%C3%A4rbaum .
    Hat ordentlich geklappt, die Fragen finden sich in dem Dokument. Es fehlen noch Durchläufe:
  5. Erstelle einen Multiple-Choice-Test mit 5 Fragen inklusive der Antworten zum Thema Durchläufe in Binärbäumen basierend auf der Internetseite https://de.wikipedia.org/wiki/Bin%C3%A4rbaum .
    Auch das hat gut geklappt. Fehlen noch Beispielbäume.
  6. Erzeuge 3 binäre Suchbäume mit 10 bis 15 Knoten an denen Schüler die drei Durchlaufarten bei binären Bäumen üben können.
    Das hat natürlich nur bedingt geklappt, da er nicht formatieren oder Grafiken erzeugen kann. Es war also händisches Formatieren gefragt. Aber dabei bin ich nochmal über die Vorschläge gegangen und habe auch die ursprüngliche Frage noch angepasst.
    Fehlt noch die praktische Umsetzung – mit processing natürlich.
  7. Erstelle eine Programmieraufgabe zum Thema binärer Suchbaum mit Lösung in der IDE processing.
    Aufgabe: Baue einen binären Suchbaum, bei dem der Benutzer Zahlen eingeben kann, um den Baum zu füllen. Nachdem der Baum gefüllt wurde, soll der Benutzer die Möglichkeit haben, nach einer bestimmten Zahl zu suchen. Wenn die Zahl gefunden wurde, soll das Programm “Gefunden!” ausgeben, andernfalls soll es “Nicht gefunden!” ausgeben.
    Die Aufgabe ist gut – aber die Lösung klappt nicht. Daher die Transferaufgabe: Korrigiere den Lösungsvorschlag der KI.
    Anbei die Lösung der KI: KI_falsche_Loesung_Binaerbaum

Insgesamt bin ich mit der Lösung zufrieden, auch wenn es noch Luft nach oben gibt. Ich bin gespannt, wie es weiter gehen wird. Aber hilfreich war es schon mal.

Schlussbemerkung vom 9.2.23: So schön, wie die Internetseite mathigon war, binäre Suchbäume werden leider nicht behandelt. Ich habe daher die Quelle für die binären Suchbäume geändert auf http://www.matheprisma.uni-wuppertal.de/Module/BinSuch/index.htm geändert.

 

Durch die weitere Nutzung der Seite (Scrollen, Navigieren) stimmen Sie der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen