Schlagwort: Informatik

Algorithmen: Vielleicht sogar auf Ihrem Computer!

Ich glaube ja, in den Zeitungen steht deshalb so viel Unfug, damit man darüber bloggt oder sich sonstwie darüber aufregt, Nu, heute in der Süddeutschen, im Feuilleton – dezidiert nicht auf der Wissenschafts-Seite – schreibt Andrian Kreye über Algorithmen, “Die neue Weltsprache”. Wir erfahren, dass diese Algorithmen quasi überall sind. Ich vermute, das ist so wie Chemie, die sich heutzutage schon in Lebensmitteln findet, H20 und NaCl und solches Zeug. Google und so, alle arbeiten mit Algorithmen; es fehlt allerdings die Warnung, dass Algorithmen nicht mal vor dem eigenen Computer oder gar Handys zurückschrecken.

Was Algorithmen sind, erklärt Andrian Kreye nicht so richtig, ich denke mal, um das Thema möglichst geheimnisvoll zu machen – schließlich wird eine Feuilleton-Serie für die Zukunft angekündigt. Dabei lernt man das in Bayern in der 7. Klasse. (Zugegeben, das ist keine Garantie, dass da viel hängen bleibt bei den Schülern. Eine Umfrage in meiner 8. war da wenig vielversprechend.)

Auf derselben Seite wird dann zumindest kurz Lovecraft erwähnt, das ist immer okay.

Im Süddeutschen Magazin heute ist ein Beitrag: “Es gibt keine dummen Fragen, nur dumme Antworten? Das Internet beweist das Gegenteil. Eine Auswahl.”
Einverstanden, es gibt dumme Fragen, und das sage ich auch meinen Schülern so, aber die “Internet”-Beispiele sind nicht gut gewählt. Ich habe sie meiner 8. Klasse vorgelesen, und die fand bei den meisten Fragen wie ich, dass das durchaus gute Fragen sind. (Maike Haselmann und Andrea Diener in der FAZ sehen das wohl auch so.)

“Wie viele Tote würde es bei einem Asteroideneinschlag (1 km Durchmesser) geben?” What if lebt von solchen Fragen, aktuell geht es darum, wie lange die Menschheit überleben würde, wenn man sich nur via Kannibalismus ernähren würde.

“Wieso sieht man auf Fotos anders aus als im Spiegel?” Legitime, oft beantwortete Frage, alles andere als dumm.

Zugegeben, einige der Fragen sind wirklich dumm. Andere zeugen von Neugier, Forschergeist, unkonventionellen Sichtweisen.

Tag der Informatiklehrer 2014. Yay!

Heute war der TdI 2014, den ich wie auch die letzten Jahre mitorganisieren geholfen habe. (Insgesamt machen die Organisation vor allem die Lehrstuhlsekretärin und wir drei teilabgeordneten Lehrer am Lehrstuhl, technisch helfen die Systembetreuer uns sehr.) So um die 90 Teilnehmer, ein Vortrag, danach verschiedene Workshops. Organisieren liegt mir nicht, aber ich versuche mir alles aufzuschreiben für die folgenden Jahre. Ich glaube an Checklisten.

Mir hat es nicht nur Vergnügen bereitet heute, sondern Freude. Mein Workshop lief gut, von den anderen habe ich leider nichts mitgekriegt. (Irgendwann wird mir hoffentlich jemand mal eine Einführung in Lego Mindstorms oder App-Programmierung geben; alleine raffe ich mich doch nicht auf.) Freude deshalb, weil es schön ist, andere Informatiklehrer zu treffen und sich mit ihnen auszutauschen. Viele davon sehe ich regelmäßig, zwar nur einmal im Jahr, aber immerhin. Das ist schön. Dieses Jahr war der Termin nicht optimal, so dass ein paar ganz regelmäßige Besucher leider nicht konnten.

Am meisten Sorgen bereitet mir übrigens jedes Jahr das Mittagessen. Klingt blöd, ist aber so, weil wir nie genau wissen, wer in welche der drei Gaststätten in der Nähe geht, bei denen wir – genügend? zu viele? – Plätze reserviert haben.

Schön wäre nächstes Jahr ein Workshop, der gleich im Englischen Garten stattfindet. “Rollenspiele im Informatikunterricht” oder “Sortieralgorithmen im Rollenspiel”, irgendwas, was man machen kann, während die Hälfte der Teilnehmer im Schatten auf der Wiese liegt. Der Englische Garten ist so nah und das Wetter war noch an jedem TdI der letzten Jahre richtig schön.

Selber habe ich auch schon eine Idee für einen Workshop nächstes Jahr: “Crypto-Party an der Schule”. Gestern war ich bei einer kleinen Crypto-Party in München, so als Vorbereitung, um zu sehen, ob ich genug darüber weiß, um das mit Schülern machen zu können. Ja, reicht auf jeden Fall – ich weiß nur noch nicht, ob das genügend Schüler an meiner Schule interessiert. Aber das teste ich im Herbst mal.

Ansonsten arbeite ich jetzt erst mal Liegengebliebenes auf: Links, Schulaufgaben-Respizienzen, Blogeinträge, Emails, vielleicht ein bisschen Krankwerden. (Kratzen im Hals.)

