Effizient lernen

“Ich verstehe das nicht, ich habe doch gelernt.”

“Zu Hause kann mein Kind alles.”

Und jetzt, zwei Monate vor dem ersten schriftlichen Abitur in Bayern, kommen Fragen auf wie: “Wo soll ich denn anfangen?”

Diese drei Zitaten zeigen schon, das richtiges erfolgreiches Lernen gar nicht so einfach ist. Aber zu Glück hat youtube auch hierzu eine Antwort. Genauer: Josh Kaufman hat sich dazu Gedanken gemacht. Dabei hat er zwar nichts wesentlich Neues herausgefunden, aber er hat es einfach, kurz und prägnant zusammengefasst:

Ohne Film findet man die Informationen auch auf der zugehörigen Website first20hours.com . Die Aussage von Kaufman ist recht simpel: Alles ist in 20 Stunden erlernbar, wenn man es richtig angeht. Das Niveau ist dann zwar immer noch grundlegend, denn viel Trainingszeit ist durch nichts zu ersetzen. Aber in sinnvoll genutzte 20 Stunden kann man vom totalen Nicht-Könner zum mehr oder weniger Fortgeschrittenen kommen.

Wie soll das nun genau funktionieren? Ganz einfach: Planung und Konsequenz sind die Schlüsselbegriffe. Im Überblick sehen die Schritte so aus:

  1. Definition und Analyse des Ziels
    Was genau ist mein Ziel und aus welchen Teilfähigkeiten wird mein Ziel gebildet.
  2. Selbstkorrektur
    Woran kann ich sehen, dass ich es richtig mache?
  3. Störende Elemente entfernen
    Was könnte mich vom Lernen abhalten? Weg damit.
  4. 20 Stunden üben
    Wenn ich jeden Tag 40 Minuten konzentriert übe, sollte ich nach 1 Monat mein Ziel erreicht haben.

Die Teilschritte möchte ich nun noch kurz erläutern. Diese Erläuterungen kommen jetzt nicht von Kaufman, sondern von mir. Ich selbst habe in den vergangenen Jahren mir einiges angeeignet und auch manches intuitiv richtig gemacht – aber auch einiges falsch.

1. Definition und Analyse des Ziels

Bei Kaufman heißt es nur “Deconstruct the skill”, also Zielanalyse. Aber ich denke, dass der erste Schritt das klare Definieren des Ziels ist. Dabei muss man sich nicht gleich an die die SMART-Kriterien (Spezifisch, Messbar, Erreichbar (Achievable), Realistisch, Terminiert) halten, obwohl das sicher bei der Fokussierung hilft.

Gerade der Punkt “Erreichbarkeit” sollte “Realistisch” bleiben. In 20 Stunden wird man bestimmt nicht zum Nobelpreisträger in Physik oder zur Eiskunstläuferin wie eine Kati Witt. Aber wenn man noch nie auf dem Eis stand, ist eine Pirouette nach 20 Stunden eine ganze Menge.

2. Selbstkorrektur

Wenn ich nicht weiß, was ich objektiv mache, dann kann ich mich auch nicht korrigieren. Beim einem zu lernenden Musikinstrument kann man natürlich viel hören. Aber ich muss auch wissen, wie ich die Hände zu halten habe, damit ich langfristig keine Probleme bekomme.

Ich selbst versuche mich gerade beim Schwimmen und muss mir nun überlegen, wie oder woran ich erkenne, ob ich es richtig mache. Es zu fühlen ist eine Sache, es zu sehen eine andere. Natürlich wäre an dieser Stelle ein Trainer einfacher, aber das geht leider nicht. Ich werde also eine GoPro mitnehmen, um mich aufzuzeichnen.

Beim Lernen auf Prüfungen wählt man einfach ein Buch, das einem die Lösungen zeigt und erklärt.

3. Störende Elemente entfernen

Störende Elemente können einiges sein: Keine Zeit, klingelnde Handys, der Freund oder die Freundin, Eltern, andere Interesse. Viele davon lassen sich durch entsprechende Planung aber berücksichtigen – Krankheiten mal ausgeschlossen.

4. 20 Stunden üben

