TCP (Transmission Control Protocol) im Spiel

Der Computer Science Field Guide der Universität von Canterbury (New Zealand) ist eine schöne Quelle interaktiven Materials für den Informatikunterricht. In der 12. Jahrgangsstufe habe ich das TCP-Protokoll mit einem Spiel eingeführt, das in Kapitel 15 (“alles über Netzwerkprotokolle”) gezeigt wird: Packet Attack.

Zugegeben, das ist kein Spiel im eigentlichen Sinn, eher ein kleines Rollenspiel mit typischen Spiel-Topoi – man kann etwas abschießen, was vorüberfliegt, und zwar Informationspakete in Form der einzelnen Buchstaben einer Nachricht. Nach und nach wird der Transport immer sicherer gemacht, es gibt Schutzschilde (Prüfsummen), Nummerierung der Pakete (so dass Verzögerungen ausgegelichen und fehlende Pakete erkannt werden), Bestätigungen über korrekte oder fehlende Ankunft der Pakete, und Nachsenden von nicht ankommenden Paketen:

packet_attack

Link: http://www.csfieldguide.org.nz/en/interactives/packet-attack/index.html

Fröhliches Unterrichten

In der zweiten Doppelstunde heute, nach einer kurzen Pause, war ich immer noch voll Adrenalin. Dabei lief die Stunde vorher sehr gut und besser als erwaret: Informatikunterricht in der 10. Jahrgangsstufe ist immer knifflig. Dazu noch auf Englisch, und dazu noch nach zwei Wochen Pause, vor denen ebenfalls zwei Wochen Pause waren, und davor auch zwei Wochen Pause. (Mittwochs gab es schon viele Feier- und Wandertage.)

Als ich von einem Gerücht hörte, dass ich vielleicht eine Ex – eine unangekündigte Prüfung – schreiben würde, war ich beruhigt: die nehmen das Fach also immer noch ernst und haben sich zumindest halbwegs darauf vorbereitet. Und ich hatte mich auch gut vorbereitet, wie sich herausstellte – drei Arbeitsblätter, aufeinander aufbauend, in individueller Geschwindigkeit zu bearbeiten, nicht zu schwer, mit (Teil-)Lösungen auf der Rückseite, ein positiver Füll-Auftrag am Ende: Wir programmieren ein Memory-Spiel, und nach dem Anlegen eines Gerüsts in Java sollten sich die Schüler und Schülerinnen Bilddateien dafür heraussuchen. Wenn man’s nur immer vorher wüsste. Aber eben auch so eine gelungene Stunde ist aufregend für mich: Zum einen bin ich ständig beschäftigt, bei kleinen technischen Fragen zu helfen, zum anderen ist es aufregend schön, dabei zuzusehen, wie etwas funktioniert – das freut die Schüler und dann mich auch. Jetzt ist natürlich wirklich bald eine Ex fällig, mal sehen, wie ich danach klinge.

Sonstige Nachrichten: Thomas Kubahn war es, glaube ich, der mir mal Martin Fix, Texte schreiben. Schreibprozesse im Deutschunterricht empfohlen hat. Das ist ein Buch zur Schreibdidaktik, das ich gerade quer lese, mal vorne ein bisschen, mal hinten, wird sicher produktiv umgesetzt. In der Literatur dort bin ich gestoßen auf Martin Fix, Hartmut Melenk, Schreiben zu Texten – Schreiben zu Bildimpulsen. Das Ludwigsburger Aufsatzkorpus. Mit 2300 Schülertexten, Befragungsdaten und Bewertungen auf CD-Rom aus dem Jahr 2000. Der Untertitel sagt eigentlich schon alles, und hoffentlich hält die CD auch das Versprechen: Was für ein schöner Fundus, um Schülern Texte zum Überarbeiten und verbessern zu geben! (Es handelt sich laut Klappentext um transkribierte Schüleraufsätze aus 8. Klassen aus Hauptschule, Realschule und Gymnasiums.)

Fortbildung LehrplanPLUS

