Twitteridee und Twitteridum

Liebe Lesende, sehr verehrte Mittwitterer,

jetzt bin ich also seit ungefähr einem Monat nicht nur Blogger, sondern auch Twitterer.  Ich hatte vorher schon einen anderen Twitter-Account, aber nur zum (unregelmäßigen) Lesen, nie zum Schreiben.  Ich habe Twitter als passives Informationsmedium genutzt, hin und wieder, und war damit ganz zufrieden.

In Verbindung mit dem Blog macht Selbertwittern plötzlich viel mehr Sinn: Eine schnelle Rückmeldung hier, einen interessanten Link posten da – gar nicht so schlecht! Macht Spaß! Und dann sogar mal ein Retweet, eine Favorisierung, eine Antwort. Schön!

Und ich denke: „Wenn man erstmal den Mund aufmacht in einer Konversation, dann hört man besser auch aufmerksam zu, oder?“  Und lese…

Aber, liebe Mittwitterer, dieses irre Grundrauschen – wie kommt ihr damit klar? Will ich alles lesen, bin ich beschäftigt wie zu meinen schlimmsten Zeiten als Spiegel-Online-Junkie*.  Lese ich nicht alles, verpasse ich im Rauschen bestimmt den einen Link, den treffenden Kommentar, den ich gerne gelesen hätte.  Da ich mich inzwischen ja fast nur noch mit Schule beschäftige und kaum noch mit Musik, Literatur, Filmen, amerikanischen Fernsehserien, KI, Clojure, generativer Kunst, usw., lese ich den zweiten Account auch gar nicht mehr. Schade, irgendwie. Aber zurzeit wäre das nur noch mehr Rauschen.

Vielleicht nutze ich Twitter ja bisher falsch. Gut möglich. Dass ich es überhaupt nutze, unterscheidet mich von meinem gesamten Bekannten- und Freundeskreis! Auch von den zehn Jahre jüngeren Mitreferendaren, erstaunlichweise. Woran das liegt? Sie haben schlicht „keine Zeit dafür“.  Das finde ich einerseits kein ausreichendes Argument, denn ich müsste viel fernsehen oder Tageszeitung lesen (was meine Freunde alle tun), um viele der Informationen zu finden, die ich von den freundlichen Mitmenschen auf Twitter auf dem Silbertablett präsentiert bekomme.  Andererseits verstehe ich das Argument vollkommen: Jede Minute auf Twitter ist eine, die ich nicht mit den Kindern, der Ehefrau, einem guten Buch, einer kreativen Tätigkeit oder – äh, vielleicht hätte ich das an den Anfang stellen sollen – der Unterrichtsvorbereitung verbringe.  Statt dessen verfolge ich Mikro-Selbstgespräche, die manchmal in kurze Dialoge münden, meistens aber im Nichts bzw. im Hintergrundrauschen verhallen. Oder kommt mir das nur so vor?

Ich bin, wie ihr seht, sehr gespalten.  Bloggen: Toll! Twittern? Keine Ahnung.

Deshalb, liebe Lesende, spiele ich den Ball in eure Hälfte: Vielleicht nutze ich Twitter ja wirklich falsch – wie nutzt ihr es? Benutzt ihr einen Client, der euch hilft signal und noise zu trennen? Listen?  Wo benutzt ihr Twitter? (Meine These: Twitter ist für Pendler!) Wann?

Danke für deine Hilfe, liebes Internet!

(Jetzt aber erstmal mit Patenkind, Tochter und deren bestem Freund ins Theater. „J+L erreichen Drachenstadt. Emma = Drache = super Tarnung! Pls RT!“)

 

* Zum Glück hat SpOn sich mir mit den Jahren sozusagen selbst entwöhnt. Denn wenn ich bild.de lesen wollte, würde ich bild.de lesen.

Advertisements

Prüfung!

Heute hatte ich meine erste Prüfung!

Wow, das geht alles so schnell… vor einem Jahr saß ich noch in meinem Büro an der Uni und habe über Handlungsplanung bei intelligenten Agenten nachgedacht… Heute spreche ich, als hätte ich nie etwas anderes getan, mit den Prüfern über Schulrecht und Schulorganisation, über die drei zentralen Aspekte der Aufsichtspflicht*, die acht Voraussetzungen für die Verbeamtung und die vielfältigen Wege in BaWü zur Hochschulreife.  Eigentlich unvorstellbar!