Ohne Üben geht gar nichts. Und deswegen kommt nach den vorbereitenden Planungsschritten 1-3 nun das eigentliche Üben. Dabei bringen aber 20 Stunden am Stück nur wenig. Und jeden Tag nur 5 Minuten bringen leider auch nichts. Aber ich denke, dass ca. 30 Minuten konzentrierte Übungszeit bei den meisten Dingen ausreichend sein sollte. Dabei muss aber bedacht werden, dass man nicht sofort hochkonzentriert ist. Ich selbst benötige ca. 10-15 Minuten, um mich voll und ganz einer Sache widmen zu können. In dieser Zeit schaue ich mir an, was ich genau machen möchte, mache ein paar Aufwärmübungen oder überprüfe, ob ich den Inhalt vom letzten Mal wirklich kann. (Wer mitgerechnet hat, sollte sich vielleicht nicht mehr wundern, warum Schulstunden bei uns in der Regel 45 Minuten dauern.)

Konkrete Umsetzung

Ich nehme jetzt das Beispiel Ukulele spielen, da Josh Kaufman das auch in seinem Buch darstellt.

Ukulele spielen und dazu singen

  1. Anschlagmuster und/oder Zupfmuster raussuchen, Akkorde finden, 1 konkretes Lied finden
  2. Entsprechende Unterlagen ausdrucken, Stimmgerät besorgen, Handy für Aufnahmen herrichten
  3. Ein ungestörten Raum finden
  4. Feste Trainigszeit für jeden Tag eintragen

Der schwierigste Teil ist jetzt, dass man sich überlegen muss, wie man sich den zu lernenden Stoff aufteilt. In diesem Fall würde ich “Akkorde greifen” und “Ackkordwechsel” üben, weil das später am schwierigsten ist. Wie das konkret aussehen könnte findet sich in dem folgenden Video:

Aber das geht natürlich auch mit anderen Instrumenten:

Aber manchmal geht es zum Glück auch schneller, aber dafür schmerzhafter:

 

Programmieraufgabe 100

Yeah! Geschafft! 100! Ich wiederhole HUNDERT(!) Programmieraufgaben. Aus dem Unterricht… für den Unterricht. Und manchmal ein wenig darüber hinaus.

Und anders als bei der 99. Aufgabe angedeutet, kommt jetzt doch noch eine Aufgabe basierend auf processing. Eine, bei der ich selbst nicht auf eine wirklich gute Lösung gekommen bin, aber dazu gleich mehr. Das genaue Arbeitsblatt gibt es weiter unten zum Herunterladen.

Aufgabe

Implementiere basierend auf processing und dem vorangegangenen Projekt “Schneefall”.

Die Schneeflocken sollen unterschiedlich groß sein und unterschiedlich schnell nach unten fallen. Sind sie außerhalb des unteren Randes, sollen sie gelöscht werden. Dafür werden neue Schneeflocken am oberen Rand erzeugt, die wiederum nach unten fallen.  Die maximale Anzahl an Schneeflocken soll in einem Attribut definiert worden sein.

Im zugehörigen Arbeitsblatt (ArbeitsblattSchneefall) wird das noch genauer beschrieben und es werden für ambitioniertere Schüler noch weitere Anregungen gegeben: Wind, Schmelzen der Schneeflocken.

Den interessantestes Effekt ist aber das Liegenbleiben des Schnee am unteren Rand. Und dabei meine ich nicht, dass es am unteren Rand eine schneeflocken dicke Schicht gibt. Ich hätte gerne wachsende Schneeberge. Nur ist das genau auch der Punkt an dem ich gerade hänge. Denn woher weiß die Schneeflocke, dass sie

  • die erste am Boden ist,
  • gleich auf eine andere stößt, die aber nicht fällt, sondern auch schon am Boden liegt
  • bzw. die oberste eines Schneehaufens ist.

Ich habe hierfür zwei ArrayList

  • ArrayList<SnowFlake> fallingSnow;
  • ArrayList<SnowFlake> snowOnGrnd;

definiert, die die entsprechenden Schneeflocken verwalten. Aber der Durchlauf durch all diese Daten gestaltet sich durchaus zäh. Und um einzelne Schneeflocken-Türme zu verhindern, werden aus fallenden Schneeflocken kleine Rechtecke. Damit habe ich aber jetzt ein anderes Problem: Es bilden sich Hohlräume.

