Funktionale Programmierung mit Java 2

Das Experiment “Funktionale Programmierung mit Java” läuft – und bis jetzt recht erfolgreich.

Erste Stunde

In der ersten Stunde habe ich kurz das Konzept hinter Java erklärt, also das man lesbaren Sourcecode programmiert und diesen dann in ByteCode kompilieren (übersetzen) lassen muss. Beide Arten von Dateien *.java und *.class haben wir dann in WordPad angeschaut und kurz verglichen. Manches lässt sich in der class-Datei wiederfinden viel Unlesbares ist dazu gekommen.

Da class-Dateien wie Filme sind, brauchen wir noch einen Projektor zum Abspielen und Anzeigen des Films. Ob der benötigte Projektor (Virtual Machine) jetzt auf Windows, OSX oder Linux ist, ist dabei egal – das gilt zwar nicht immer, kann hier aber als didaktische Reduktion aufgefasst werden.

Zweite Stunde

Nun ging es um das Umsetzen des ersten Programms und das Kennenlernen von BlueJ. Dazu habe ich den folgenden Programmcode an die Tafel geschrieben und jeden Teil erklärt und Bezüge zum Stoff der sechsten und siebten Klasse aufgezeigt. Also so Sachen wie “Klassen-Definitionen sind wie Baupläne nach denen Objekte gebaut werden”.

Nur zur Vervollständigung  der Analogie: Der Konstruktor ist der Bauleiter, der aufpasst, ob alles richtig angeliefert und benutzt wird. Benötigen tue ich ihn erstmal nicht.

class HelloWorld {
    public void sagen() {
        System.out.println("Hallo Klasse");
    }
}

Nach dem die typischen Fehler (Semikolon, falsche/fehlende Klammern, falsche GROSSkleinSchreibung) auch gelöst werden konnten, kam auch auch schon die dritte Stunde.

Dritte Stunde

In der dritten Stunde wollte ich unbedingt den ersten Zusammenhang zum funktionale Programmieren in Excel bringen und zeigen, wie Funktionen sich gegenseitig aufrufen. Das Beispiel sollte dabei erstmal ohne Mathematik auskommen. Ich wollte die ersten Programmzeilen einfach nur öfters verwenden. So erhoffte ich mir eine Konzentration auf das eigentliche Problem des Methoden-Schreibens.

Ich dachte zuerst an einen Dialog aus einem Buch, wollte aber dann doch die 28 (!) Jungs meiner Klasse mit ein wenig interessanterem Stoff ansprechen und wir haben Frage-Antwort-Witze umgesetzt. Der zugehörige Java-Sourcecode sah dabei wie folgt aus:

class Hans {
    public void witz1() {
        frage1();
        antwort1();
    }

    private void frag1() {
        System.out.println("Was ist Rot und hängt an der Scheibe?");
    }

    private void antwort1() {
        System.out.println("Tomate in der Mikrowelle");
    }
}

Leider lässt sich keine schrittweiser Ablauf des Programms mit Pause erstellen, aber das war für alle zu verschmerzen.

Reflektion

Als gute Lehrer sollte man ja ab und zu mal über das Reflektieren was man so macht und das soll nun abschließend folgen:

  1. Negativ: Neuntklässler kennen eigentlich nur rassistische, erniedrigende und frauenfeindliche Witze. Beim nächsten Mal muss ich was anderes wählen. Vielleicht so Richtung Vokabeln oder Lexikon. Aber das ist dann auch nicht so lustig.
  2. Positiv: Ich konnte den Schüler zum ersten Mal an dieser Stelle schon erklären, warum manche Methoden public sind (Aufforderung zum Witz erzählen) und private (Den Ablauf und Inhalt des Witzes kennt nur die erzählende Person).
  3. Problematisch: Schaut man sich das Tafelbild an, so haben die Methoden alle Datenquellen und Datensenken (Pfeile), die aber eigentlich gar nicht umgesetzt werden. Datenquellen wäre Parameter und Datensenken wären Returns. Für die Schüler ist das nicht so schlimm, da durch die Pfeile jetzt eher ein Ablauf dargestellt wird, aber eigentlich missbrauche ich das Datenflussdiagramm als Programmablaufplan. Ich werde also doch schnell auf was mathematisches wechseln müssen.