Es ist gut gelaufen, aber v.a. auch, weil ich einigermaßen Glück mit den Fragen hatte.  Nach mir hat der Mitreferendar, mit dem und von dem ich in der letzten Woche viel gelernt habe und der garantiert besser vorbereitet war als ich, eine schlechtere Note kassiert.  Blödes Gefühl, das.

Trotzdem bin ich natürlich glücklich und erschöpft wie nach einem Marathon.  Dabei waren das heute nur die ca. drei ersten Kilometer auf meinem von Prüfungsleistungen gepflasterten Weg bis zum zweiten Staatsexamen.  Egal: Die erste Etappe ist geschafft und abgehakt – das ist das Allerwichtigste!

Jetzt: Schlafen! Vielleicht auch träumen!

*Es sind natürlich – habt ihr anderen das etwa schon vergessen oder gar bisher überhaupt nicht gewusst? – die „vorausschauende Umsichtigkeit“, die „ununterbrochene Beständigkeit“ und die „kontrollierende Nachdrücklichkeit“. Ich habe gesagt, dass ich mir das nie merken kann, sondern nur: präventiv, kontinuierlich, aktiv. Hat auch gereicht!

Doodle Jump vs The Laws of Physics

Ich werde heute mit meinen Schülern Doodle Jump spielen.

Wenn dann die Doppelstunde noch nicht rum ist 🙂 reden wir darüber, wie man so ein Spiel objektorientiert umsetzen könnte. Wir steigen also in die objektorientierte Analyse ein. Das bereitet uns darauf vor, in den nächsten Wochen unser eigenes einfaches Android-Spiel in Processing umzusetzen.

Als ich gerade also zu Vorbereitungszwecken Doodle Jump auf dem schuleigenen Android Tablet installiert habe, ist mir die subtil-geniale Physik des Spiels zum ersten Mal richtig bewusst geworden: Die Spielfigur hüpft von Plattform zu Plattform, klar. Aber: Die Plattformen sind, physikalisch gesprochen, nur beim Herunterfallen fest – beim Hochspringen dagegen stellen sie für die Spielfigur keinen Widerstand dar. Man landet immer auf den Füßen, stößt sich aber nie den Kopf!

Screenshot von Doodle Jump

In welche Richtung bewegt sich die Spielfigur hier?

Etwas Unrealistischeres kann man sich kaum vorstellen: eine Welt, in der der Aggregatszustand eines Objekts davon abhängt, in welche Richtung sich ein anderes Objekt bewegt.  (Hmm, man könnte es natürlich auch – etwas einfacher – so betrachten: Der Zustand der Spielfigur ist aufwärts ein anderer als abwärts. Ändert aber nichts an der physikalischen Unmöglichkeit.)

Das Tolle daran: Im Spiel funktioniert das hervorragend. Jedes Kind begreift die physikalischen Gesetze des Spiels sofort. Sie sind so intuitiv, dass ich bei (zugegeben oberflächlichem) Suchen nirgends auch nur eine Erwähnung, geschweigedenn Diskussion dazu gefunden habe.*

Brilliantes Game Design!  Und wir sehen mal wieder: Dem erfinderischen Geist ist alles möglich – gerade in der Welt der Informatik, die sich jeder macht, wie sie ihm gefällt.

Mal sehen, was meinen Schülern so einfällt… Sie haben mich mit ihrer Kreativität beim Programmieren schon einige Male begeistert!

* Die deutsche Wikipedia-Seite zu Doodle Jump diskutiert aber in sehr seltsamer Diktion einige andere physikalische Vereinfachungen im Spiel. Die „unendliche Multitudo an Geschosskugeln“???

LOGO und Lógos

Ich lese gerade Seymour Paperts Klassiker „Mindstorms: Children, Computers, and Powerful Ideas“. Was für ein tolles Buch! Geschrieben 1983 und voller Einsichten, die heute noch genauso wichtig sind wie damals.