Nachtrag: Seit Jahren machen Informatiklehrer ein Programmierprojekt mit Datenbankanbindung in der 11. Jahrgangsstufe, oder glauben zumindest, das machen zu müssen – so hörte man das auf Fortbildungen, so steht das in den Handreichungen und Büchern; im Probeabitur wurde tatsächlich auch abgefragt, welche Schritte man (in Java) durchführen muss, um eine Datenbankabfrage auszuwerten. Im Lehrplan, fand eine Teilnehmerin zu ihrer und unser aller Überraschung am TdI heraus, steht tatsächlich dazu: nicht. “Größere Softwaresysteme” müssen gestaltet werden, beachtet werden muss das “Zusammenspiel der verschiedenen Beschreibungstechniken beim Systementwurf: Datenmodellierung – Ablaufmodellierung – funktionale Modellierung – Objektmodellierung”, Listen, Bäume oder Graphen sollen verwendet werden – aber von Datenbanken steht da tatsächlich nichts.

Internet in der 8. Klasse (und dann nur Internet)

Die Schüler haben gekichert, als ich erwähnte, dass ich bei Twitter bin.

(Wie wir darauf kamen: Es ging um Zeitung. Zuerst einfach mal eine Stunde lesen; dann um die einzelnen Ressorts, die Textsorten, den Weg vom Ereignis in die Zeitung; schließlich um gegenwärtige Finanzierung von Zeitungen und ihre Zukunft. Da waren wir dann auch schon beim Internet und alternativen Nachrichtenquellen.)

Was war daran so witzig? Auch Nachfrage wohl einfach, dass social media so gar nicht zu Lehrern passt. Ja, etliche Kollegen sind bei Facebook, aber Twitter ist wieder etwas anderes.
Dann haben wir uns über das Internet unterhalten. (Diese Art Stunde halt. Schuljahresende, ein guter Teil der Schüler eh nicht da.) Warum ich Twitter für cooler halte als Facebook. Was Netzneutralität ist. Warum ich Internet für wichtig halte.

Da habe ich natürlich auch fallen lassen, dass das Internet ein gar so neues Medium nicht ist, wie es in Erörterungs-Aufgabenstellungen meist verkauft wird. Dass ich meine erste Webseite hatte Jahre vor der Geburt der Schüler, dass ich blogge seit vor der Erfindung von Youtube. (Mein Blog erwähne ich in der Schule sonst nicht oft.)

Mehr überrascht als ungläubig kam dann eine Frage, die mir bezeichnend schien: “Kann da jeder einfach so irgendeine Seite ins Internet stellen?” Das hat die Schüler überrascht. Meine Schlussfolgerung: Sie kennen Facebook und Twitter und erinnerten sich sogar noch an Lokalisten und SchuelerVZ. Aber das man einfach so und für gar nicht viel Geld einfach so seine eigene Webadresse haben und mit Inhalt füllen kann, das war den Schülern nicht bewusst.
Ich glaube, vor fünf Jahren war das noch anders. Da hatten die Leute noch Homepages. Da wussten die Schüler eher, dass man auch ohne Soziale Medien, also selber, eine Webseite haben kann. Zugegeben, wer das hatte, wurde belächelt, wer brauchte so etwas schon?

=======
Neues aus dem Internet:

(1) Lügen für das Leistungsschutzrecht (7) Letztes Jahr hat der Bundestag ein von vielen Seiten kritisiertes “Leistungsschutzrecht” beschlossen, das Google verbietet, Texte aus Zeitungswebseiten in bestimmter Form zu verwenden, wenn nicht dafür gezahlt wird. Jeder weiß hoffentlich, dass jede Zeitungswebseite Google ganz einfach daran hindern kann, ihre Seiten zu verwenden. Machen wir bei unserer Schulhomepage auch so, Google kennt deren Inhalte nicht. Aber die meisten Verlage wollen ja, dass Google ihr Material verwendet, nur zahlen muss es dafür müssen. Im Moment verlangt Google von den Zeitungen die kostenlose Erlaubnis, sonst wird es das Material nicht verwenden. Darüber klagen jetzt die Verlage und vergleichen das mit einer Art Erpressung. Also was jetzt?

(2) Im Mai 2014 hat der europäische Gerichtshof entschieden, dass Google gezwungen werden kann, Suchergebnisse bei bestimmten Fragen nicht anzuzeigen. Und zwar: Wenn eine Person mal etwas Dummes gemacht hat, und das schon einige (wenige) Jahre her ist, und darüber steht etwas auf einer Webseite, dann darf Google auf Antrag (eventuell) diese Seite nicht mehr in den Suchergebnissen anzeigen, wenn nach der Person und der dummen Sache gesucht wird. Beim Guardian ist der erste Artikel herausgefiltert (weil ein Kommentator seinen Kommentar nicht mehr lesen will – nur wenn man nach dessen Namen in Verbindung mit dem Artikel sucht, wird er nicht mehr gezeigt), beim Spiegel auch.
Nachtrag: Die Seite http://hiddenfromgoogle.com/ sammelt solche in der EU von Google nicht mehr gelisteten Seite.