Insgesamt bin ich mit dem Verlauf soweit zufrieden. Aber diese Pfeilproblematik finde ich noch nicht wirklich befriedigend. Vorschläge?

Ukulele lernen

Nicht nur meine Schüler haben es mit dem Lernen schwer – auch ich. Nach einer mehr oder weniger freiwilligen Ukulele-Spielpause im Sommer musste ich in den letzten Tagen feststellen, dass ich auf einem Lernplateau festhänge. Jeder Sportler weiß genau, was ich meine: Trainings- und Übungstage an denen einfach nichts vorangeht. Man wird nicht besser, schneller, stärker oder sonstwas, es bleibt einfach so wie es vorher war – und das obwohl man sich sonst wie quält. Wenn man dann denkt, dass das Training damit sowieso hinfällig ist und man es einfach ausfallen lässt, merkt man allerdings recht schnell, dass es doch nicht sinnlos ist. Die Talfahrt in Bezug auf die Leistung geht schneller als man denkt.

Um solche Plateaus zu überwinden gibt es meiner Erfahrung aus dem Sport nach nur eine Möglichkeiten: Anders trainieren – nicht mehr.

Im Fall der Ukulele bedeutet das konkret, dass ich mich in den letzten Wochen intensiver mit der Gitarre auseinandergesetzt habe und damit mal was anderes gemacht habe. Das Ergebnis: Wenn jemand den F-Griff im Barree sicher auf der Gitarre greifen kann, dann hat er mit irgendwelchen Barree-Griffen auf der Ukulele keine Probleme mehr – Trainingsziel erreicht. Insgesamt hat sich meine Griffstärke und -technik dadurch schon mal verbessert.

Nächster Schritt wäre nun das Wegkommen vom reinen begleitenden Lagerfeuerspielen zum Melodiespiel. Dieser Schritt gestaltet sich allerdings deutlich schwieriger als gedacht. Viele Melodien sind nur als Tabulatur verfügbar oder nur mit begeleitenden Akkorden, die Länge der einzelnen Noten ist in der Tabulatur nur schwer zu erkennen oder ich bekomme die gewünschten Griffe nicht hin, weil ich meine Finger nicht über fünf Bünde vor und wieder zurück verbiegen kann.

Was macht man also – man googelt nach Workouts für Gitarre und Ukulele. Dabei bin ich  auf die tolle Seite von Ted Fong gestoßen. Ted hat eine schöne Mischung von Übungen und Theorie, so dass ich hoffen kann, dass es bei mir auch noch mal weiter geht. Und ich nicht nur Mad World spielen muss. Mal schauen, suchen, üben und hoffen. Der nächste weltweite Ukulele-Tag kommt bestimmt – im Februar.

Physik-Frust

Nach dem ich am Anfang voller Euphorie mit Physik wieder angefangen habe, werde ich nun schrittweise auf den Boden der Tatsache geholt.

Aufgabe
Gib die Definition der Lorentzkraft an!

Hier ein paar Antworten:

  1. Die Lorentzkraft ist die Kraft, die man benötigt, um die Schaukel vor und zurückschwingen zu lassen.
  2. Sie gibt die Kraft an, in welche Richtung diese schwingt bzw. fließt.
  3. Die Lorentzkraft gibt die Kraft an.
  4. Die Lorentzkraft ist die Kraft, die bei der Leiterschaukel den Draht nach innen bewegt. Die Kraft, die den Magneten bewegt.
  5. Die Lorentzkraft ist die anziehende Kraft (Kraftrichtung)

Nach mehreren Unterrichtstunden Drei-Finger-Regel, Rechte-Hand-Regel und Zeichnen von Magnetfeldern ist das wirklich frustrierend. Und man steht als ambitionierter Lehrer da und weiß nicht, was man machen soll. Heulen, schimpfen, aufgeben, einfach so weiter machen. Woran kann es liegen, dass Neuntklässler (14 bis 15-jährige SchülerInnen) nach vier Schulstunden immer noch die linke statt der rechten Hand nehmen. Immer noch nicht wissen, was der Unterschied zwischen technischer und physikalischer Stromrichtung ist – die meisten wissen es zwar, aber manche… .

Können oder wollen sie nicht verstehen?

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

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

Schließen