Heute war ich den ganzen Tag auf einer Fortbildung für die Fachbetreuer Deutsch. Es ging um die anstehende Einführung des neuen Lehrplans (https://www.lehrplanplus.bayern.de). Wie man der Webseite entnehmen kann, ist sie für alle Schularten in Bayern gedacht; ob eine davon federführend war, weiß ich nicht – aber wie kann man heutzutage noch ernsthaft auf einer hochoffiziellen Schulwebseite Comic Sans verwenden? Um Tafelschrift nachzuahmen?

Was der Unterschied zwischen den Kompetenzen “Texte planen und schreiben” und “über Schreibfertigkeiten bzw. ‑fähigkeiten verfügen” wurde mir zwar in einem Satz erklärt, aber nicht so, dass ich ihn verstanden hätte. Es geht jedenfalls nicht um “richtig schreiben”, das ist eine dritte Kompetenz.

Manche der Änderungen sind nur kosmetisch, muss halt sein. Statt “Beachten von Umgangsformen und Gesprächsregeln: zuhören” heißt es jetzt ausführlicher: Die Schülerinnen und Schüler “hören ihren Gesprächspartnern aufmerksam zu, um Aussage und Intention zu erfassen und Wertschätzung auszudrücken”.
Andere Änderungen haben tatsächlich Folgen, aber über die muss ich noch nachdenken.

Schwierig ist das weiterhin mit dem Adressatenbezug und der Kontextuierung von Aufsätzen. Das beste ist sicher, echte Schreibanlässe aufzugreifen, wenn sie sich bieten. Vermeiden würde ich selber das, was ich vor allem vom Englischunterricht her kenne: Stell dir vor, du schreibst für die Schülerzeitung.… Du bist Austauschschüler in England und erklärst deinen neuen Mitschülern… Für die Homepage der Schule schreibst du einen Artikel… Du schreibst einen Brief an die Schulleitung… da fühlen sich die Schüler doch veräppelt. Nein, entweder ganz ohne simulierten Adressaten (klassische Inhaltsangabe, Erörterung) oder die Schülerinnen sollen sich in die Rolle von erwachsenen Schreibern versetzen. Bei Erzählungen in der Unterstufe verlangen wir auch nicht, dass die Schüler erzählen, was ihnen - in den Ferien etwa – Spannendes widerfahren ist. Und dann sollen sie auch nicht ihren Eltern gegenüber schriftlich begründen müssen, warum sie mehr Taschengeld brauchen.

Bei einigen Kollegen war der Wunsch nach mehr Austausch da, das ging aber nicht so weit, dass man einen E‑Mail-Verteiler errichten würde; ich habe es gar nicht erst vorgeschlagen. Aber ohne wird’s Austausch nicht geben.

Medien, moderne

Kostenloses WLAN an Schulen im München

Die (städtischen) Schulen in München sollen alle WLAN kriegen, und zwar ab Januar, erst einmal mit drei Access Points pro Schule. Hat der Stadtrat beschlossen. Klar: Die Schulen dürfen das ablehnen, wenn sie nicht wollen, niemand wird gezwungen. Anders als es immer wieder heißt gibt es in Bayern kein Handy-Verbot an Schulen, nur ausgeschaltet müssen sie sein – außer es geht um schulische Dinge, und selbst für außerschulische Zwecke darf ein Lehrer das (natrülich) erlauben.

Zeit wird’s, wenn man mich fragt. Ich hätte nicht geglaubt, dass das so schnell geht, auch wenn das nur der Anfang ist. Anders als bei Sprachlaboren und Smartboards glaube ich nicht, dass das Internet nur eine Mode ist.

An meiner Schule wird das noch dauern.

BYOD ist verantwortungsvoll

So schreibt die Projektschule Goldau, eine Schweizer Kooperation zwischen Schule und Pädagogischer Hochschule. BYOD heißt: “Bring your own device”, also das Schüler ihren eigene Computer (Handy, Tablet, Laptop) benutzen. Die Alternative sind Computerräume (von denen es in Zukunft weniger geben wird als heute, denke ich) und von der Schule gestellte Geräte (als Leih- oder Leasinggeräte oder wie auch immer). Letztere haben große Vor‑, aber noch mehr Nachteile.

Der Gedanke hinter dem Blogeintrag: Die Kinder und Jugendlichen gehen eh mit den Medien um und nutzen sie. Und das mehr oder weniger angeleitet oder verantwortungsvoll. Im Moment kriegen die Kinder kleine Hochleistungsrechner mit Kamera und Mikrofon und werden damit allein gelassen. Man sollte ihnen lieber zeigen, wie man damit umgeht. (Neulich wieder Kollegen gehört, die glauben, ein Handy wäre zum Telefonieren da. Ts.) – Das heißt nicht, dass ich für ein Fach Medienkunde bin, sehr im Gegenteil. Wir haben ja auch kein Fach Bücher- und Füllerkunde.

Linux auf dem Schülerrechner

Sechste Klasse diese Woche, ein Schüler bringt seinen Linux-Laptop mit, weil ich gesagt habe, dass EOS (ein in der Unterstufe viel genutztes und bei Schülern beliebtes Programm) nicht nur unter Windows, sondern auch unter Linux läuft. Erst mal geht es nicht, weil auf dem Schülerrechner das Programm “Wine” nicht installiert ist, also tippe ich auf der Kommandozeile “wine” und kriege das Angebot, mit ein paar Befehlswörtern (sudo apt-get…) Wine nachzuinstallieren. Freudestrahlend sagte er mir am nächsten Tag, dass das zuhause geklappt hat und EOS jetzt auch bei ihm läuft. Und da sage einer, dass Linux schwer zu bedienen sei.

Rollenspielen 2015

Rollenspiel_2015_Rom

Die letzten dreieinhalb Tage war ich wieder Rollenspielen, so wie seit etlichen Jahren immer um dieser Zeit. Pen & Paper, Call of Cthulhu: Inzwischen schreiben wir das Jahr 1939. Wir trafen uns in St. Paul, Minnesota, um von dort aus nach Rom aufzubrechen. Ein Brief eines Kardinals, mit dem uns ein gemeinsamer Bekannter aus vorhergehenden Spielen verband, brauchte unsere Hilfe.
Leider war der Kardinal genauso falsch wie seine Absichten. Ein alter Feind von der SS agierte im Hintergrund, und um herauszufinden, was er eigentlich im Schilde hatte, verfolgten wir die Spuren seiner Aktivitäten sozusagen rückwärts. Zuerst nach St. Gallen, dann wieder Rom, schließlich Marienburg in der Nähe von Danzig. Die Marienburg, der größte Backsteinbau Europas, ist die ehemalige Ordensburg des Deutschen Ordens, und in dessen Geschichte hatten wir herumgewühlt. Marienburg lag 1939 in der Provinz Ostpreußen, vom übrigen deutschen Reich durch einen polnischen Korridor getrennt. Und natürlich schickte uns der Spielleiter nicht zufällig im September 1939 dorthin: Da überfiel Deutschland Polen.

Als die Kampagne vor 6 Jahren begann, ahnte ich nicht, dass das ein Geographie- und Geschichtskurs werden würde. Mit Kopien historischer Bahntickets, in Originalgröße ausgedruckten historischen Landkarten, Grundrissen, Fotos, Biografien, Hintergrundmaterial. Damit wir auch wissen, wie die Straßenbahnen 1939 in Rom fuhren und wie groß St. Gallen war und wie es im Vatikan aussah. Der ebenfalls griffbereite zweibändige Baedeker für Rom war allerdings noch eine Ausgabe von vor dem ersten Weltkrieg.

Nachtrag: Mein liebstes Rätsel betraf vier lateinische Inschriften, deren Inhalt wir herausfinden mussten. Meine Spielfigur konnte als einzige Latein, aber etliche Würfe misslangen, so dass Teile unübersetzt blieben, darunter der wichtigste. Auch die außerspielweltlichen Lateinkenntnisse der Spielerrunde reichten nicht aus für diese Stelle. Kunststück, nach einigem Herumknoben – es war auch schon spät nachts – erkannten wir, dass das der lateinische Name einer polnischen Stadt war, die wir unter deren deutschen Namen kannten.

Rückblick:
2007 – nur eine Zeile nebenbei.
2008 – etwas ausführlicher, mit Bild.
2009 – nur eine Zeile nebenbei.
2010 – einigermaßen ausführlich.
2011 – etwas Text, zumindest mit Bild.
2012 – nur ein Absatz.
2013 – ausführlicher.
2014 – in Afrika, mit Telegramm.

Games for Thinkers

“Games for Thinkers” ist eine kleine amerikanische Firma, die es – ich müsste recherchieren – vielleicht seit den mittleren 1960er Jahren gibt, und die eine kleine – sehr kleine – Auswahl an Spielen vertreibt. Der Kopf dahinter und Entwickler oder Co-Entwickler aller oder zumindest der meisten Spiele ist Layman E. Allen, inzwischen emeritierter Jura-Professor an der Universität von Michigan.
Die Spiele sind sich alle ein bisschen ähnlich: Sie sind komplex und kompliziert und haben eine Basis in den exakten Wissenschaften, die Anleitungen lesen sich wie trockenste Gesetzestexte und sind ebenso nüchtern gesetzt, und es lassen sich kaum Mitspieler dafür finden. Und doch…

wff_games_for_thinkers

Das Flagschiff von Games for Thinkers ist WFF’N PROOF. Das habe ich – ebenso wie das spielbarere Eleusis – kennengelernt als Teenager in der Stadtteilbibliothek von Haunstetten (Augsburg) in Willy Hochkeppels ausgezeichnetem Denken als Spiel (1970, tolles Buch). Mit neunzehn oder zwanzig Jahren hatte ich danach eine kurze Phase, in der ich Leute kannte, die das Spiel mit mir spielen würden. Und mit 48 Jahren, vor ein paar Monaten, habe ich das tatsächlich mit neuen Leuten gespielt, und wir haben sogar gut gespielt.

Dazwischen hatte ich mir mal die meisten Spiele von Games for Thinkers besorgt, so als Kuriosiät. Zumindest drei davon will ich hier einmal vorstellen.

WFF’N PROOF

(Längerer Blogeintrag dazu.) Bei diesem Spiel geht es um logische Schlüsse. Ein PROOF besteht aus einem zu beweisenden logischen Ausdruck, einer Reihe von Prämissen, einer Reihe von verwendeten Regeln und Prinzipien (Regeln für Konjunktion und Disjunktion und Negation, de Morgan, etc.) und letztlich der Ableitung des Ergebnisses aus den Prämissen anhand der Regeln.

Die Spieler werfen eine größere Anzahl an Würfeln mit Symbolen. Ein Spieler legt einen zu beweisenden Ausdruck, und reihum legen danach alle Spieler einzelne Zeichen (in Form der Würfel) auf Bereiche der Spielfläche, die die Zeichen als optional oder verpflichtend markieren. Aus diesem Vorrat müssen die Spieler dann Prämissen bilden und (die Namen von gegebenen) Regeln bilden, die später in einem Beweise des Zielausdrucks verwendet werden. Verloren hat, wer übersieht, dass mit dem vorhanden Vorrat bald ein fertiger Beweis gebildet werden kann (so dass man stattdessen besser den später zu erbringenden Beweis verkompliziert); verloren hat ebenfalls, wer seinen Würfel so legt, dass mit dem vorhandenen Material kein gültiger Beweis mehr gelegt werden kann.

Die Spielregeln sehen typographisch alle so aus:

wffnproof_small

Die Spiele von Games for Thinkers werden als “autotelisch” verkauft, also als selbstmotivierend, so dass die Schüler anhand der Spiele quasi automatisch und freiwillig lernen. Denn ja, die Spiele waren zumindest ursprünglich für den Einsatz im Klassenzimmer gedacht, so dass man dafür etwa das Autotelic Learning Center kaufen konnt, mit jeweils 4 Exemplaren von 7 der bekanntesten Games-for-Thinkers-Spiele. Ich bin da ja eher skeptisch, was diese wunderbare Anziehungskraft auf Schüler betrifft. Mich hätte man damit gekriegt, zugegeben, aber das möchte ich nicht verallgemeiner.

Queries’n Theories

Dieses Spiel ist eine Art fortgeschrittenes Mastermind/Superhirn. Ein Spieler definiert eine Sprache, und die anderen Spieler versuchen die Regeln für diese Sprache herauszufinden. Konkret sieht das so aus: Es gibt grundsätzlich nur das Alphabet B, G, P, R, Y (jeder Buchstabe repräsentiert durch einen farbigen Chip: Blue, Green, Purple, Red und Yellow). Eine Sprache könnte zum Beispiel sein: Alle Wörter, die mit B anfangen. Oder: Alle Wörter, in denen kein Y vorkommt. Oder: Alle Wörter, die mit RR anfangen und mit G aufhören.

Mit Hilfe dieser Spielfläche definiert ein Spieler – in der Regel verdeckt, jedenfalls nach ein Einstiegsübungen – eine Sprache. Dafür gibt es links eine Fläche mit Basic Sentences, also Zeichenketten, die auf jeden Fall zur Sprache gehören:

queries_n_theories_1

Im Beispiel oben gehören die – sehr kurzen – Wörter GY und R zur definierten Sprache.

Außerdem gibt es die Ersetzungsregeln, die man auf der rechten Seite der Spielfläche festlegt. Davon kann es bis zu 4 geben, mit bis zu 5 verschiedenen Farben (wie viele es jeweils genau sind, das hängt vom vorher vereinbarten Schwierigkeitsgrad ab):

queries_n_theories_2

Zusammen mit den Basic Sentences gehören also folgende Beispiele ebenfalls zu der durch die Spielfläche festgelegten Sprache:

  1. GY, R (Basic Sentences)
  2. GRY (Basic Sentence 1 + Regel 1)
  3. GRRY (Zeile 2 + Regel 1)
  4. GRRRY (Zeile 3 + Regel 1)
  5. GRRRRY (Zeile 4 + Regel 1)
  6. GYRRRY (Zeile 5 + Regel 2)
  7. GRYRRRY (Zeile 6 + Regel 1)

Die Spieler legen probeweise Zeichenkette und sagen je nach Variante voraus, ob der Regelgeber sie als Teil der Sprache akzeptieren wird oder nicht. Man kann das auch als Experiment ansehen, mit dessen Hilfe man den Regeln auf die Spur kommt. Wie das mit der Punktezählung genau aussieht, weiß ich nicht, dazu müsste ich wohl eine regelmäßige Spielerrunde auftreiben.

Mathematisch steckt hinter den bunten Chips ein Semi-Thue-System. Das kann einem bei der theoretischen Informatik begegnen. Anders als bei formalen Sprachen gibt es hier keine Unterscheidung von Terminalen und Nichtterminalen. Das Wortproblem ist bei Semi-Thue-Systemen grundsätzlich unentscheidbar; bei Queries ’n Theories geht das aber sehr wohl: Zum einen sind die Anzahl und der Umfang der Regeln beschränkt, zum anderen gilt eine Zusatzregel, die aus dem Design der Spielfläche nicht hervorgeht – dass nämlich rechts vom Pfeil einer Ersetzungsregel nie weniger Chips liegen dürfen als links davon. Das macht das ganze Wortproblem schon viel einfacher. (So ähnlich wie hier in einem Blogeintrag zu kontextsensitiven Sprachen.)

PROPAGANDA

Dieses Spiel fällt etwas aus dem Games-for-Thinkers-Rahmen. Es gibt keine Würfel und keine Spielfläche. Dafür gibt es eine Liste von argumentativen Tricks und Manipulationstechniken, ganz im Sinn von Schopenhauers eristischer Dialektik. Knapp 60 davon sind in sechs Bereiche eingeteilt: Techniken der Selbsttäuschung, der Sprache, der Irrelevanz, der Form, und das Ausnutzen menschlicher Schwächen sowie Ausweichmanöver. Das sind Klassiker dabei wie ad hominem, ad consequentiam, Wunschdenken, aber auch Zahlenspielerei, Metaphorik, Slogans, unnötige Fachsprache, Mehrdeutigkeit.

Das eigentliche Spiel besteht aus 40 Karten mit jeweils sechs Beispielen aus den sechs Kategorien. Ein Spieler wählt ein Beispiel und verständigt sich mit den Mitspielern darüber, zu welcher Technik es gehört. Wie das Spiel mit Punkten und so weiter geht, das weiß ich nicht mehr – man muss voraussagen, was die anderen entscheiden, oder die anderen überzeugen, irgend so etwas, aber das ist auch nicht wichtig. Wichtig ist vielmehr die schöne Sammlung an Beispielen. Irgendwann möchte ich so etwas mal fürs Erörtern im Deutschunterricht nutzen, aber mir ist noch nichts eingefallen.

Weitere Spiele

LinguiSHTIK: Ein sehr viel einfacheres Spiel als die anderen Games-for-Thinkers-Spiele, wenn auch das typische Spielprinzip erkennbar ist: Aus einem Satz von gewürfelten Buchstaben müssen die Spieler ein – im Endeffekt möglichst kompliziertes – Wort legen. Wieder werden reihum manche Buchstaben als optional, verboten oder verpflichtend zu legen markiert.

ON-WORDS: Sieht mir zu kompliziert aus. Es gibt wieder Würfel, wieder eine Spielfläche, um Elemente als erlaubt/erforderlich/verboten zu markieren. Die Symbole sind Buchstaben, wenige Ziffern, und vor allem Lautschrift-Symbole – leider nicht die bekannteren internationalen IPA-Symbole, sondern diejenigen, die das American Heritage Dictionary verwendet, also /o͞o/ statt /u:/ oder /ē/ statt /i:/. Mehr weiß ich nicht.

ON-SETS: Kommt in einer deutlich kleineren Plastikschachtel als die anderen Spiele, vielleicht ist das so eine Reiseausgabe. Es gibt wieder eine Reihe von Würfel mit verschiedenen Symbolen (Farben, Ziffern, Symbole aus der Mengenlehre), dazu die übliche Spielfläche mit Ziel und verbotenen/erforderlichen Elementen und ein Stapel Kärtchen mit farbigen Symbolen – mit den Würfeln formt man Bedingungen (“alle Karten mit rot darin und ohne blau”). Mehr weiß ich nicht, sieht aber nicht allzu kompliziert aus.

Ferienreife

Herr_Rau_gar_nicht_schlafend

Das ist noch das vorteilhafteste der Bilder, die Frau Rau letzte Woche von mir gemacht hat, abends, lange vor der Zeit, zu der Erwachsene ins Bett gehen. Ich hatte ja auch nur kurz die Augen zugemacht. Und ja, ich kann so ziemlich überall und in jeder Position schlafen.

Kickstarter: Englisch-Lektüren

Charlotte Dincher, eine bloggende Englischlehrerin, ist unzufrieden mit den vorhanden Lektüren zumindest für den Anfangsunterricht und will selber welche schreiben. Dazu hat sie ein Kickstarter-Projekt “LehrerLieblingsLektüre” ins Leben gerufen.

Kickstarter: Da kann man Projekte vor oder am Anfang der Entwicklung unterstützen, indem man sich finanziell beteiligt. Scheitert das Projekt, krieg man sein Geld zurück, gelingt es, kriegt man die zuvor versprochenen Goodies – meist um so mehr, je mehr man mitfinanziert hat.
Auf der Kickstarter-Seite kann man sich von einer von Charlottes zwei Lektüren das erste Kapitel herunterladen: Text, Vokabelfußnoten, Fragen zum Text, Lehrermaterial (einschließlich Lückentest).

Anders als Charlotte habe ich keine Probleme mit den vorhandenen Lektüren. Ich habe schon länger kein Englisch mehr unterrichtet, aber damals auch schon ab dem ersten Lernjahr Lektüren gelesen, auch im G8, und mit Vergnügen.
Allerdings wünsche ich mir tatsächlich schon lange eine Englisch-Lektüre, mit der ich mehr machen kann: einen Robin-Hood-Dramentext etwa, den man als Hörspiel aufnehmen oder als Schauspiel aufführen kann, das Ergebnis dann auch vielleicht auf die Homepage. Als Audiodatei das ganze von Muttersprachlern gelesen. Am liebsten wäre mir das als Open Educational Resource (OER) unter einer sehr freien Lizenz, aber ich zahle auch Geld dafür, sofern das Material digital und bearbeitbar ist und die Ergebnisse veröffentlicht werden dürfen. Weil ich solche Vorhaben also prinzipiell gut finde, werde ich das Kickstarterprojekt unterstützen – auch wenn ich am Gymnasium in Bayern in der 6. Jahrgangsstufe dann doch lieber mit gemischten Lektüren arbeiten oder Roddy Doyle lesen werde. Charlotte bietet zwar auch an, eine Lektüre nach Wunsch zu schreiben (für 240€), aber so weit geht der Wunsch bei mir noch nicht. Aber interessante Idee.

Subversion mit BlueJ, die Fortsetzung

Ich habe vor ein paar Jahren schon mal über Subversion mit BlueJ geschrieben, inzwischen habe ich das mit Schülern weiter erprobt und mit Peter Brichzin einen Workshop dazu auf der INFOS15 gehalten. Subversion: So heißt ein verbreitetetes System, mit dem verschiedene Autoren gleichzeitig an einem aus vielen Dateien bestehenden Progammierprojekt arbeiten können, so dass jeder jeweils die aktuelle Fassung der anderen Teammitglieder zur Verfügung hat.
Für den Workshop habe ich eine kleine Broschüre gemacht (ich mag Broschüren), hier ist deren Inhalt, falls mal jemand danach sucht.


Teil 1 – Auschecken

Teamarbeits-Menü einschalten

Bevor man den in BlueJ integrierten SVN-Client benutzen kann, muss man ihn frei­schalten. Dazu muss man im Menü unter “Werkzeuge > Einstellungen… > Inter­face” ein Häkchen setzen bei “Teamarbeitswerkzeuge anzeigen”.

Erstmalig ein BlueJ-Projekt aus einem Reposito­ry aus­checken

Es ist egal, ob man an dieser Stelle mit einem bereits geöffneten BlueJ-Projekt arbeitet oder nicht, die neu heruntergeladenen Dateien werden auf jeden Fall als neues, eige­nes BlueJ-Projekt gespeichert.

Nach Auswahl des Menüpunkts “Werkzeuge > Teamarbeit > Arbeitskopie erstel­len…” muss man die Serverangaben eingeben:

svn_anmelden

Das Passwort braucht man bei öffentlichen Repositories nur für das Hochladen; aller­dings verlangt BlueJ auf jeden Fall die Eingabe eines (auch beliebigen) Benutzerna­mens.

Danach kann man sich mit dem Knopf “Anzeigen” die unter dieser Adresse gespei­cherten BlueJ-Projekte zeigen lassen:

svn_projektauswahl

Nach der Auswahl des BlueJ-Projekts, das man herunterladen möchte, wird man gebe­ten, einen Speicherort dafür anzugeben. Das heißt, die Dateien werden auf jeden Fall in einem neuen BlueJ-Projekt gespeichert.

Tipps:

  • Das Auschecken erfolgt üblicherweise nur einmal am Anfang. Da­nach lädt man nicht mehr das ganze Projekt neu vom Server herunter, sondern aktualisiert nur die auf dem Server geänderten Dateien oder fügt eigene Ände­rungen der Version auf dem Server hinzu.
  • Ausnahme: Wenn später einmal irgendetwas mit dem eigenen BlueJ-Projekt nicht funktioniert oder zu kompliziert wird, dann ist es manchmal einfacher, die Datei­en wieder ganz neu vom Server auszuchecken und mit einem neuen BlueJ-Pro­jekt weiterzuarbeiten. Man muss nur daran denken, das alte zu löschen.
  • Fehlerquelle: Beim Speichern reicht ein Laufwerksbuchstabe nicht, man muss einen Ordner angeben, in den dann der BlueJ-Projektordner gespeichert wird. Wenn man den Namen eines bereits existierenden BlueJ-Projekts angibt, kann das dazu führen, dass ein BlueJ-Projekt innerhalb eines anderen gespeichert wird (als package), was alles nur komplizierter macht.

Aufgabe: Checken Sie beliebige Projekte aus dem Server aus, aber auf jeden Fall das BlueJ-Projekt “SVN Aufgabe 1” für den nächsten Schritt.


Teil 2 – Erstes Arbeiten

Benutzername und Passwort eingeben

Checken Sie das BlueJ-Projekt “SVN Aufgabe 1” aus.

Bisher waren Benutzername und Passwort egal, aber ab diesem Zeitpunkt müssen Sie konkrete Daten eingeben. Wählen Sie dazu im Menü “Werkzeuge > Teamarbeit > Teamarbeitseinstellungen…” und ergänzen Sie die fol­genden Informationen:

svn_teamarbeitseinstellungen

Der Benutzer ist „fortbildung“, das Passwort erfahren Sie mündlich.

Aktualisieren (update) und Abgeben (commit)

Aufgabe: Legen Sie in “SVN Aufgabe 1” eine neue Klasse an, die das Interface “Tier” implemen­tiert. Die Klasse “Loewe” kann als Beispiel dienen. Sie machen es sich etwas einfacher, wenn Sie ein exotisches Tier wählen, weil Sie dadurch Konflikte mit anderen Projekt­mitarbeitern vermeiden.

svn_aufgabe1

Schritt 1: Bevor Sie Ihre Klasse hochladen, sollten Sie schauen, ob es inzwischen viel­leicht schon Beiträge anderer Projektmitarbeiter gibt. Wählen Sie dazu im seitlichen Menü unten “Aktualisieren…” (englisch: “Update…”). Wenn inzwischen jemand an­deres die Klasse “Kakapo” angelegt hat (ein flugunfähiger Papagei auf Neuseeland), wird Ih­nen folgender Dialog angezeigt:

svn_aktualisieren_kakapo

Wenn Sie das Aktualisieren bestätigen, wird der Kakapo Ihrem BlueJ-Projekt hinzuge­fügt.

Schritt 2: Laden Sie jetzt Ihre eigenen Änderungen (Ihre Klasse „Pinguin“ zum Beispiel) hoch. Wählen Sie dazu im seitlichen Menü unten “Abgeben…” oder “Commit…” Darauf erscheint eine Liste der von Ihnen geänderten Dateien. Fügen Sie einen Kom­mentar hinzu und geben Sie die Änderungen ab:

svn_abgeben_pinguin

Aufgabe: Führen Sie einige Updates und Commits durch. Wenn Sie auf Konflikte stoßen, ignorieren Sie sie bis zum nächsten Schritt.

Grundsätzliche Reihenfolge beim Arbeiten

Nach dem erstmaligen Auschecken des Projekts sieht das Arbeiten immer so aus:

  1. Update, um zu sehen, ob sich am Server etwas geändert hat.
  2. Eigenen Code ergänzen und testen.
  3. Commit – der findet nur statt, wenn es keine Konflikte mehr gibt.

svn_arbeitszyklus

Tipps und Regeln fürs Arbeiten mit Schülerinnen und Schülern:

  1. Einen Commit nur dann durchführen, wenn alle Klassen im BlueJ-Projekt fehlerfrei übersetzt werden.
  2. Um Konflikte zu vermeiden, sollte klar sein, welches Team oder welche ein­zelne Schülerin für welche Klasse oder Klassen zuständig sind. Und die Schüler müssen die Finger von den Klassen anderer Schüler lassen.
  3. Wenn eine Datei ganz gelöscht wurde, kann sie mit BlueJ nicht mehr aus dem Repository ergänzt werden. Man muss dann das Projekt komplett neu aus­checken und damit weitermachen, oder die fehlende Datei von dort ergänzen.

Teil 3 – Konflikte

Wenn mehrere Bearbeiter unabhängig von einander an einer Klasse arbeiten, kommt es zu einem Konflikt. Das SVN-System kann einfache Konflikte selbstständig auflösen, bei den meisten muss aber ein Benutzer entscheiden, welche der in Konflikt stehenden Versionen gelten soll.

Aufgabe: Checken Sie das Projekt “SVN Aufgabe 2” aus und ergänzen Sie eine noch nicht vorhandene getter- oder setter-Methode für ein Attribut der Klasse “Held”. Führen Sie dann einen Commit durch (bzw. vorher ein eventuell einge­fordertes Update).

Fall 1: Die entstehenden Konflikte lassen sich automatisch lösen. Dann zeigt BlueJ – nach dem Aktualisieren – folgende Meldung, mit der man das automatische Zusammenführen bestätigen kann:

svn_konflikt1

Fall 2: Der Konflikt lässt sich nicht automatisch lösen, weil Attribute der Klasse be­troffen sind oder die Änderungen eine Methode betreffen. Dann meldet BlueJ den Kon­flikt so:

svn_konflikt2

Daraufhin lässt man sich die Konflikte anzeigen. Die in Konflikt stehenden Codestellen werden beide in einem BlueJ-Editorfenster angezeigt. Von den Zeichen «««< bis ======= steht die eine Fassung (die des aktuellen Benutzers), von den Zeichen ======= bis »»»> steht die andere Fassung (die aktuell auf dem Server befindli­che). Der aktuelle Benutzer muss den Konflikt manuell lösen.

svn_konflikt3

Tipp:

  • Im Rahmen eines Workshops sind Konflikte schwer zu lösen: Wenn es einen Kon­flikt gibt, und mehrere Teilnehmer versuchen gleichzeitig, ihn zu lösen, gibt das nur noch mehr Durcheinander.
  • Beim Arbeiten mit Schülerinnen und Schülern ist es besser, wenn sich die Grup­pen auf einzelne Klassen spezialisieren, so dass Konflikte ganz vermieden werden.

Teil 4 – Der Server

Man kann einen SVN-Server lokal im Netz installieren (etwa den Visual SVN Server https://www.visualsvn.com/server/ für Windows), aber eigentlich möchte man einen über das WWW erreichbaren Server. Dafür gibt es verschiedene kostenlose Anbieter, die aber alle das Problem haben, dass a) die Projekte öffentlich einsehbar sind (Vorteil: Keine Registrierung zum Aktualisieren nötig, Nachteil: Urheberrecht und Daten­schutz) und b) die Projektarbeiter alle eine Registrierung brauchen, wenn sie Commits durchführen sollen.
Unsere Projekte sind bei sourceforge.net gehostet. Ein SourceForge-Projekt kann man allerdings nicht so einfach wieder löschen, man muss eine Nachricht an einen Admi­nistrator schicken, der die Löschung einleitet. Die Inhalte des SourceForge-Projekts, also die BlueJ-Projekte, kann man natürlich jederzeit verändern.

Vorgehen:

  1. Registrierung bei SourceForge (einmalig) unter Angabe einer E‑Mail-Adresse und eines Benutzernamens; das Passwort kann frei gewählt werden. Werden für Schüler Dummy-Accounts erstellt, besteht natürlich die Möglichkeit, dass sie E‑Mail und Passwort ändern.

  2. Anmelden bei SourceForge und Anlegen eines neuen Projekts. Dabei enthält die voreingestellte Auswahl als Versionskontrolle nicht Subversion, sondern das jüngere Git. Außerdem kann man wählen, ob man ein Wiki, ein Forum, ein Ticketsystem oder andere Features haben möchte:
    svn_sourceforge

  3. Das SourceForge-Projekt ist zu Beginn ganz leer. Üblicherweise gibt es bei Subversion auf der obersten Ebene die Ordner “branches”, “tags” und “trunk”; nur in letzterem werden die aktuellen Dateien gespeichert. Die anderen Ordner betreffen Subversion-Features, die von BlueJ nicht genutzt werden. Man kann also auf sie verzichten. Dann muss man nur:
    1. Ein neues BlueJ-Projekt anlegen.
    2. “Werkzeuge > Teamarbeit > Projekt gemeinsam nutzen…” auswählen, Benutzername, Passwort und Serveradresse des SourceForge-Projekts eingeben. Das war’s schon.

  4.  Will man dennoch mit den Ordnern “branches”, “tags” und “trunk” arbeiten, etwa um in Zukunft die Möglichkeiten anderer Subversion-Clients zu nutzen, muss man einen externen SVN-Client benutzen; mit BlueJ alleine geht das nicht.
    1. Kommandozeilen-SVN-Client bei Linzux: Die bei SourceForge angegebenen Befehle eingeben.
    2. Mit einem anderen externen SVN-Client (etwa TortoiseSVN) eine temporä­re lokale Kopie des – vorerst noch leeren – Repository anlegen. Dann die drei Order lokal anlegen und auf den Server hochladen („commit“). laden. Danach wird die temporäre Kopie gelöschgt; die Ordner werden nur auf dem Server gebraucht.

Aufgabe: Legen Sie ein neues BlueJ-Projekt an und fügen Sie es mit “Werkzeuge > Teamarbeit > Projekt gemeinsam nutzen…” dem SourceForge-Projekt svn.code.sf.net/p/fortbildung/code/ hinzu.

Tipps:

  • Jeder Projektmitarbeiter braucht einen eigenen Benutzernamen und ein eigenes Passwort, eventuell Dummy-Accounts für Schüler anlegen.
  • Ein möglichst kurzer Projektname erleichtert das Eingeben der Serveradresse in BlueJ.
  • Eine im Repository angelegte Datei (also auch Code) kann man nicht einfach wieder löschen. Grundsätzlich bleiben alle bisherigen Versionen von Textda­teien erhalten – man soll bei Subversion auch auf frühere Versionen zurückgrei­fen können soll, auch wenn BlueJ diese Funktion nicht unterstützt.

Teil 5 – Workflow für die Lehrkraft

Tortoise SVN – Update, Commit

Wenn man als Lehrkraft mehrer Projekte verwalten möchte, ist der in BlueJ integrierte SVN-Client umständlich, es empfiehlt sich die Verwendung eines eigenen SVN-Clients, für Windows z.B. TortoiseSVN (http://tortoisesvn.net/).

Damit kann man z.B. einen Ordner mit verschiedenen gesammelten BlueJ-Projekten mit einem SVN-Repository verknüpfen.

svn_tortoise_verzeichnisse

Nach Belieben markiert man einige der Verzeichnisse darin mit TortoiseSVN als “add to ignore list”, so dass diese Verzeichnisse eben nicht hochgeladen werden. Im Bild lie­gen nur die grünen Verzeichnisse auf dem Server und werden damit synchronisiert.

Man aktualisiert die BlueJ-Projekte jetzt nicht mehr von BlueJ aus (und kann das auch gar nicht), sondern über den eigenen Client, der sich in das Windows-Kontektmenü integriert:

svn_tortoise_update

Das Menü bietet noch weitere Möglichkeiten von Subversion, die für das Arbeiten in der Schule und mit BlueJ aber alle nicht nötig sind:

svn_tortoise_contextmenu

Tipps:

  • Wenn die Lehrkraft mit TortoiseSVN arbeitet, kann sie nicht wie die Schüler mit BlueJ arbeiten. Bei den Schülern hat jedes BlueJ-Projekt seine eigene .svn (ein verstecktes Verzeichnis mit SVN-Daten), bei der Lehrkraft gibt es ein .svn für das Verzeichnis mit den BlueJ-Projekten.
  • Will die Lehrkraft sich ein BlueJ-Projekt aus Schülersicht betrachten, muss sie das Projekt erst aus BlueJ heraus auschecken und kann das daraufhin neu ge­speicherte Projekt dann auch mit BlueJ committen. Das ist dann aber nicht das Projekt im eigentlichen zentralen BlueJ-Ordner des Lehrers.

Tortoise SVN – Eine lokale Kopie des Repository

Ganz am Anfang steht das Anlegen einer lokalen Kopie des Repository:

  • Optional: Legen Sie ein leeres Repository auf einem Server an.
  • Legen Sie ein Verzeichnis an für alle Projekte, die Sie zum Beispiel mit einer Schulklasse nutzen wollen, etwa “Klasse_10a”.
  • Wählen Sie für das Verzeichnis im Kontextmenü “SVN Checkout…”
    svn_tortoise_checkout
  • Geben Sie danach die URL des eben angelegten oder bereits existierenden Repository an:
    svn_tortoise_checkout2
  • Danach werden alle Verzeichnisse und Dateien im Repository – also in der Regel alle BlueJ-Projekte dort – in das gewählte Verzeichnis übertragen.
  • Ab jetzt kann das gewählte Verzeichnis mit dem Repository synchronisiert werden. Das geschieht über “SVN Update” beziehungsweise “SVN Commit…” im Kontextmenü.

Teil 6 – Erfahrungen

Rückmeldung aus der Praxis

  • Kommt bei Schülern sehr gut an.
  • Die Aktualisierung bestehender BlueJ-Projekte ist leichter als sie etwa bei Moodle aktuell zu halten
  • Am Anfang unbedingt im Computerraum gemeinsam machen; zu Hause kommt kaum einer allein zurecht
  • Gelegentlich gibt es ein unerklärtes write lock auf lokalem Projekt. Dann ein­fach neu auschecken und den bisher verwendeten BlueJ-Projekt-Ordner lö­schen.
  • Interessierte Schüler gehen ins Repository und blättern dort. (“Wer hat die Da­tei gelöscht?”)
  • Für Projektarbeit enorm hilfreich. Der Austausch und die Koordination gehen sehr viel schneller und fehlerfreier als beim manuellen Dateienaustausch zwi­schen Teammitgliedern. Im Computerraum verständigt man sich durch kurzes Zwischenrufe “Habt ihr schon Update gemacht” usw.
  • Oft arbeiten Schüler mit dem Account eines anderen Schülers, weil die Ab-/Anmeldung ihnen zu umständlich erscheint oder nicht alle ihre Zugangs­daten dabei haben.
  • Es ist vielleicht hilfreich, wenn Schülerinnen und Schüler erst einige Zeit lang nur BlueJ-Projekte auschecken (Aufgaben, Musterlösungen), und erst, wenn sie damit vertraut sind, Commits durchführen.
  • Schülerinnen und Schüler denken selten daran, einem Commit einen Kommen­tar hinzuzufügen.

Typische Probleme

  • Eingabe der korrekten Daten in BlueJ (Benutzername, Passwort) für manche schwierig, das Passwort wird vergessen oder nicht richtig aufgeschrieben – Schüler müssen sich ihre Zugangsdaten aufschreiben und jedesmal mitbringen.
  • Tatsächlich werden Schüler immer die Zugangsdaten ihrer Mitschüler nutzen. Das hat den Nachteil, dass man eventuelle Zugangsprobleme erst spät feststellt.
  • Manche Schüler hatten Schwierigkeiten, zu Hause die Teamarbeitseinstellun­gen in BlueJ einzuschalten, weil sie den Menüpunkt nicht gefunden haben, eventuell ist das Interface bei BlueJ auch auf englische Sprache eingestellt.
  • Die Arbeit mit dem in BlueJ integrierten und einem externen SVN-Client muss getrennt bleiben. Wenn der externe Client eine .svn-Datei in einem BlueJ-Pro­jekt entdeckt, führt das zu Problemen.
  • Gelegentlich kommt es aus irgendwelchen Gründen zu SVN-Fehlermeldungen des BlueJ-Clients (wie einem write lock, einem von BlueJ nicht genutzten und ansprechbaren SVN-Feature). Dann einfach das Projekt ganz neu auschecken, das alte lokale löschen und eventuelle Codeergänzungen noch einmal durch­führen.Cartoon http://xkcd.com/1597/
    Randall Munroe/xkcd, Creative Commons Attribution-NonCommercial 2.5
  • Enthält ein Verzeichnis Bilddateien, fügt Windows oft eine versteckte Datei “thumbs.db” hinzu, die dann mit synchronisiert wird.

Zur Erinnerung und als Übersicht:

  • Checkout – macht man meist einmalig und lädt dabei alle Inhalte aus einem Repository in ein lokales Verzeichnis.
  • Update – führt man regelmäßig und insbesondere vor Beginn eigenen Arbeitens durch. Dabei werden lokale Fassungen eventuell durch aktuellere aus dem Repository ersetzt. Kann zu Konflikten führen.
  • Commit – führt man unmittelbar nach dem eigenen Arbeiten durch. Wenn inzwischen neuere Fassungen im Repository liegen, wird man stattdessen zu einem Update und anschließender Konfliktläsung gezwungen. Danach kann man den Commit noch einmal versuchen.

Teil 7 – Beispiele

Einfaches Tic-Tac-Toe mit Model-View-Controller

Als Fingerübung vor der eigentlichen Projektarbeit sollte ein Tic-Tac-Toe-Spiel pro­grammiert werden. Dazu wurde in einer Stunde ein Klassendiagramm erstellt, ange­fangen vom Model (was muss gespeichert werden?) über den View (was muss der er­fahren, um den Spielstand darstellen zu können?) bis hin zum Controller.

svn_mvc_tictactoe

Dann wurden drei Teams eingeteilt (Alpha, Bravo, Charlie); in jedem Team waren je­weils zwei bis drei Schülerinnen und Schüler für die konkrete Umsetzung der drei ab­strakten Klassen zuständig. So konnten über zwanzig Schüler weitgehend unab­hängig von den anderen arbeiten.

svn_mvc_bluej1

Am Schluss sah das Projekt so aus, alle drei Model‑, View- und Controller-Implementierungen konnten untereinander ausgetauscht werden:

svn_mvc_bluej2

Größeres Programmierprojekt

Danach folgten acht Wochen Programmierprojekt in drei Gruppen zu jeweils 7–8 Mit­gliedern. Jede Gruppe arbeitete in einem eigenen BlueJ-Projekt.

svn_team_alpha

svn_team_bravo

svn_team_charlie


Nachtrag: Für kommende Versionen von BlueJ ist Git-Unterstützung angekündigt; Git ist ein etwas jüngeres System, das ähnliche Wünsche wie Subversion erfüllt. Für Mebis ist, wenn auch nicht in unmittelbarer Zukunft, FTP-Zugang angekündigt und die Möglichkeit, gemeinsam an Dokumenten zu arbeiten, “mit Versionskontrolle”. Ich kann mir nicht vorstellen, dass das Versionskontrolle im Sinn von Git oder Subversion ist – aber das wäre schon schön.

Schatten-IT und andere Beobachtungen

Mit der Sache selbst bin ich seit Jahren sozusagen auf du und du, aber das Wort dafür kannte ich noch nicht. “Schatten-IT” heißt der Wikipedia-Eintrag für das Phänomen, dass sich sozusagen Parallelgesellschaften in Firmen entwickeln, wenn es um die Benutzung von Informationstechnologie geht: Wenn die Software in der Firma nicht funktioniert; oder nicht so funktioniert, wie sie soll; oder nicht so einfach funktioniert, wie sie müsste – dann nutzen die Mitarbeiter häufig andere Software. Ist Outlook zu umständlich, dann macht man Termine per Doodle aus. Kann man nicht gleichzeitig an einem Dokument arbeiten, dann weicht man zu Google Docs oder einem Etherpad aus. Gibt es keine Möglichkeit, Dateien zu tauschen, nimmt man Dropbox – hat eh jeder, kann eh jeder. Es ist verständlich, dass die Sicherheitsabteilungen das gar nicht gern sehen. Es ist aber genauso verständlich, dass Benutzer das tun und weiterhin tun werden.

Ich habe überrascht festgestellt, dass ich zumindest an ein, zwei Tagen in der Woche voller Adrenalin nach Hause komme. Dann brauche ich die zwei Stunden, bis ich mich ans Zubereiten des Abendessen mache, um herunterzukommen. Dabei ist man in der Schule nett zu mir, die Schüler sind freundlich, der Unterricht läuft so, wie ich mir das vorgestellt habe. Aber die Doppelstunde Unterstufe am Nachmittag ist anstrengend. Informatikunterricht sieht da so aus, dass es eher kurze Phasen gibt, in denen ich etwas erkläre oder zeige. Die enden mit einem Auftrag, und dann arbeiten die Schüllerinnen und Schüler, und viele davon haben Fragen oder Probleme mit der Technik oder wollen mir etwas zeigen. Bin ich nicht mehr gewöhnt. Ist jedenfalls alles anderre als Frontalunterricht.
Am anderen Tag ist es ähnlich: Da trifft sich die Programmier-AG, und das sind zwar nicht viele, aber die sind dermaßen fit und verschieden und schnell, da komme ich kaum noch mit. Und so ordentlich wie ich das mir vorstelle, will auch keiner vorgehen. Aber schön ist das ja schon.

Ansonsten: Kaum kippt die EU die Netzneutralität, zeigt die Telekom, wie sich das in Zukunft auswirken wird. Echt traurig.