Dazu eine Geschichte: Ich kam 1985 aufs Gymnasium.  Am Ende der 5. Klasse fanden an meiner Schule Projekttage statt.  Wahrscheinlich habe ich in meiner Gymnasialzeit noch ein- oder zweimal Projekttage mitgemacht, aber an die kann ich mich nicht mehr erinnern.  An diese ersten hingegen noch sehr gut – denn damals lernte ich LOGO.  Ich hatte schon vorher ein bisschen BASIC programmiert, auf dem Atari 600 XL, den mein Vater uns Kindern ein Jahr vorher geschenkt hatte.1 Aber verstanden, was Programmieren sein kann, habe ich – so denke ich zumindest im Nachhinein – in diesen drei Tagen in den Katakomben unserer Schule in einem Raum ohne Fenster und mit den ungemütlichsten Neonröhren überhaupt.

Wer nicht weiß, was LOGO ist, kann sich den Wikipedia-Eintrag durchlesen, bekommt aber dadurch ungefähr so viel Ahnung von Logo wie derjenige, der Mozarts 40. Sinfonie kennenlernen will und sich deren Wikipedia-Eintrag durchliest.2 Wahrscheinlich wäre es das beste, ein Kind dabei zu beobachten, wie es mit LOGO interagiert.  Vielleicht kann ich aber auch hier ein bisschen von dem vermitteln, was ich damals mit zehn empfunden habe.

In LOGO verbringt man die meiste Zeit damit, eine Schildkröte durch den Sand bzw. über den Bildschirm zu bewegen, die dabei mit ihrem Schwanz Figuren in den Sand zeichnet. Z.B. könnte man der Schildkröte folgende Befehle geben:

forward 100
right 90
forward 100
right 90
forward 100
right 90
forward 100

Die Schildkröte läuft also 100 Schritte, dreht sich dann um 90 Grad, dann wieder 100 Schritte, wieder 90 grad, usw.  Das erste Aha-Erlebnis bekommt das Kind, wenn es lernt, dass man das „usw.“ auch in der Programmiersprache ausdrücken kann:

repeat 4
   forward 100
   right 90
end

Klar: Laufen, Drehen, und das Ganze vier Mal.

Und dann die für mich damals faszinierendste nächste Stufe: Ich kann dem ganzen einen Namen geben, z.B. „Quadrat“.

to quadrat
repeat 4
   forward 100
   right 90
end

Und danach kann ich mein neues Wort „quadrat“ verwenden wie vorher „forward“ und „right“.  Statt 7 Anweisungen wie im ersten Beispiel, oder 4, wie im zweiten, brauche ich ab jetzt nur noch eine einzige, um ein Quadrat zu zeichnen:

quadrat

Nicht nur kann ich nun mit viel weniger Anweisungen das selbe erreichen wie vorher, sondern ich kann auch komplexe Dinge plötzlich viel einfacher ausdrücken. Z.B. das hier:

repeat 72
   quadrat
   right 5
end

Und siehe da, meine Schildkröte malt etwas verblüffend Schönes4:

Wow, ich habe nicht nur aus 72 Quadraten eine interessante Form gezeichnet, sondern ich habe gelernt eine Folge konkreter Handlungsanweisungen zu abstrahieren in ein Konzept, das Konzept des Quadrats, und dieses dann in einem größeren Kontext anzuwenden.

War mir vorher selbst so klar, was dahinter steckt, ein Quadrat zu zeichnen? Natürlich irgendwie, aber sehr implizit: ich konnte es eben.  Man könnte sagen, aus prozeduralem Wissen (etwas tun können) wurde deklaratives (wissen, wie man es tut).  Oder, um mit Papert und Begriffen von Piaget (bei dem Papert gelernt und mit dem er gearbeitet hat) zu sprechen: „The computer can concretize (and personalize) the formal.“

Mein neues Wort, mein Konzept vom Quadrat kann ich überall anwenden – und ich kann es verallgemeinern, indem ich z.B. seine Größe nicht mehr fest einprogrammiere, sondern diese dem Wort „quadrat“ als Zusatzinformation mitgeben kann:

to quadrat :groesse
repeat 4
   forward :groesse
   right 90
end