(3) Zu meinen Teenagerjahren haben wir auf die Bundesprüfstelle für jugendgefährende Schriften (heute: Medien, BPjM) geschimpft, weil die uns vor Tanz der Teufel bewahrt haben, indem sie den Film auf den Index setzten. Im Referendariat kam dann Quake heraus, auch gleich indiziert. Inzwischen gehört es auch zu den Aufgaben der BPjM, Webseiten zu indizieren – allerdings ist dieser Index nicht öffentlich, aus naheliegenden Gründen.
Trotzdem soll er verwendet werden können, etwa von meinem Router zu Hause. Da gibt’s eine Einstellung, habe gerade nachgeschaut, dass für “Gäste” in meinem Wlan alle Seiten, die auf diesem Index stehen, gesperrt sind. (Das ist wohl die Standardeinstellung, ich hatte mir das vorher nie angeschaut.) Nun wäre es ziemlich dumm, meinem Router diese Liste im Klartext zukommen zu lassen. Also existiert sie nur in einer verschlüsselten Form, dem sogenannten BPjM-Modul. Verschlüsselt heißt: Aus einem Text (etwa dem Link einer zu indizierenden Webseite) errechnet man nach einer mehr oder weniger öffentlich bekannten Methode einen sogenannten Hash, und den gibt man weiter. Wenn mein Router dann bei aktiviertem Kinder- oder Gästeschutz eine Webseite ausliefern soll, dann errechnet er aus dieser Webseite nach der gleichen Methode den Hashwert und vergleicht ihn mit der Sperrliste.
Aus dem Hashwert kann man nur äußerst schwer auf den ursprünglichen Text (hier: Link) schließen. Wie das geht, ist spannend und schwierig, wie überhaupt Hash-Funktionen eine tolle Sache sind.
Trotzdem hat ein Hacker oder eine Hackerin mit relativ wenig Aufwand einen Großteil der indizierten Links im BPjM-Modul rekonstruiert und veröffentlicht. Steht zum Beispiel hier. Allerdings ist der Link zu der Seite, auf der die entschlüsselte Liste zu finden ist, dort inzwischen nicht mehr zu lesen – Behörden drohen mit Klagen. Den Meinungen von Rechtsanwälten im Web zufolge (siehe Link oben) macht man sich vermutlich nicht strafbar, wenn man auf die Seite mit den entschlüsselten Webseiten-Adressen verlinkt, aber wer will so ein Risiko schon eingehen – Ärger kann man auch so kriegen, wenn die Polizei dann mal vorbeischaut. Und auf der Liste steht auch tatsächlich allerlei Indizierenswertes – Pornographie, Rechtsradikales, Anorexie-Seiten, aber auch: syntaktisch fehlerhafte Links, Irrläufer, alles mögliche. Eine Analyse der gesperrten Seiten wäre schon interessant. Interview mit dem Hacker/der Hackerin.
(Auch google.de sperrt diese Seiten, anders als Google aus anderen Ländern – aber die sperren dann vermutlich einfach anderes.)

(4) Wenn man sich – halbwegs – anonym im WWW bewegen will, oder dubiose Dinge recherchieren will, benutzt man am besten etwas, das Tor heißt. Lange Geschichte. Allerdings: wer Tor benutzt oder sich nur darüber informiert, macht sich des Extremismus verdächtig und landet in einer NSA-Datenbank.

(5) Nächsten Dienstag wäre in München eine Cryptoparty. Da kriegt man als Laie erklärt, wie man Mails verschlüsselt, Tor benutzt, Festplatten verschlüsselt (was wir als Lehrer ja tun müssen). Ob ich das als Fortbildung angerechnet kriege, wenn ich hingehe? — Tatsächlich weiß ich schon das meiste, aber falls ich mal in der Schule eine Cryptoparty machen möchte, sollte ich das auf jeden Fall vorher mal mitmachen. (Zeitpunkt ist aber ungünstig für mich, vorher Konferenzen, am nächsten Tag Mitorganisator einer Fortbildungsveranstaltung.)

Then came the churches, then came the schools
Then came the lawyers, and then came the rules
Then came the trains and the trucks with their loads
And the dirty old track was the telegraph road

Zombies, Run!

Diese App gibt es jetzt im dritten Jahr, aber vielleicht kennen sie doch noch ein paar nicht. Ich bin jedenfalls erst vor kurzem darauf gestoßen worden.

Und zwar: Ich raffe mich sehr viel seltener zum Strampeln am Crosstrainer oder Joggen auf, als gesund für mich wäre. Der Glückshormongewinn danach ist gerade mal nicht groß genug. Aber in den letzten zwei Wochen bin ich doch fast jeden zweiten Tag gelaufen. Das kam durch die App Zombies, Run! (Webseite, Google Playstore). Die ist genial.

Man läuft mit Kopfhörern im Ohr, und dem Tablet/Handy am anderen Ende. Und man bekommt während des Laufens eine Geschichte erzählt, sozusagen. Der Hintergrund: Wir sind in der nahen Zukunft, aber nach der Zombie-Apokalypse*. Die überlebenden Menschen haben sich in kleinen Gemeinschaften verschanzt, Ein- und Ausgänge sind streng bewacht. Draußen treiben sich die klassischen Zombiehorden herum – schlurfend, hungrig, hirnlos, und wer gebissen wird, wird selbst zum Zombie. Treibstoff ist teuer und nur spärlich vorhanden, deswegen werden für viele Aufträge laufende Boten eingesetzt, sogenannte runner.
Man selbst spielt Runner Five neu angekommen in Abel Township, der nach und nach verschiedene Aufträge erledigen muss.

Story-Modus