(Man beachte die “Ente” unten im mittleren Bereich.)

Leider ist der ganze Ansatz ziemlich unbefriedigend, da ich eigentlich noch Wind und die damit einhergehenden Schneeverwehung simulieren wollte. Ich spiele daher mit dem Gedanken auf einzelne Pixel zu wechseln und dann jeweils das ganze Bild bei jedem Durchgang neu zu zeichnen. Da bricht dann aber auch die Performance ein.

Von irgendwelchen Schmelzvorgängen, die ein nach unten sacken der Schneeberge erzeugen würde mal ganz zu schweigen. Das habe ich irgendwie mit Schnee-“Stacks” versucht, hat aber auch nicht wirklich geklappt.

Ich habe alles diesmal mit dem processing-Editor gemacht und konnte daher jetzt für alle Plattformen exportieren. Einfach auspacken und mit Doppelklick starten (Eine Java-Installation wird aber vorausgesetzt) Das wäre 34MB groß geworden. Daher jetzt nur die jar-Datei gezippt snowfall.jar  und den Quelltext in einem BlueJ-Projekt: SnowFallc_v3

Wenn jemand also eine Idee hat oder einen funktionierenden SourceCode kennt…

Ansonsten wünsche ich allen frohes Faschingstreiben. Wenn man die Schneeflocken bunt macht, hat man einen Konfetti-Effekt. Passend zu Fasching.

 

 

Programmieraufgabe 99

Die zunächst letzte Programmieraufgabe unter Ausnutzung von processing lautet:

Aufgabe

Schreibe ein Programm bei dem zu Beginn zwischen 2 und 100 Bälle erscheinen, die “weg geklickt” werden müssen. Sind alle Bälle weg, so erscheint der Text: “Gewonnen in 10.1s”. Die benötigte Zeit ist dabei optional.

Noch ein paar Gedanken zur Aufgabe:

  • Zunächst einmal muss ich sagen, dass der Einsatz von Processing im Unterricht prima ist. Selten hatte ich so engagierte Schüler. Das werde ich auf alle Fälle weiter verfolgen und ausbauen.
  • BlueJ eignet sich nur bedingt zum Arbeiten mit processing: Nicht nur die eingebetteten Klassen sind ein wenig merkwürdig. Vor allem die aktuelle BlueJ Version (4.1.1 auf Mac) macht Probleme (Abstürze, falsche Anzeigen). Zum Glück habe ich in der Schule noch die 3er Version.
  • Spiele und andere Programme in dieser Richtung ergeben nur Sinn mit einer ArrayList und einer “for each-Schleife”. Damit schieße ich über den Lehrplan hinaus. Auf der anderen Seiten empfinde ich eine ArrayList in der heutigen Zeit für angebrachter als ein “einfaches” Array. Die Verwaltung der Bälle wäre ungleich schwieriger gewesen (“Ist das Array groß genug?”, “Wie lösche ich Elemente?”, “Wie gehe ich mit null-Werten um.”)
    Nichts desto trotz behandle ich das Array natürlich auch, aber später
  • Das Einführen einer reinen Zählwiederholung war durch die “10 Bälle” am Anfang gut zu motivieren. Und ich hing nicht sofort an einem Array – dafür hatte ich ja die ArrayList eingeführt. Damit habe ich eines meiner ursprünglich Probleme um 10% verringert.

Der ursprüngliche Ablauf war übrigens wie folgt:

  1. Klasse Ball definieren und 1 Ball über den Bildschirm flitzen und abprallen lassen.
    (Grundlegender Spielaufbau, Standardkonstruktor des Balls mit Zufallswerten und Basisverhalten)
  2. Auf Klick einen Ball erzeugen lassen, der sich wie unter 1 bewegt.
    (Konstruktor mit Parameter, alle erzeugten Bälle werden in einer ArrayList gespeichert)
  3. Funktion unter 2. wieder raus. 10 Bälle erzeugen und wenn diese angeklickt wurden, dann aus der Liste entfernen.

Lösung: Ballz_3

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