Diese Zusatzinformation funktioniert fast wie ein Adjektiv: Jetzt kann ich sagen „ein großes Quadrat“ (quadrat 100), „ein kleines Quadrat“ (quadrat 50). Dann vielleicht ein großes oder kleines Dreieck. Schließlich: ein Haus (Quadrat + Dreieck), eine Straße, eine Stadt… Die Sätze und Texte, sprich: die Anweisungen und Programme, die ich formulieren kann, werden komplexer in ihrer Bedeutung, aber in ihrer Form zwischenzeitlich sogar immer wieder einfacher, weil ich, was ich ausdrücken möchte, konzeptualisiere und abstrahiere.  Und so erweitere ich mein Vokabular und meine Ausdruckskraft schrittweise immer weiter.5

Solche Gedanken habe ich als Kind natürlich nicht gehabt.  Aber gefühlt habe ich es und gesehen, dass die Zeichnungen, die meine Schildkröte in den Sand malte, komplexer und schöner wurden, gleichzeitig ihre Beschreibung im Programm irgendwie „höher“, mehr das Wesentliche in den Vordergrund rückend und die Grundbausteine versteckend.  Auch die Idee, dass ich die Sprache, in der ich mich mit dem Computer unterhielt, erweitern und damit ihre (Ausdrucks-)Kraft vergrößern konnte, hatte schon damals eine große Faszination.  Jetzt, wo ich Papert lese, kann ich das alles verstehen.  Aber den Schülern weitergeben möchte ich, wenn irgend möglich, in erster Linie diese intuitive Faszination und erst später das Verständnis.

Irgendwie hat sich ein Leitmotiv in diesen Artikel geschlichen, das der Sprache. Bernstein betrachtet die Musik mit den Mitteln der Sprachwissenschaft, Steele lässt „eine Sprache wachsen“, das LOGO-programmierende Kind bringt dem Computer neue Worte bei.  Und Papert? Hat er, als er damals für seine neue Programmiersprache den Namen LOGO wählte, an Lógos gedacht?  Ich weiß es nicht…

P.S. Da da ein eher assoziativer, wenig argumentativer Artikel geworden ist, stelle ich meine knallharten Forderungen in eine allerletzte Fußnote.7

Viele, viele Fußnoten:

(Ich kann, fürchte ich, auf wordpress.com keine anständigen, verlinkten Fußnoten machen. Oder?)

1 Ansonsten spielten meine Schwester und ich darauf vor allem oft und gerne das einzige Spiel, das wir besaßen, Ms. Pacman.

2 Das war jetzt ein (nicht gerade subtiler) Trick, um mal meine Lieblingssinfonie zu erwähnen.  Und dass ich jetzt an die denke, ist wohl kein Zufall, denn ich verdanke sie indirekt auch meiner Schule: Zum Abi bekam ich, wie alle Mitglieder des Schulchors, von den Musiklehrern ein Buch geschenkt, „Musik, die offene Frage“ von Leonard Bernstein, in dem er Musik, u.a. sehr ausführlich am Beispiel der Sinfonie Nr. 40, mit den Mitteln der Linguistik untersucht. Mein Gott, hat mich das begeistert! Mir war damals nicht klar (oder es spielte in der Zeit vor dem Internet zumindest keine Rolle für mich), dass das Buch auf sechs Vorlesungen basierte, die Bernstein 1973 in Harvard gehalten hatte. Gerade eben habe ich recherchiert: Einen Teil der Ausführungen über die 40. Sinfonie kann man hier sehen! Mensch, das ist ja als Vortrag mit Bernstein live am Flügel noch viel toller!  Und es kommt noch besser: Die gesamte Vorlesungsreihe ist inzwischen bei openculture.com frei verfügbar3. Es ist eine beglückende Vorstellung, dass viele, viele Menschen sich das jetzt anschauen können, z.B. ich.

3 Frei verfügbar my ass! In Deutschland ist sie es nicht, die YouTube-Videos können nicht gespielt werden. Ob das richtig so ist (dann aber doch eigentlich auch für den Rest der Welt gelten sollte) oder nicht, kann ich nicht beurteilen.