So ein Auftrag besteht zum Beispiel darin, sich mit dem Boten einer anderen Basis zu treffen, um Nachrichten oder Material zu tauschen. Oder man muss laufen, um eine Horde Zombies abzulenken, die sich der eigenen Basis nähert. Ich musste auch schon mal verirrten Wanderern helfen oder die Nachbasis vor einem drohenden Überfall warnen. Informationen erhalte ich dabei über Funk von meiner Basis, die mich und die Situation um mich herum im Auge behält; der Kopfhörer ist also quasi meine Verbindung zur eigenen Basis. Außerdem höre ich noch den Dialogteil anderer Menschen, auf die ich geplant oder ungeplant treffe. (Selber ist man eher der starke, ruhige Typ: Die eigene Stimme hört man nicht.) Und das Grunzen der Zombies höre ich natürlich auch, wenn ich ihnen zu nahe komme. Im Zug dieser Missionen entwickelt sich auch eine größere Geschichte, zu der bei jeder Mission der eine oder andere Puzzlestein beigetragen wird.

(Ich bin leicht zu manipulieren: Jedenfalls fühle ich mich richtig gut, wenn ich den Zombies noch einmal davongelaufen bin, wenn mir mein Partner versichert “You’re doing fine”, wenn ich den Auftrag erfüllt habe.)

Season 1 enthält 23 dieser Missionen. Eine typische solche Mission dauert etwa dreißig Minuten – wahlweise doppelt so viel – und besteht aus sechs Audiosegmenten mit Funkkontakt oder Dialogteilen. Die Audiosegmente sind kurz und füllen keineswegs die ganze Laufzeit. Dazwischen sammelt man noch zufallsgesteuert Fundsachen ein – Dosen mit Lebensmitteln, Kleidung, Verbandsmaterial -, was auch jedesmal zu einer kurzen Audionachricht führt, so dass immer ein bisschen was los ist. Den Rest der Zeit über hört man Musik von der eigenen Handy-Playliste, notfalls unterbrochen durch wichtige Mitteilungen.

Die Musik dazu

Und das ist ganz wichtig: Sich eine eigene Zombie-Musikliste zusammenstellen. Besonders gut geeignet: Der Soundtrack zu Radioactive Dreams**, dann auch der Soundtrack zu Shock Treatment; Jonathan Coulton (I Feel Fantastic, Re: Your Brains, Skullcrusher Mountain), alle Lieder, die etwas mit Laufen oder Wettrennen zu tun haben (The Ballad of Thunder Road, Por una cabeza), Monsterlieder (Monster Mash) oder Lieder mit schönem Laufrhythmus (lies: Foxtrott, Credence Clearwater Revival, Willie Nelson). Selbst Maurice Chevalier kommt gut nach der Zombie-Apokalypse.

Basisbasteln

Während der Läufe sammelt man Ausrüstung ein. Zusammen mit den Materialpunkten, die man nach jeder Mission erhält, benutzt man diese, um an der Basis – Abel Township – herumbasteln:

zombies,_run

Es gibt eine maximale und eine aktuelle Einwohnerzahl; ein Maß für die Sicherheit und die Zufriedenheit der Bewohner. Man baut neue Gebäude und erweitert die vorhandenen, um diese Werte zu verbessern.

Frecherweise wird meine Basis auch noch regelmäßig, oder zufallsgesteuert, von Zombiehorden angegriffen. Alle drei Tage? Immer wenn ich mal zwei Tage nicht gelaufen bin? Einfach so? Jedenfalls machen die mir die Mauer kaputt, so dass ich erworbene Punkte ausgeben muss, um sie zu reparieren. Wenn ich das nicht mache… ich weiß es nicht, ich will es auch nicht ausprobieren. Farmville bei Facebook und dergleichen hat mich nie interessiert, aber die Sicherheit von Abel Township liegt in meinen Händen, so dass ich regelmäßig weiterlaufen muss. Ein Pokemon am Leben zu erhalten ist harmlos dagegen.

(Ich bin so leicht zu manipulieren.)

Nebenmissionen

Neben dem Story Modus gibt es noch weitere Missionen, etwa “Airdrop”: Da wähle ich mir einen Ort auf der Karte aus (der echten Karte meiner Umgebung), muss dorthin laufen, um ein mit dem Fallschirm abgeworfenes Ausrüstungspaket abzuholen und zur Basis zu bringen. Plot-Elemente gibt es da wenige, aber die üblichen Zufallsfunde und ein paar Nachrichten auch.

Außerdem kann ich auch nur “Radio Abel” zuhören. Das ist der Radiosender meiner Basis: Zwei Moderatoren, die sich unterhalten, Nachrichten aus der Umgebung melden, so eine Art Zombie-Wetterbericht für die Region, und Musik aus ihrer Plattensammlung spielen. “One of my favourite tracks”, “a classic” – in Wirklichkeit natürlich Lieder aus meiner eigenen Zombie-Liederliste.

Ich schwöre: Das erste Mal, als ich sie anhörte, sprachen die beiden über Tom Waits – und dann kam auch prompt ein Lied von Tom Waits. Zufall? Kann ich mir nicht vorstellen. Die App kennt natürlich meine Liederliste, und man kann vielleicht davon ausgehen, dass Leute mit dieser App auch mindestens ein Lied von Tom Waits auf ihrer Liste haben, so dass es sich lohnt, ein kurzes Radio-Abel-Segment zu schreiben, in dem konkret dieser Künstler erwähnt wird.
Das war bisher das einzige Mal, das das passiert ist. Also doch Zufall? Viel mehr andere Musiker dürfte ich nicht im meiner Liste haben, für die sich so ein Scherz lohnen würde.

Das Eintauchen in die Welt

