Zum Ende der 11. Jahrgangsstufe müssen die Schüler im Informatik-Kurs an einem Projekt arbeiten. Dabei sollen die im Laufe des Jahres gelernten Datenstrukturen (Listen, Bäume) ebenso verwendet werden wie eine SQL-Datenbank, ansonsten ist man thematisch frei. Vorgeschlagen sind Sachen wie Reiseauskunft oder Kontoverwaltung, meine Schüler wollten etwas anderes machen.
Ich hatte zwei Gruppen. Die erste entwickelte ihr Kriegergame weiter, entstanden aus einer einfachen Übung zur Vererbung am Schuljahresanfang. Als Spiel simpel: zwei Rollenspielfiguren rüsten sich aus und hauen dann mit verschiedenen Methoden abwechseln aufeinander ein, bis einer verloren hat. Der Gewinner kriegt Geld und Erfahrungspunkte und kann sich mehr Ausrüstung kaufen; jeder Benutzer kann mehrere Spielfiguren haben, deren aktueller Zustand (Geld, Ausrüstung) in einer Datenbank gespeichert wird.
Kriegergame:
20 Klassen, davon 5 Interfaces
172 KB
~6190 Programmzeilen (2262 + GUI 3928), einschließlich javadoc und Leerzeilen
Programmiert wurde in Java in der Entwicklungsumgebung Eclipse; hier die grafische Darstellung der Klassen aus BlueJ:

Das Menü:

Der Kampf:

Der Shop:

Es gibt 5 verschiedene Charakterklassen (Hunter, Lich, Mage, Paladin, Tank), jeweils männlich oder weiblich; Ausrüstungsgegenstände; zum Teil animierte Angriffe, alles liebevoll grafisch aufbereitet. Überhaupt hat es Schülern die Grafik angetan, der größte Teil der Programmierarbeit entfiel auf die aufwendige Benutzeroberfläche. Mich selbst interessiert die am wenigsten, und fitzelig zu programmieren ist sie auch. Aber wenn’s Spaß macht.
Die andere Gruppe programmierte das Quiz „Wer wird Abiturient?“:
Quiz:
13 Klassen, davon 5 Interfaces
101 KB
~2863 Programmzeilen (1283 + GUI 1580), einschließlich javadoc und Leerzeilen
Auch hier wurde mit Eclipse gearbeitet; ein Überblick über die Klassen aus BlueJ:

Das Menü:

Eine erste Frage:

Nach den ersten sehr einfachen Fragen verlässt man die Grundschule und kann sich durch immer schwerere Fragen bis zum Abitur hocharbeiten. Die Fragen und Antworten und die Highscore-Liste sind jeweils in einer Datenbank gespeichert.
Bei beiden Projekten wurde mit den Entwurfsmustern Model-View-Controller und Beobachter gearbeitet. Insgesamt hatten die Schüler etwa neun Wochen Zeit, glaube ich.
Merken:
- Je mehr Zeit man für das Projekt hat, desto besser. Wir hätten alle noch lange daran herumarbeiten können und wollen, ein paar erkannte Fehler sind noch drin und unerkannte sowieso. Eigentlich ist so etwas nichts für die letzten Wochen im Schuljahr, das müsste ein eigenes P-Seminar sein.
- Das Arbeiten mit Datenbanken ist lästig. Zuerst hatte ich eine Datenbank im Web (wenn schon, denn schon), so dass die Schüler auch zu Hause daran arbeiten konnten. Das wäre für die Spiele auch schön gewesen, da es dadurch eine zentrale Benutzerverwaltung und eine zentrale Highscore-Liste gegeben hätte. Aber wenn man das Programm weitergibt, sind ja im Java-Quellcode die SQL-Zugangsdaten enthalten, und die will man nun mal nicht öffentlich haben. (Aus dem Bytecode wieder lesbaren Quellcode zu generieren, ist wohl recht leicht, wenn man nicht zusätzliche Verschlüsselungsschritte unternimmt.)
Also hätte ein Java-Client auf den Server gemusst, der die Zugangsdaten verwaltet, nur dass bei mir kein Java läuft. Also dann doch eine lokal gespeicherte Datenbank. Microsoft Access ging recht schnell auch wenn manche Java-Versionen den Treiber bereits mitbringen, andere nicht. Einen Treiber für Open Office Base zu finden, dauerte lange, gelang aber doch. Nur dass das Open-Office-Format ein Zip-Format ist, auf dem Java nicht unmittelbar arbeiten kann – also müsste die .odb-Datei erst entpackt, dann bearbeitet, dann wieder gepackt werden, weil man nur im gepackten Zustand dann wieder mit Open-Office-Base darauf zugreifen kann. - Ich muss mir noch viel öfter Entwürfe zeigen lassen. Inzwischen ist StarUML auf unseren Rechnern installiert, damit geht das besser. Gefahr und Versuchung sind groß, dann doch einfach mal drauflos zu programmieren. Also: mehr Lenkung vor den Programmierphasen. Aber diese Sammelstunden kosten wieder Zeit.
- Spiele sind eine gute Idee. Da kommen grafische Fähigkeiten zum Einsatz, und wer nicht gerne programmiert, kann Quizfragen heraussuchen und in die SQL-Datei eintippen. Irgendwas ist für jeden dabei.
- Es ist ein fruchtloses Unterfangen, Schüler dazu bringen zu wollen, sich weniger auf die grafische Benutzeroberfläche zu konzentrieren.
- Wichtig für die Arbeitsteilung: die Aufgaben müssen irgendwo im Web liegen, und die Schüler müssen sie selbst verwalten. Projektplanungssoftware wäre schön, aber es geht auch mit einem gemeinsamen GoogleDocs-Dokument. (Schön, beim Mitlesen zwischendrin so Mitteilungen zu finden wie: !!Wichtig: Die Itemnamen dürfen maximal so lang sein wie „Sichel des Unterweltherschers“!!

- Noten: Noten gab es keine darauf. Ich kann bei zwei derartig umfangreichen Projekten als nicht wirklich eingebundener Lehrer nicht mehr sinnvoll benoten. Eine Gesamtnote wäre möglich, die sich die Schüler dann untereinander aufteilen. Aber bei abiturrelevanten Noten wäre ich da sehr vorsichtig, am Ende führt das noch zu Streit. Aber es geht ja auch wunderbar ohne Noten.
Nachtrag: Jetzt auch als Video.
(Fortsetzung bei Youtube.)
Schreibe einen Kommentar