4 An dieser Stelle habe ich übrigens geschummelt. Die Grafik ist nicht mit Logo entstanden, sondern mit Scratch.  Über Scratch, mit dem ich in diesem Jahr in der zwölften Klasse (!) die ersten vier Wochen eine Einführung in die strukturierte Programmierung gemacht habe, muss ich mal ausführlich separat schreiben.  Hier nur soviel: Scratch ist ein toller Nachfolger von Logo; ich liebe es; trotzdem ist schon dieses simple LOGO-Beispiel jenseits der Möglichkeiten von Scratch – weil man in Scratch keine neuen Prozeduren/Funktionen definieren kann.  In Scratch konnte ich also nicht einfach „quadrat“ sagen, sondern musste alle Anweisungen in ein längeres und komplizierter aussehendes Programm packen.  Nämlich dieses:Wenn der Mangel, keine eigenen Prozeduren definieren zu können auch für die Schüler offensichtlich und zum Problem wird – dann ist man an dem Punkt, entweder zu BYOB (Build your own blocks) zu wechseln oder zu einer etwas klassischeren Programmiersprache, in meinem Fall Java bzw. Processing.

5 Viele Jahre später habe ich Guy Steeles Vortrag „Growing a Language“ gesehen.  Alle Informatik(lehr)er, die den Vortrag nicht kennen: bitte schaut mal zumindest die ersten zehn Minuten an – der Vortrag hat einen Twist, für den M. Night Shyamalan töten würde. (Zumindest, wenn er Linguist oder Informatiker wäre.)

6 Wer das liest, hat geschummelt!

7 Ja natürlich hat Informatik allgemeinbildenden Charakter. Konzepte entwickeln, Ideen abstrahieren, Sprache einsetzen und kreativ verändern, vom Problemlösen diesmal ganz zu schweigen – was ist das für ein geniales Schulfach, indem man das alles erkundet, sich selbst erschließt? Fächerübergreifende Projekte mit Musik, Kunst, Mutter- und Fremdsprachen, Mathematik, undundund sind möglich. Und noch dazu die wirtschaftliche Relevanz, die selbst alle diejenigen überzeugen müsste, denen grundsätzlich-philosophische Gedanken wie die in diesem Artikel fremd sind… Warum haben wir das nicht längst überall, ab der Unterstufe? Ich versteh’s nicht!

Funktionen und die Zukunft von Java

Der Kollege Ingo schreibt drüben über funktionale Programmierung in Java.  Ein immer wieder spannendes, letztendlich aber leider auch immer frustrierendes Thema. Da ich noch exakt 30 Minuten habe, bevor ich ans Seminar muss, schaue ich mal, ob ich dazu was raushauen kann.

Der mittlerweile klassische Text* dazu ist wohl Steve Yegges „Execution in the Kingdom of Nouns“. Kurzfassung: Java kennt nur Substantive (sprich: Klassen), es fehlen die Verben (sprich: Funktionen, Closures, Blocks, wie auch immer) – dabei machen die doch die Hauptarbeit, egal ob in einer natürlichen oder in einer Programmier-Sprache.

Das muss man nicht so sehen.  Aber wer schon mal versucht hat, sagen wir, einen Taschenrechner zu simulieren, der wird an Java verzweifelt sein.  Dass der Taschenrechner viele verschiedene Zahlen verarbeiten kann: für Java kein Problem!  Dem Taschenrechner aber verschiedene Rechenoperationen beibringen: unglaublich kompliziert!  Für jede braucht man eine eigene Klasse (z.B. Addition, Subtraktion, Potenz, Wurzel, …) die letztzlich alle nicht viel mehr tun werden als eine Methode rechne() aufzurufen, die dann je nach Klasse addiert, subtrahiert, potenziert, usw. Verben machen die Arbeit!!!  Aber die gibt es in Java nur durch die Hintertür.

Ohne das überprüft zu haben (korrigiert mich, wenn ich falsch liege) behaupte ich:  Mehr oder weniger alle Sprachen, die seit Java populär wurden, haben First-Class Funktionen. Python, JavaScript, die neuen funktionalen Sprachen wie Clojure und F# sowieso.  Java hat anonyme innere Klassen und bekommt… vielleicht… demnächst… irgendwann… Closures.

Das reicht nicht.  Spätestens seit sich mit JavaScript ein Standard (ja, das muss man wohl so sagen) für die Web-Programmierung etabliert hat, der vieles hat, was Java fehlt (leider auch manches andere, das man eigentlich lieber nicht möchte), sehen die Leute Java sehr kritisch.

Meine Prognose: Wir werden in 5 Jahren nicht mehr Java unterrichten!

So, und jetzt muss ich gehen und kann das nicht mehr ausführen.  Was meint ihr?