Es ist erstaunlich, wie wenig es braucht, um mich in diese Welt zu versetzen. Das gehörte Wort. Ein Grunzer von links, ein Grunzer von rechts. Das Auswerten der Liederliste – auch wenn das nur ein Anfang ist. Man könnte noch viel mehr machen, und es gibt schon andere Spiele (die nichts mit Laufen zu tun haben), die damit arbeiten. Man stelle sich jetzt noch eine Videobrille vor, die einem Bilder von Zombies in der Nähe ins Auge wirft. Und über die Ortskoordinaten kann man Straßennamen und Sehenswürdigkeiten abfragen, aus denen müsste man algorithmisch interessante Nachrichten erzeugen können.

Die Missionen im Story-Modus sind alle fest geschrieben, scripted, mit sehr nettem britischen Understatement übrigens. Eine neue Textsorte mit neuer Erzählsituation übrigens. Der heilige Gral für zukünftige Projekte sind wohl algorithmisch konstruierte Geschichte; es gibt schon Forschung dazu.


*Die Zombie-Apokalypse

In weiten Kreisen ist das ein so bekannter Topos, den man den nicht erklären muss. Sicherheitshalber: Menschen mutieren zu Zombies, meist aufgrund eines fiktiven Virus oder einer anderen Biowaffe. Wer von einem Zombie gebissen wird, wird bald selber zu einem, und die Zombies beißen viel und gerne. Wenn die Zombies erst mal da sind, verbreiten sie sich epidemieartig. Die Zivilisation, wie wir sie kennen, bricht zusammen. – Beim W-Seminar nächstes Jahr stellt mir hoffentlich ein Teilnehmer in einer Arbeit zusammen, wie sich der Zombie-Boom der letzten zehn (?) Jahre entwickelt hat. Urban-Horror-Computerspiele, dann Filme?

Das amerikanische Militär hat schon Übungen mit Zombies gemacht (Spiegel Online, dort auch Links zu pdf), die University of Florida hat eine Katastrophenübung dazu geplant (aber wohl nicht durchgeführt; pdf über Googlesuche), und auch die amerikanische Seuchenschutzbehörde hat Anweisungen für den Zombie-Ernstfall herausgegeben – nicht ganz ernst gemeint, aber die empfohlenen Verhaltensweisen bei Naturkatastrophen und Zombiehorden ähneln sich insgesamt nun mal sehr.

Vom THW oder so ist mir noch nichts bekannt. Aber hier ein schöner Blogeintrag von Frau Nuf, die erklärt, wie man sich bei einem sportlichen Zombie Run fühlt.

** Radioactive Dreams

Das ist ein wenig bekannter Film aus dem Jahr 1985 mit einem gewissen Kultstatus. Der Regisseur wird in manchen Kreisen mit Ed Wood verglichen; zumindest dieser frühe Film von ihm ist aber solide, wenn auch preiswert, gemacht. Der Ausgangspunkt: zwei Jungen verbringen die Zeit des Atomkriegs und das Jahrzehnt danach in einem Bunker; keine Erwachsenen, keine Erziehung, aber jede Menge amerikanische Krimis. Als junge Männer verlassen die beiden – Phillip Chandler und Marlowe Hammer – endlich den Bunker und finden sich in einer postapokalyptischen Welt wieder, voller Mutanten, Menschenfresser, Discogangs, skrupelloser schönen Frauen, und alle jagen sie einem MacGuffin hinterher, an die beiden Helden gelangen. Dazu viel Off-Sprecher, wie es sich für einen film noir gehört. Richtig heldenhaft werden die beiden erst am Schluss, vielleicht sogar erst in der letzten Szene, als sie mit den Schultern zucken, die Welt so akzeptieren, wie sie ist, das beste daraus zu machen versuchen, und in einer Schlussnummer den “post-nuke shuffle” tanzen:

Bei Youtube findet man eine Version des Films in schlechter VHS-Qualität, also genau so, wie wir die kopierten Filme damals erlebt haben – aber man braucht schon ein großes Herz für die 1980er, um den Film zu mögen.

Als ich 1987 mit ein paar Freunden nach London fuhr, zum ersten Mal mit dem Reisebus von Süden kommend, fuhren wir lange Zeit durch – hm, Vorstadtruinen? Schutthalden? Unser erster Gedanke, die wir das brav aufgeräumte Wohlstandsdeutschland kannten: Da sieht ja alles aus wie bei Radioactive Dreams. Alfred Pyun macht wohl häufig Filme im postapokalyptischen Milieu; er hat zwar (habe ich bei Wikipedia gelesen) kein besonderes Interesse daran, aber dieses Setting erlaubt ihm, Filme mit kleinem Budget zu machen.

Semesterbeginn 2014

Ich bin ja jeden Donnerstag an der Uni. Der Tag läuft dann etwa so ab wie gestern: So losfahren, dass ich um 9 Uhr dort bin – auch wieder mit dem Fahrrad, wenn ich mir ein neues gekauft habe. Dann kurze Teambesprechung im Sekretariat, was es an Neuigkeiten gibt und was gerade besonders dringend ist. Danach hat die Kollegin eine Veranstaltung für Studierende Lehramt Realschule, davor der Kollege eine Veranstaltung für Studierende Lehramt Gymnasium. (Ich selber bin im Wintersemester dran.) Vormittags erledige ich verschiedene Aufgaben am Rechner: Wartung von Webseite und Moodlekursen, Planung der nächsten Veranstaltungen, E-Mail erledigen; manchmal schaut jemand zur Sprechstunde vorbei.

Mittags radeln wir dann meist durch den Englischen Garten in die Kantine des Landesamts für Finanzen – ein Skript sammelt die online verfügbaren Speisepläne der in der Nähe liegenden Kantinen ein und stellt sie für Institutsmitarbeiter gesammelt dar. Aber es wird dann doch fast immer das Finanzamt daraus.
Gestern nicht, da hatten wir wenig Zeit und holten nur einen Happen in der Unimensa. Danach gibt es eine Tasse Kaffee in einem Büro und Plauderei mit einer Gruppe von Systembetreuern, die uns Lehrer quasi adoptiert hat. Auch das fiel gestern leider aus, da der Raum für eine Prüfung gebraucht wurde; ich musste selber dann auch noch Beisitz bei einer mündlichen Prüfung machen. Gleich im Anschluss begann die Veranstaltung im Sommersemester, das Praktikum “Informatiksysteme aus fachdidaktischer Sicht”.

Dort lernen die Studierenden, dieses Jahr sind es 16, es kommen vielleicht noch ein oder zwei dazu, welche Software es gibt, die man für die Schule benutzt, und was man damit machen kann. Das beginnt mit Moodle, allein schon mal zur Verwaltung der Veranstaltung, dann eine Auswahl aus den vielen Möglichkeiten, die es gibt. Die Studierenden produzieren einen Screencast für den Einsatz in der Schule, stellen die Software außerdem den Kommilitonen vor und geben diesen Aufgaben dazu. Wenn es klappt, kommt noch ein Besuch bei einem Schul-Systembetreuer dazu, und eine Gruppe von Schülern kommt an die Uni und wird von den Studierenden einen Vormittag lang im Rahmen eines Projekts betreut.
Wenigstens müssen wir für diese Veranstaltung keine Noten geben. Noten geben mag ich nicht.

So um 17 Uhr machen wir uns dann auf den Heimweg.

- Heute geht es allerdings gleich weiter, das jährliche Probestudium für an Informatik interessierten Schülerinnen und Schüler beginnt. Am Freitag und von Montag bis Mittwoch (immerhin in den Osterferien) besuchen angemeldete Schüler drei Vorlesungen und nehmen an einem mehrtägigen praktischen Workshop teil. Dieses Jahr standen zur Wahl 3D-Programmierung in Python, Android-Programmierung, Bioinformatik und Ähnlichkeitssuche in Bilddatenbanken. Einen der Workshops leiten wir, und irgendwie bleibt auch immer etwas von der Organisation an uns hängen.

Die Einladungen fürs Probestudium gehen an alle Gymnasien in Oberbayern und ein paar weitere Schulen; ob sie dann auch alle Informatiklehrer und deren Schüler erreichen, hängt von den Empfängern ab.

Core War – Krieg der Kerne

Hat der Kollege doch neulich seiner 12. Klass Core War vorgestellt. Gute Idee. Das hatte ich mir schon zu Studienzeiten mal angeschaut, aber dann doch zu wenig begriffen. Inzwischen geht es etwas besser. Wer eh weiß, was Assembler ist, kann die Punkte 2 bis 4 überspringen.

1. Core War

Seit 30 Jahren gibt es das Spiel Core War. Dabei schreiben zwei Leute jeweils ein Programm in einer assemblerartigen Sprache. Zu jedem Programm gehört mehr oder weniger eine Endlosschleife, so dass das Programm immer weiter läuft und nie aufhört.
Die beiden Programme werden in denselben Arbeitsspeicher geladen. Danach wird jeweils abwechselnd eine Zeile vom einen, dann vom anderen Programm ausgeführt, und immer so weiter. Irgendwann überschreibt eines der Programme das andere, so dass jenes dann nicht mehr lauffähig ist – und damit hat das Programm, das übrig bleibt, gewonnen. Denn das Ziel ist, am Schluss das einzige Programm zu haben, das noch in lauffähigem Zustand ist. Daher auch der martialische Name Core War.

corewar_00

2. Prozessor und Assembler

In der 12. Klasse lernen Schüler, wie ein Prozessor funktioniert und mit dem Arbeitsspeicher des Computers zusammenarbeitet. Der Prozessor ist das Teil am Rechner, was rechnet und das Rechnen organisiert. Letztlich wird jedes Computerprogramm, das auf einem Rechner läuft – das Betriebssystem eingeschlossen – früher oder später in die eigene Programmiersprache des Prozessors übersetzt und dann von diesem ausgeführt.

Diese eigene Programmiersprache, oder jedenfalls die menschenfreundlich lesbare Version davon, heißt Assembler. So gut lesbar wie höhere Programmiersprachen ist Assembler allerdings bei weitem nicht, die Befehle sehen am Anfang ziemlich kryptisch aus. Trotzdem macht Schülern das Assembler-Programmieren meistens Spaß, da man dabei sehr kleinschrittig vorgeht und jeder Schritt klar ist und wenig Abstraktion erfordert – so dass eben selbst ein Prozessor ihn ausführen kann.

3. Der Arbeitsspeicher

Um das Spiel verstehen zu können, muss man allerdings erst den Arbeitsspeicher eines Computers verstehen. Der ist das Gedächtnis des Computers, und das wird immer dann gelöscht, wenn man den Rechner ausschaltet. (Beim Neustart müssen die Gedächtnisinhalte erst wieder von der Festplatte oder anderen Speichern geladen werden.) Man kann ihn sich vorstellen wie ein Tabellenkalkulationsdokument voller Zahlen:

corewar_01

Es gibt Zellen, die alle gleich groß sind und Platz jeweils für eine Zahl einer bestimmten Größe haben – sagen wir von 0 bis 255. (Für größere Zahlen muss man die Information dann auf mehrere Zellen verteilen.)
Ein Unterschied ist der, dass so ein Arbeitsspeicher nicht zweidimensional angeordnet ist wie Schiffeversenken oder eben Tabellenkalkulation, sondern eine lange Reihe von Zellen ist, alle hintereinander und alle durchnummeriert. Grafisch abgebildet wird er meist trotzdem in zweidimensionaler Form, weil er sich so einfach leichter darstellen lässt. Aber die Zellen werden eben nicht in der Form “A1″ (für die Zelle links oben) und “J4″ (für eine Zelle weiter rechts und weiter unten) bezeichnet, sondern sie haben fortlaufende Nummern: Nummer 0 ist die erste Zelle, und Nummer 4294967295 ist die letzte Zelle, wenn man von 232 Zellen im Arbeitsspeicher ausgeht. (Das wären etwas mehr als 4 Gigabyte. Wie groß der Arbeitsspeicher tatsächlich ist, also wie viele Zellen es gibt, hängt natürlich vom Rechner ab.)

Eigentlich – zumindest auf irgendeiner Ebene der Eigentlichheit – stehen die Zahlen dort im Binärsystem, also etwa “10111001″. Im Dezimalsystem entspricht das der Zahl “185″. Für uns spielt das keine große Rolle, aber das Beispiel oben sieht dann so aus:

corewar_02

4. Befehle und Daten

Bei den üblichen Rechnern liegen alle Informationen im gleichen Speicher, das Programm und die Daten. In einer Assemblersprache könnte es zum Beispiel eine Befehlszeile ADDIERE 45 15 geben – das soll heißen, addiere die Zahl 45 zur Zahl 15 und merke dir das Ergebnis im Kurzzeitgedächtnis. Diese Elemente, also der Befehle ADDIERE und die beiden Zahlen, liegen hintereinander im Arbeitsspeicher. ADDIERE sieht dort aus wie eine ganz normale Zahl, und ist auch eine ganz normale Zahl, da ja überhaupt nur Zahlen gespeichert werden können. Aber wenn der Prozessor angewiesen wird, diese Zelle als eine Zelle mit einem Befehl zu interpretieren, dann funktioniert die Zahl, die für ADDIERE steht, als Auftrag, dass er genau das mit den nächsten beiden Zahlen machen soll.

Viel mehr braucht man für Core War nicht zu wissen.

5. Der kleinste Core Warrior

Das kleinste funktionierende Core-War-Programm besteht nur aus einer Zeile:

MOV 0, 1

Wenn diese Zeile ausgeführt wird, heißt das: Kopiere (“move”) die Zeile, die von der aktuellen 0 entfernt ist, in die Zeile, die von der aktuellen 1 entfernt ist. Und mach weiter bei der nächsten Zeile – das muss man nicht hinschreiben, das passiert automatisch, wenn man nichts anderes anweist. (Fußnote für die, die andere Assemblersprachen kennen: Ja, in Redcode stehen Befehle und Argumente in einer gemeinsamen Speicherzelle.)

Am Anfang sieht der Arbeitsspeicher so aus, als Nächstes wird der Befehl in Adresse 000 ausgeführt:

Adresse 000: MOV 0, 1
Adresse 001: (irgendwas)
Adresse 002: (irgendwas)

Danach sieht der Arbeitsspeicher so aus, als Nächstes wird der Befehl in Adresse 001 ausgeführt:

Adresse 000: MOV 0, 1
Adresse 001: MOV 0, 1
Adresse 002: (irgendwas)

Danach sieht der Arbeitsspeicher so aus, als Nächstes wird der Befehl in Adresse 002 ausgeführt:

Adresse 000: MOV 0, 1
Adresse 001: MOV 0, 1
Adresse 002: MOV 0, 1

Und so weiter. Das Programm läuft ewig, solange es nicht gestört wird.

6. Adressierungsarten und ein weiterer Kämpfer

An diesem Beispiel sieht man die unterschiedlichen Adressierungsarten, die es gibt:

Adresse 001: MOV  +3,  @+4
Adresse 002: ADD  #2,  +3
Adresse 003: JMP  -2
Adresse 004: DAT #1234
Adresse 005: DAT #10