*Aber: Für den Einstieg und für alle, denen Yegge zu lang oder zu laut ist, noch viel besser geeignet (da kürzer und leichter verständlich), ist dieser Artikel von Joel Spolsky „Can Your Programming Language do This?“

Das Informationstechnik-Paradoxon

Ich habe hier mehrere halbfertige Blog-Artikel zu Themen, die mir wirklich am Herzen liegen – aber finde im Augenblick (u.a. wegen anstehender Unterrichtsbesuche und Prüfungen) keine Zeit, diese angemessen abzuschließen.  Deshalb drehe ich – schon ganz Lehrer! – den Spieß einfach mal um und mache auf SchülerLeseraktivierung.

Aufgabe: Erörtern Sie (im Kommentar hier, auf Twitter oder auf Ihrem eigenen Blog) die Thesen des folgenden Rants:

Wir sind umgeben von Informationstechnologie. Kleinkinder bedienen iPods, ihre Großeltern IPads und alle anderen zumindest ein Smartphone.  Der Computer ist für einen Großteil der Bevölkerung zum unverzichtbaren Arbeits- und Kommunikationsmittel geworden.  Und selbst wenn ein Objekt des täglichen Lebens nicht aussieht wie ein Computer, z.B. ein Auto, eine Heizung, ein Geldautomat oder eine Supermarktkasse, wird es doch häufig von einem solchen unterstützt oder kontrolliert.  Informationstechnologie ist ubiquitär, nicht nur in der Arbeitswelt, sondern insbesondere auch in der Freizeit vieler Menschen.

Paradox ist, dass Informationstechnik immer einfacher zu verwenden, aber offenbar immer weniger zu begreifen ist.  Programmierung – die Kunst, einer Maschine beizubringen, wie sie meine Probleme für mich lösen kann – gilt (mehr als noch vor zwanzig Jahren!) als arkane Kunst, schwierig und undurchdringlich, denjenigen Außenseitern vorbehalten, die sich möglichst gut in eine Maschine „hineinversetzen“ können – und wer will das schon?

Das Resultat: Wir leben in der verrückten Situation, unser Leben von etwas abhängig zu machen, das wir nicht verstehen und (mangels Verständnisses) auch nur unzureichend kontrollieren können – aber wir hoffen eben das Beste. Mit anderen Worten: Wir nutzen Technologie wie Magie!  Das ist zwar nicht verwunderlich (s. drittes Clarkesches Gesetz) – aber ist es erstrebenswert?

Offenbar ja! Wie sonst kann man erklären, dass

  • der allgemeinbildende Charakter des „computational thinking“ noch immer weitgehend überhaupt nicht erkannt ist und aufgrund dessen
  • der Informatikunterricht immer weniger Raum an den Schulen bekommt und stattdessen als dünnes Surrogat ITG in andere Fächer integriert wird;
  • der Begriff „Algorithmus“ den Menschen entweder unbekannt oder (wie Kathrin Passig schön formuliert hat) „auf dem besten Weg zum Schulhofschimpfwort“ ist
  • dass (um mal auch die potentiellen Leser dieses Blogs ein wenig zu provozieren) selbst die IT-affinen, education 2.0 (oder wie man das nennt) Lehrkräfte sich selten dafür aussprechen, IT an der Schule nicht nur einzusetzen, sondern ihre Funktionsweise zu verstehen, sie womöglich zu „hacken“ und sie sich dadurch zu eigen zu machen – allgemein empowerment statt noch mehr Technikabhängigkeit zu schaffen!

Sie haben zur Bearbeitung der Aufgabe unbegrenzt viel Zeit.  Zusammenarbeit mit dem Nebensitzer ist gestattet und ausdrücklich erwünscht.

Zusatzaufgabe für die Schnellen (Binnendifferenzierung!): Erklären Sie Ihren Schülern, warum sie a) Word-Formatvorlagen verwenden sollten b) in Excel-Formeln möglichst wenige Zahlen vorkommen sollten c) sie RSS-Reader und d) Email-Filter verwenden sollten (nein, nicht nur Spam-Filter! Selbst angelegte, für ihre persönlichen Zwecke eingerichtete Filter) e) Lesen Sie Mindstorms! f) Probieren Sie Scratch aus (gerade wenn Sie kein Informatiklehrer sind!)