Die erste Zeile sagt, dass die dritte Zeile (von der aktuellen aus gezählt, also Adresse 004) kopiert werden soll an die Adresse, die in der vierten Zeile steht (von der aktuellen aus gezählt, also in diesem Fall Adresse 005, wo #10 steht, also ist das Ziel der Kopieraktion die Adresse 010).
Die zweite Zeile sorgt dafür, dass die Zahl 2 zum Wert in der Adresse 3 Zeilen weiter addiert wird. Unter Adresse 005 steht danach also #12.
Die dritte Zeile sorgt dafür, dass der Befehlszähler danach nicht automatisch wie sonst auf die nächste Zeile zeigt, sondern auf die Zeile 2 Zeilen vor der aktuellen (in diesem Fall also Adresse 001, wo wir wieder von vorne beginnen, nur dass sich das in Adresse 005 stehende Kopierziel geändert hat).

Den Unterschied zwischen +4, #4 und @+4 erkennt man vielleicht so:

  • JMP #4 heißt: Springe zu Adresse 4 – diese absolute Adressierung funktioniert in Redcode nicht. #4 bedeutet: Die Zahl 4 selbst, unmittelbar.
  • JMP +4 heißt: Springe zur Adresse 4 Zeilen weiter. Das heißt relative Adressierung (wird in Redcode auch “direkte Adressierung” genannt).
  • JMP @+4 heißt: Springe zu der Adresse (relativ betrachtet), die in der Adresse 4 Zeilen weiter steht. Das heißt indirekte Adressierung.

Diese Unterschiede gibt es auch bei richtigen Assemblersprachen.

7. Was ich sonst noch weiß

Nicht mehr viel. Aber man kann das ja mal Schülern zeigen. Richtig einsteigen wird man kaum, aber die Schüler sehen wenigstens, dass sie mit ihrem Assemblerwissen etwas anfangen können.
Hier ist die Wikipedia-Seite dazu, auf der auch ein Link zu einem ausführlichen deutschen Handbuch steht. Dort wird die Assemblersprache Redcode vorgestellt, in der Core-War-Programme geschrieben sind, es gibt außerdem Beispiele für verschiedene Angriffs- und Verteidigungstechniken.

LyX – LaTeX für Anfänger

In Physik, Mathematik oder Informatik trifft man immer wieder mal auf besonders schön gesetzte Hausarbeiten, Zulassungsarbeiten oder auch Fachartikel. In diesen Bereichen spielt Typographie eine besondere Rolle, da die verwendeten mathematischen Formeln besondere Ansprüche an den Satz stellen.
Meist sind diese Dokumente in der Sprache LaTeX geschrieben. LaTeX basiert auf der eigentlichen Typographie-Sprache TeX. Und mit TeX beziehungsweise LaTeX kann man so ziemlich alles gestalten. Artikel, Bücher, Präsentationen, mathematische Formeln, Inhaltsverzeichnisse, Feynman-Diagramme, Stellungen einer Schachpartie – für so ziemlich alles gibt es vorbereitete Pakete.

Ich war immer neidisch auf diese schönen Seiten. Da LaTeX aber eine Menge Einarbeitungszeit erfordert, habe ich nie die Zeit und Energie investiert, mich damit zu beschäftigen. Aber immerhin habe ich in den letzten Tagen ein bisschen mit LyX gearbeitet.

lyx

Im Vergleich zu LaTeX-Entwicklungsumgebungen sieht LyX eher aus wie ein herkömmliches Textverarbeitungsprogramm. Seine WYSIWYG-Darstellungsweise (What You See Is What You Get) ist aber vergleichsweise rudimentär; man sieht nur ungefähr, wie das fertig gestaltete Dokument dann aussehen wird. Das ist ein Feature von LyX und nennt sich WYSIWYM (What You See Is What You Mean): Man kommt gar nicht auf die Idee, das so zu formatieren, wie es am Schluss aussehen soll, sondern durch logische Markierung als Überschrift oder Haupttext oder Liste. Um das genaue Aussehen kümmert sich LyX dann selber.

Die gute Nachricht: LyX macht es leicht, Dokumente zu erstellen und als pdf zu exportieren, und die Dokumente sehen danach genau so gut aus, wie man das von LaTeX gewöhnt ist. Im Prinzip funktioniert das wie beim Arbeiten mit MS Word oder Libre/Open Office: Man tippt seinen Text und weist bestimmten Absätzen Formatvorlagen zu. Und das war’s, nur dass das Ergebnis deutlich besser aussieht. (Außerdem lassen sich leicht mathematische Formeln setzen, aber damit habe ich weniger zu tun. Für Libre Office gibt es übrigens das Plugin texmaths, um Formeln in LaTeX-Syntax zu schreiben.)

Die schlechte Nachricht: Das Arbeiten bleibt so lange einfach, wie man mit den vorgegebenen Formatvorlagen zufrieden ist. Will man neue erstellen, muss man LaTeX können; will man vorhandene erweitern, erst recht. Einen Artikel mit Titel, Zwischenüberschriften, Inhaltsverzeichnis, Bibliographie zu schreiben, das geht leicht. Aber schon Zeilennummern erfordern Aufwand, und es hat lange gedauert, bis ich eine Vorlage gefunden habe, die Zeilennummern für Gedichte so ermöglicht, wie ich sie mir vorstelle.

Wer’s anschauen möchte: Hier ist eine kleine Einführung in Processing, mit LyX geschrieben. (Blogeintrag zu Processing.)

Ich hoffe, dass wir LyX bei uns im Computerraum installieren können. Schüler könnten damit schöne Handouts für Referate erstellen: Man kann in LyX gar nicht zweimal oder noch öfter hintereinander die Leertaste drücken (um eine Überschrift zu zentrieren), und man kann gar keine Leerzeilen schreiben, um Abstände zwischen Absätzen zu erzeugen. Das läuft alles nur über Formatvorlagen. Davon gibt es nur wenige, und demnach sehen alle Blätter gleich aus – aber halt erst einmal gut.

Richtig nützlich ist LaTeX neben der Bearbeitung von Formeln vor allem bei großen Dokumenten. Die schreibt man als Lehrer aber selten; meistens ist es sogar von zentraler Bedeutung, dass der Text auf genau eine Seite passt, weil ja doch ausgedruckt und kopiert wird. Auch dafür eignet sich LyX nur begrenzt. Außerhalb der Schule ist das nicht so wichtig.