tag:blogger.com,1999:blog-55569184378105983892024-03-19T03:47:24.386+01:00denkspurengedanken, ideen, anregungen und links rund um themen zur informatik, bildung, studiumUnknownnoreply@blogger.comBlogger153125tag:blogger.com,1999:blog-5556918437810598389.post-65855833583735950282018-01-19T15:24:00.001+01:002018-01-19T15:24:57.225+01:00Wie mich eine KI überzeugte, das Programmieren sein zu lassenAls ich mit 13 oder 14 Jahren einen der ersten Schachcomputer in die Finger bekam, war ich hin und weg. Natürlich spielte ich so lange und intensiv mit der Kiste, bis ich jedes Spiel auf allen Spielstufen gewann. Ehrensache! Mensch gegen Maschine. Das gleiche Schicksal widerfuhr dem Mephisto. Es gab irgendeinen Programmierfehler, da ich in der Tunierstufe -- die sonst um gute Züge nicht verlegen war -- eine Folge aus sieben oder acht Zügen gefunden hatte, die das schwarze Rechenmaschinchen Schachmatt setzte.<br /><br />Der Chess Champion Mark V machte meinen Schachfreunden und mir schon mehr Probleme. Manchmal mussten wir uns geschlagen geben, ein Sieg war längst nicht garantiert, man durfte sich keine Schnitzer erlauben. Man merkte, dass die Computer von Generation zu Generation besser wurden.<br /><br />Und so erlosch auch allmählich meine Begeisterung daran, selber Schach zu spielen. Ich wollte stattdessen lernen, meinem Computer -- ich startete mit einem ZX81 -- das Schachspiel beizubringen. Es war schwer, an das dazu nötige Wissen zu kommen. Bruchstückhaft klaubte ich mir das Know-How in der Prä-Internet-Ära zusammen. Mein erstes Schachprogramm rechnete minutenlang und eröffnete das Spiel mit dem Zug "Springer g1-h3" -- das ist so ziemlich das Dümmste, was man mit seinem ersten Zug tun kann. Das Buch "Das große Computerschachbuch" aus dem Verlag Data Becker war eine Offenbarung. Ich lernte Algorithmen kennen, wie man Spielbäume durchsucht, wie man Spielstellungen bewertet usw.<div>
<br /></div>
<div>
<img alt="Datei:Das grosse Computerschachbuch Cover.jpg" src="https://www.c64-wiki.de/images/3/36/Das_grosse_Computerschachbuch_Cover.jpg" /><br /><br /><a href="https://www.c64-wiki.de/wiki/Das_grosse_Computerschachbuch" target="_blank">https://www.c64-wiki.de/wiki/Das_grosse_Computerschachbuch</a><div>
<br />Mit so einem Wissen bekommt man bis auf den heutigen Tag ein anständiges, aber kein exzellentes Schachprogramm hin. Die Kunst steckt in den Heuristiken, effizienter Programmierung, cleverer Datenkodierungen und in Techniken wie dem Nullzug und der Monte-Carlo-Tree-Search. Damit schraubt man die Spielstärke in die Höhe, man kann Meisterniveau erreichen. Jenseits dieses Niveaus ist es schwer, an die Weltklasse der Schachprogramme aufzuschließen. Dann wird es endgültig -- wie in jeder anderen Domäne auch -- zu einem Expertenwissen und -können, das viel Zeit und Hingabe verlangt. Man muss Datenbanken für Eröffnungen einsetzen (das ist noch relativ leicht), schwerer ist es, Endspiele, die den Sieg versprechen, auch wirklich in Siege umzuwandeln. Und die Komplexitäten des Mittelspiels verlangen nach unzähligen Ideen und Versuchen, die Schach-Engine mit all ihren Konfigurationsmöglichkeiten und Heuristiken anzupassen und zu tunen.<br /><br />Letztlich basieren all diese Schachprogramme auf roher Rechengewalt (<i>brute force</i>). Sie rechnen systematisch zahllose Zugfolgen durch, vertiefen augenscheinlich aussichtsreiche Varianten, bewerten die Qualität der Stellung und des auf dem Brett befindlichen Materials. Je höher die Rechenleistung, desto besser das Schachprogramm -- so die simple Logik. Das hat damit zu tun, dass die Zahl der Spielverläufe mit der Suchtiefe drastisch, nämlich exponentiell zunimmt. In Folge wird es immer aufwändiger, den Suchhorizont, die "Denktiefe" zu erweitern. Und so ist es nicht verwunderlich, dass heutige Schachprogramme zwar Spitzenschach spielen, mittlerweile chancenlos für Menschen, doch es ist nicht so, dass diese Programme außerirdisch spielen würden. Mal blitzt ein Moment von Genialität durch, mal sind Menschen überrascht über die Qualität und die Stärke des einen oder anderen Zugs, aber es bleibt gekonntes Schach innerhalb der Dimensionen, die uns Menschen zugänglich ist.<br /><br />Und dann kommt ein Programm namens AlphaZero von der Firma DeepMind, die sich Google einverleibt hat. AlphaZero nutzt die Simulation eines neuronalen Netzes; das sind Rechenvorgänge, die unserem Gehirn nachempfunden sind. Das Programm bekommt die Spielregeln für Schach einprogrammiert und trainiert dann gerade einmal keinen ganzen Tag im Spiel gegen sich selbst. Das neuronale Netz bringt sich selber bei, wie man erfolgreich Schach spielt. EINEN TAG LANG! Mehr nicht. Ganz allein mit sich selbst. Das kann <a href="https://arxiv.org/abs/1712.01815" target="_blank">hier</a> nachlesen.<br /><br />Das Ergebnis ist ein Schachprogramm, das das bis dahin weltbeste Schachprogramm (Stockfish, Weltmeister 2016) regelrecht zerlegt. AlphaZero spielt Schach, wie man es bis dahin noch nicht gesehen hat. Plötzlich wirkt das gegnerische Stockfish dieser Übermacht hilflos ausgeliefert. AlphaZero opfert früh Spielfiguren und erst allmählich beginnt man zu erahnen, mit welcher Raffinesse sich daraus eine derart starke Spielgestaltung eröffnet, gegen die Stockfish nicht ankommt. Analysen zeigen, dass Stockfisch das heranrollende Unglück nicht einmal erkennt. Es ist regelrecht blind für die Verständnistiefe, mit der AlphaZero die Figuren auf dem Brett bewegt.<br /><br />Schaut man sich die ein oder andere Partie an (<a href="https://www.youtube.com/channel/UCL5YbN5WLFD8dLIegT5QAbA" target="_blank">agadmator's Chess Channel</a> kommentiert die Partien wunderbar), dann muss man erstaunt feststellen, dass AlphaZero alle gängigen Spieleröffnungen beherrscht -- wie die Analyse des DeepMind-Teams zeigt, hat AlphaZero sie in der Tat allesamt entdeckt, manch bekannte Variante allerdings wieder als untauglich verworfen, da letztlich verlustreich im späteren Spielverlauf. Diese Einsicht ist allen Schachspielern neu! Im Mittelspiel zeigt AlphaZero unbekanntes Können, macht ungewöhnliche Züge, die eine ganz andere Dynamik erzeugen als das, was Menschen so spielen. Das Endspiel scheint es auch perfekt zu beherrschen. Ein Könner, durch und durch, mit einer Spielart, die ungleich dem ist, was Menschen auf dem Brett zustande bringen -- und alle bisherigen Schachprogramme.<br /><ul>
<li>Deep Mind AI Alpha Zero Dismantles Stockfish's French Defense,<br /><a href="https://www.youtube.com/watch?v=pcdpgn9OINs">https://www.youtube.com/watch?v=pcdpgn9OINs</a></li>
<li>Deep Mind Alpha Zero's "Immortal Zugzwang Game" against Stockfish,<br /><a href="https://www.youtube.com/watch?v=lFXJWPhDsSY">https://www.youtube.com/watch?v=lFXJWPhDsSY</a></li>
<li>Google Deep Mind AI Alpha Zero Devours Stockfish,<br /><a href="https://www.youtube.com/watch?v=lb3_eRNoH_w">https://www.youtube.com/watch?v=lb3_eRNoH_w</a></li>
<li>Google Deep Mind Alpha Zero Sacs a Piece Without "Thinking" Twice,<br /><a href="https://www.youtube.com/watch?v=NaMs2dBouoQ">https://www.youtube.com/watch?v=NaMs2dBouoQ</a></li>
</ul>
Wer hat es noch gesagt? Wir brauchen nicht mehr auf außerirdische Intelligenzen zu warten. AlphaZero zeigt uns, was außerirdisch ist.<br /><br />So wie ich einst das Interesse am Schachspiel verlor, so wird sich mein Interesse an den Algorithmen, Tricks und Kniffen verlieren, mit denen man traditionell Schachprogramme (und andere Spiele) programmierte. Wozu bedarf es angesichts von AlphaZero noch der Programmierkunst, wenn ein neuronales Netz nach nur einem Tag im Spiel gegen sich selbst besser und überzeugender spielt, als es ihm ein Mensch per Programmanweisungen einzutrichtern vermöchte? Wozu braucht es jahrelanger Erfahrung, Expertise, Können, Wissen zu Algorithmen, wenn man von einer künstlichen Intelligenz (KI) mühelos übertrumpft wird?<br /><br />Das Selbstverständnis und das Aufgabengebiet von Programmierern wird sich fraglos ändern. Wir werden KI-Programme aufsetzen, sie konfigurieren, sie trainieren und anschließend den Erfüllungsgrad, ihr Können vermessen müssen -- die Qualitätssicherung von KI-Programmen wird uns vor ganz neue Herausforderungen stellen und uns vermutlich einiges abverlangen an mathematischen Kenntnissen zur Datenanalyse, -interpretation und -darstellung. Eine andere Aufgabe wird sein, KI-Module untereinander zu verknüpfen und mit traditionellen Programmen zu koppeln. Künftige KI-Anwendungen werden aus einem Ensemble aus KI-Modulen zusammengesetzt sein. Kurzum, die Zukunft wird von einigen Informatiker(innen) ein weitaus höheres Ausbildungsniveau einfordern, weil es schwer sein wird, KI-Systeme zu entwickeln, die robust und tolerant zugleich sind.</div>
</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-4930080713225512372017-06-19T11:51:00.000+02:002017-06-19T11:51:58.642+02:00Querdenken ohne und mit MatheIn dem Spiel "<a href="https://www.moses-verlag.de/110-querdenken-die-besten-querdenkanst-ouml-szlig-e.html" target="_blank">110% Querdenken</a>" von <a href="http://www.wmgi.de/podcast-06-georg-schumacher-querdenker-und-einfachmacher/" target="_blank">Georg Schumacher</a> gibt es die folgende Fragenkarte: "In deinem Weinkeller lagern 200 Flaschen. 99% davon sind Rotwein. Der Rest ist Weißwein. -- Wie viele Flaschen musst du austrinken, damit sich der Anteil des Rotweins auf 98% reduziert?"<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img alt="Fotogalerie" height="397" src="https://bilder.buecher.de/zusatz/44/44190/44190220_deta_4.jpg" style="margin-left: auto; margin-right: auto;" width="400" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Bild aus der Produktvorschau des Spiels "110% Querdenken", Moses-Verlag</td></tr>
</tbody></table>
<br />Ich denke nach: Es gibt also 198 Rotwein und 2 Weißweinflaschen. Wenn ich eine Flasche austrinke, reduziert sich die Anzahl der (vollen) Flaschen, damit auch die Prozentzahl. Statt 200 Flaschen haben wir dann 199 Flaschen, 197 "rote" + 2 "weiße" Flaschen. Uff, ein kompliziertes prozentuales Verhältnis.<br />
<br />
Und an dieser Stelle baue ich auf die mathematische Ausbildung, die mir zuteil geworden ist. Irgendwie sehe ich nicht, wie ich im Kopf die richtige Lösung finden soll. Auch wenn es bestimmt nicht so kompliziert ist.<br />
<br />
Papier und Stift: Eine unbekannte Anzahl x an Rotweinflaschen plus 2 Weißweinflaschen ergibt in Summe die Anzahl der Gesamtflaschen n. Also gilt x + 2 = n.<br />
<br />
Andererseits ist das Verhältnis von 98% von x zu n gegeben: x/n = 0,98.<br />
<br />
Zwei Gleichungen, zwei Unbekannte, das lässt sich lösen: x = 0,98 n. Das eingesetzt gibt 0,98 n + 2 = n, was sich umformen lässt zu n = 2/(1-0,98) = 2/0,02. Aha, n = 100.<br />
<br />
Innerlich winde ich mich. Ja, warum habe ich das nicht gleich gesehen? 2 Weißweinflaschen hätten die zwei gesuchten Prozent sein können, die 98% = 98 Rotweinflaschen übrig lassen. Wie einfach! Man muss also 100 Rotweinflaschen trinken, um 98 übrig zu lassen.<br />
<br />
In der Tat, wie einfach! Man hätte auch so darauf kommen können. Mit gesundem Menschenverstand. Oder, wie Georg Schumacher als Spieleerfinder sagen würde, mit Querdenken. Dann hat man die Aufgabe nämlich verstanden, ihre Idee erfasst! Man hat den Kniff gesehen. Ohne Mathe.<br />
<br />
Ich finde diese Art der Aufgabe interessant und diskussionswürdig. Man kann eine Lösung finden ohne sich mathematisch abmühen zu müssen. Es bedarf eines Grundwissens, was Prozentangaben sind, mehr nicht. Kinder können die Lösung finden, Erwachsene ebenso. Aber auch nur deshalb, weil die Aufgabe so gebaut ist, dass sie so funktioniert mit diesen Prozentangaben. Die Aufgabe ist für Klarsichtige gemacht worden. Sie ist lösbar für Querdenker, weil sie für das Querdenken konzipiert wurde.<br />
<br />
Eine mathematische Ausbildung hilft jedoch, eine Lösung unabhängig von der speziellen Konstruktion der Aufgabe zu finden. Im Moment der Erstellung der Gleichungen wende ich eine erlernte Lösungstechnik an, ohne ein Verständnis der inneren Lösungsmechanik zu haben. Aber das stellt sich mit der Lösung ein. Dann sprechen die Formeln zu mir -- und dann verstehe ich die Aufgabe auch. Der Witz an mathematischer Ausbildung ist in dem Fall: Ich brauche nicht quer zu denken, um eine Lösung zu finden. Denn ich finde immer eine Lösung, egal, ob die Aufgabe dafür gebaut wurde oder nicht.<br />
<br />
Mathe hilft beim Querdenken mit "krummen" Zahlen. Denn die Welt baut uns keine Querdenkaufgaben mit "geraden" Zahlen. Bildung, auch eine formale Bildung, kann beim Querdenken helfen. Genauso, wie sie uns manchmal im Weg steht, einfache Lösungen zu sehen (statt sie zu "berechnen").<br />
<br />
<br />
<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-32946255816757439092017-01-06T08:22:00.001+01:002017-01-06T08:22:35.892+01:00Schafft Lernziele ab!Jeder Dozent, jede Dozentin, die sich didaktischen Ansprüchen nicht vollkommen verschließt, erfährt irgendwann vom Lernforscher Benjamin Bloom und seiner Taxonomie des Lernens. Das Lernen wird in Niveaustufen unterteilt. Unseligerweise schleicht sich dabei schnell die Vorstellung ein, die Niveaustufen seien Hierarchiestufen. Das verführt manch Lehrenden dazu, Lernstoff straff organisiert und strukturiert zu vermitteln, von den Grundlagen hin zu komplizierten Anwendungen. Dahinter steht der Glaube, man müsse erst einen Sachverhalt kennen und ihn verstehen (die ersten beiden Stufen), bis man ihn anwenden kann, bevor man auf den höheren Stufen in der Lage ist zur Analyse, Synthese und schlußendlich zur Bewertung. Wer vor fünf Wochen bei der Differentialrechnung nicht aufgepasst hat, der muss sich nicht wundern, heute bei der Integralrechnung nicht mitzukommen. Ein Vorgehen, das Aufmerksamkeitslücken nicht verzeiht.<br />
<br />
Aber so sind unsere Gehirne nicht gebaut. Man versteht manchmal, ohne Details begriffen zu haben. Es hat geklickt, der Aha-Moment ist da, aber man kann diese Einsicht nicht in Worte fassen und strukturiert wiedergeben. Überhaupt: Wer sagt denn, dass nur Sprache den Weg zu "höheren" Lernstufen ebnet? So sehr man Lernprozesse auch in Niveaus zerlegen mag, Lernen ist in der Realität vielschichtig, verschiedene "Niveaus" interagieren kognitiv miteinander und bedingen sich teils gegenseitig. Nach allem, was wir über die Funktionsweise des Gehirns wissen, gehen Denk- und Lernprozesse selten linear vor sich. Und so experimentieren andere Lehrende denn auch mit problem- oder projektorientierter Lehre, Lernbühnen, Simulationen, und wagen interdisziplinäre Vorhaben. Niveaustufen werden verknüpft, nicht isoliert, und zu einem sich bedingenden, ganzheitlichen Netz aufgespannt. Und dennoch verlangt man auch diesen Dozenten ab, Lernziele zu formulieren.<br />
<br />
Dazu haben sich sprachliche Begriffe, Schlüsselwörter ausgeprägt, die sich zum Beschreiben der Lernziele für den jeweiligen Lernbereich eignen: Die Studierenden sollen z.B. wissen, verstehen, anwenden, analysieren, synthetisieren, bewerten und einordnen können. Auch wenn man nicht auf die Falle der Niveaus als Hierarchien verfällt, die Bloom'sche Taxonomie treibt die Terminologie an. Die Sprache zum Verfassen von Lernzielen ist so feinsinnig kodiert, wie es die Umschreibungen in Arbeitszeugnissen sind. Es gibt Fortbildungen für Dozenten, damit man lernt, wie das geht.<br />
<br />
Dieser Sprachkodex hat mittlerweile Einzug gehalten in die Modulbeschreibungen der Bachelor- und Master-Studiengänge. Man kommt nicht mehr umhin, Modulbeschreibungen lernzielorientiert zu verfassen. Wenn man sich sträubt, gibt es Ärger mit der Akkreditierungsagentur bei der nächsten Revision eines Studienangebots. Die Akkreditierungsagenturen sind so etwas wie der TÜV für Studiengänge. Sie haben faktisch die Macht und auch den Auftrag, die Bildungsqualität an unseren Hochschulen und Universitäten sicherzustellen. Und dazu gehören im Sinne einer gewissen Standardisierung eben auch die Formulierungen von Lernzielen. Studierende dürfen ihre Dozenten beim Wort nehmen. Besonders wenn die Dozentin oder der Dozent etwas macht, was *nicht* als Lernziel so aufgeschlüsselt wurde, dürfen Lehrende eingebremst werden. Auch wenn mir kein konkreter Fall bekannt ist, ein Student, eine Studentin könnte klagen, wenn er oder sie eine Prüfung nicht besteht, weil in der Prüfung etwas abgefragt wurde, was nicht als Lernziel in der Modulbeschreibung dokumentiert ist. Der Mindset ist klar gesetzt: Ohne Lernziele geht gar nichts.<br />
<br />
Und so dringt man zum Kern des Problems vor: Lernziele funktionalisieren die Lehre, das Lernen, die Dozenten und die Studierenden. Das Lernziel steckt den Horizont und -- Bloom lässt grüßen -- das geistige Niveau und die intellektuelle Durchdringungstiefe ab. Wir schauen uns z.B. in der Schaltungstechnik einfache Schaltungen aus UND- und NICHT-Gattern an, aber zu verstehen, wie ein Microcomputer funktioniert, nein, das ist dieses Semester nicht Thema. Mehr darf es nicht sein. Und ob die Arbeitsbedingungen für die Produktion von Mikrochips unmenschlich sind, das gehört hier auf gar keinen Fall hin. Heutzutage haben weder Studierende noch Dozenten die Traute, solche Fragen überhaupt aufzuwerfen. Steht ja auch nicht in der Modulbeschreibung, ethische Fragenstellungen sind kein Lernziel.<br />
<br />
Der Studierende wird zum Empfänger von Erwartungen, die an ihn adressiert werden, und die er zu erfüllen hat. Und es ist im Idealfall auch glasklar, an welcher Stelle der stofflichen Auseinandersetzung man den Griffel getrost fallen lassen kann. In Konsequenz funktionalisieren Lernziele auch die Dozenten. Man muss sich beschränken und sucht fast einem Therapeuten gleich nach einem Weg, leicht verdaulich und ohne Überanstrengung und Überforderung der Studierenden (es darf ja kein "höheres" Niveau aktiviert werden), die bittere Medizin, den Inhalt eines Fachs zu verabreichen. Das wird dann zum Thema didaktischer Fortbildungen.<br />
<br />
Lernziele funktionalisieren. Was auch immer man Bildung nennen mag, es versteht sich fast von selbst, dass der Diskurs, dass kritische, reflektierte Auseinandersetzung, dass der Erwerb und Austausch von Erfahrungen, dass das Ringen um Erkenntnis, dass das laute Denken und Mitdenken keine funktionale Effizienz beansprucht. Ganz im Gegenteil, Bildung und ein funktionaler Anspruch vertragen sich kaum. Eine Ausbildung ist funktional und nutzorientiert -- und genau da liegt die Grenze zur Bildung.<br />
<br />
Jedes Fachgebiet, jedes Wissensgebiet hat seinen handwerklichen Anteil. Da muss man sich schlicht einfinden in Begriffe, Techniken, Verfahren, Traditionen. Der handwerkliche Anteil ist es, wo es im besten Sinne um Ausbildung geht. Der eine muss mit dem Lötkolben umgehen, der andere eine Literaturrecherche durchführen können. Und wenn man es denn unbedingt will und nützlich findet, ja, Lernziele können da Sinn machen. Weil man ausbildet. Aber wenn der gesamte Fächerkanon eines Studiengangs mit dem Virus der Lernzielorientierung infiziert wird, dann muss man sich nicht wundern, dass man über gut ausgebildete Studierende nicht hinaus kommt. Will man den kritischen Wissensarbeiter, die reflektierte Mitarbeiterin, versteht man Diskurs, Kritik, Auseinandersetzung, Verständnis als zentrale Werte einer Arbeitsgesellschaft, die innovativ sein will, die Zukunft gestalten möchte, die Gesellschaft verändert, dann muss es im Studium Inseln ohne Lernziele geben. Dann muss es im Studium Fächer geben, die zwar einem Thema oder einer Fragestellung verpflichtet sind, aber wo der Gedanke und das argumentative Mitgestalten und Herausfordern, das Hinterfragen einen Wert an sich haben.<br />
<br />
Wie immer ist das gesunde Maß zu finden. Aber da derzeit alles den Lernzielen unterworfen wird, tut man gut daran, das Pendel zu anderen Seite ausschlagen zu lassen: Schafft Lernziele ab! Vielleicht gelingt es so, in jedem Studiengang ein paar Fächer ohne Lernziele im Curriculum zu verankern -- und die Akkreditierungsagenturen geben dazu ihren Segen. Dann dürften wir uns freuen, dass wir nach all dieser Vereinheitlichung durch den Bologna-Prozess (da liegt die geistige Wiege, warum Bachelor- und Masterstudiengänge heute so sind wie sie sind) wieder etwas Bildung im Bildungssystem zurück gebracht haben. Es würde uns allen gut tun.<br />
<div>
<br /></div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-23570352214612378832016-12-19T11:13:00.000+01:002016-12-19T11:13:01.741+01:00Lernen als Emergenz sozialer ProzesseIst das Lernen sozial besser motivierbar? Betrachten wir das Lernen nicht als zu individuell? Dabei sind wir vorrangig soziale Wesen, unser Verhalten ist eingebettet in soziale Normen. Die Macht der sozialen Norm, die Macht des Wunsches nach Gruppenzugehörigkeit hat einen großen Einfluss auf unser individuelles Verhalten.<br />
<br />
Was wir Lehrende vollkommen unterlassen, ist, diesen sozialen Aspekt zu gestalten. Wenn wir Teamarbeit einfordern, dann nach bestimmten Normen -- und den Gruppenprozess bewerten wir auch noch mit einer Note. Beispiel: Eine Gruppe aus fünf Studierenden muss eine Software nach allen Regeln der Kunst entwerfen, planen, entwickeln und testen, wobei jedem Mitglied der Gruppe bestimmte Rollen zugeteilt werden. Es ist mehr als verständlich, dass Studierende diese Form artifizieller Zwecksozialisierung meiden und ablehnen. "Ich mag Gruppenarbeit nicht!", ist ein nicht selten zu hörender Satz.<br />
<br />
Die andere, übliche Form der Gemeinsamkeit zeigt sich beispielweise in einem Praktikum. Studierende kommen oft schon in kleinen Grüppchen zu einem Pratikumstermin und igeln sich in dieser Zwei- oder Dreisamkeit ein. Manche bleiben den Rest des Semesters ohne Austauschpartner. Man befindet sich halt nur zur gleichen Zeit am selben Ort. Man ist für sich, im Kleinen oder in der Gruppe, und im besten Fall baut man eine Beziehung zu den Lehrenden (Dozenten) und den Lernbegleitern (Tutoren) auf.<br />
<br />
Welch vertane Chance!<br />
<br />
Wenn ich das Lernen als emergentes Phänomen sozialer Prozesse verstehe, dann werde ich versuchen, soziale Prozesse "im Klassenraum" so zu modulieren, dass sie Fernwirkungen haben in Bereiche außerhalb der Räumlichkeiten einer Hochschule. Dann vernetze ich Studierende, dann versuche ich sie zu Gebenden zu machen, die sich gegenseitig helfen, die soziales Miteinander verstehen als Beistand, als gemeinsames Interesse, als Fokus, als Interesse am gemeinsamen Wachsen, das Lernen stattfinden lässt, Verständnisblockaden löst, zum Tun, zur Überwindung usw. anleitet. Soziale Gruppen etablieren Normen, die ihre Mitglieder zu erfüllen versuchen. Man beteiligt sich, gibt und ist damit beitragend zum sozialen Sog, der dabei entsteht und einen selbst mitzieht.<br />
<br />
So wird der "Klassenraum" zum Inkubator, zum Einüben, zur Erprobung, zum Sichtbarmachen von sozialen Prozessen, die nicht im Hörsaal enden, sondern sich fortpflanzen und fortsetzen an den Orten, wo üblicherweise das Lernen privat, still und einsam, ein Kampf wird, wo es standhaft zu bleiben gilt bei Ablenkungen, Versuchungen, Störungen -- wo es Widerstände zu überwinden gilt, wenn sich Probleme ergeben, etwas Unverstanden ist, die Durchdringung eines Sachverhalts Zeit und Ausdauer kostet.<br />
<br />
Welch Segen kann es da sein, wenn man sich in einer Lerngruppe trifft, wo man sich aussprechen, wo man seine Gedanken sortieren, sein Unverständnis ergründen, seine Suche nach einer Lösung strukturieren kann. Welch ein Segen, wenn man via Internet eine große Community im Rücken hat, die einem hilfsbereit zur Seite steht. Welch Segen, wenn einen die soziale Norm die erlebte Einsamkeit überwinden hilft, Lernzeiten planen lässt usw.<br />
<br />
Lernen als emergentes Phänomen sozialer Prozesse! Lehre als Anstoß, Treiber, Grundstein sozialer Prozesse und Normen, um das Gelehrte und zu Lernende über die soziale Modulation, über die Wechselwirkung einer gemeinschaftlichen Aneignung beim Individuum ankommen und geschehen zu lassen.<br />
<br />
Lieber Leser, lieber Leserin, ich weiß nicht, wie das geht. Ich möchte es gerne ergründen. Das vordringlichste Problem der Lehre ist nicht die Digitialisierung, es ist ihre "Sozialisierung".<br />
<div>
<br /></div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-58210679944715458752016-09-09T15:07:00.000+02:002016-09-09T15:07:41.467+02:00Mit Prof. Handke im Gespräch: Vom Workbook zum Inverted Classroom<div class="separator" style="clear: both; text-align: center;">
</div>
<h3>
Aus dem Netz in Handkes Büro</h3>
<br />
Es gibt diese schönen Momente, da führen soziale Medien zu sozialen Begegnungen im echten Leben. Ich twittere im Nachgang zur #BiDiWe16, ein Dialog mit Jürgen Handke ergibt sich, er schickt mir seine Telefonnummer, ich rufe sofort durch, wir verabreden uns. Drei Tage nach der #BiDiWe16 sitze ich bei Handke im Büro, das gleichzeitig sein beachtlich ausgestattetes Aufnahmestudio beherbergt. Es ist Freitagmorgen, 9. September 2016. Jürgen Handke ist mir kein Fremder. Ich habe zwei seiner ICM-Konferenzen besucht, auf der #BiDiWe16 in Berlin hielt er die Keynote. Er hat für seine Lehre Preise erhalten, zuletzt 2015 den Ars Legendi-Preis für exzellente Hochschullehre.<br />
<br />
Zugegeben, ich hadere mit dem Konzept des Inverted Classroom -- auch Flipped Classroom genannt. Meine Erfahrungen mit der Programmierausbildung von Informatik-Studierenden des 1. und 2. Semesters lassen mich zweifeln. Videos habe ich auch schon produziert, aber vor allem das selbstgesteuerte Lernen, die Vorbereitung der Studierenden _vor_ dem Präsenztermin, vor der Übung oder dem Praktikum, das will so gar nicht funktionieren.<br />
<br />
Insofern bin ich froh und dankbar, dass Jürgen Handke heute Zeit für meine Fragen hat. Und schon in den ersten Minuten wird mit etwas sehr klar ...<br />
<br />
Zuvor jedoch der Hinweis, dass ich nachfolgend auf eine Darstellung in Frage/Antwort-Form verzichte. Das würde dem Gespräch nicht gerecht werden. Ich will ihm auch nicht Worte unterschieben, dass er dies oder das gesagt habe. Ich versuche aus meiner Perspektive darzustellen, wie ich sein Konzept verstanden habe -- und ich lenke den Fokus auf das, was mir wichtig ist.<br />
<br />
<h3>
Inverted/Flipped Classroom als Methode</h3>
<br />
Formal kann man die Idee des Inverted Classroom abtrennen von Lehrinhalten und von den verwendeten Medienformen -- mit diesem Konsens begann unser Gespräch. Es ist eine Methode, die die Aufnahme von Wissen als vorbereitenden Anteil von den Studierenden einfordert. Die Präzenszeit mit den Lehrenden bleibt dann dem Einüben von Kompetenzen im weitesten Sinne vorbehalten. In der Präsenzzeit nimmt sich der Lehrende zurück, seine Rolle ist die eines Lernbegleiters. Damit scheiden frontale Formen in Übungseinheiten weitgehend aus, es wird auf kollaborative Formen gesetzt, der Studierende soll selber machen, denken, herausfinden, diskutieren, ausprobieren, aus Fehlern lernen, Erfolge habe. All das kann man mit Videos oder Büchern machen. Mit digitalen Plattformen oder Papier.<br />
<br />
<h3>
Der Ausgangspunkt: Das Workbook</h3>
<br />
Handke (er ist Anglistik-Professor) zeigt mir ein Workbook aus den Anfangstagen des Inverted Classrooms. Und schlagartig wird mir klar, dass ich sein Inverted Classroom bislang nicht verstanden habe, weil ich nicht gesehen hatte, welchen Aufwand und welches didaktische Bemühen er in diese Papierform seines Kurses gesteckt hat. Videos zur Vorbereitung, Lerncoaching im Classroom -- so einfach ist es nicht. Ein Workbook enthält den ganzen Stoff eines Kurses, eines Moduls; es enthält so viele Kapitel, Lerneinheiten, wie das Semester Vorlesungswochen hat. Die Lerneinheiten beginnen mit den Lernzielen. Der Lernstoff ist durchsetzt mit vielen kleineren Übungen, die dazu dienen das Gelesene zu verarbeiten, zu reflektieren, Wissen zu festigen. Dazu kommen zahlreiche Verweise auf Texte, Videos, Hörbeispiele. Eine Lerneinheit wird abgeschlossen von einem Satz an Aufgaben, "normale" Textaufgaben mit freiem Antwortteil. Die Aufgaben sind anspruchvoller und beziehen sich auf die Lerneinheit als Ganzes.<br />
<br />
Schaut man sich so ein Workbook an, so ist da nichts an Stoffausdünnung zugunsten eines didaktischen Vorgehens zu sehen. Ein Credo der Didaktik ist ja immer wieder: eher weniger, denn zuviel an Stoff; eher Konzepte als denn Wissen. Nein, Handke mutet seinen Studierenden durchaus etwas zu! Kein Weichspülgang.<br />
<br />
<h3>
Das Workbook nimmt sich ernst</h3>
<br />
Wenn man so möchte, so liegt der methodische Ansatz des Inverted Classroom darin begründet, dass man die Funktion eines solchen Workbooks ernst nimmt: So vorzüglich aufbereiteten Lernstoff braucht man nicht im Hörsaal "vorzulesen". Lesen, Wissen erarbeiten, Aufgaben und Tests dazu machen, das kann jeder Studierende daheim tun. Also macht man in der Präsenzzeit das, was bleibt: die schwierigeren Aufgaben bearbeiten und besprechen, die den Stoff operationalisieren, in Zusammenhang stellen, erlernte Techniken einüben lassen usw.<br />
<br />
<h3>
Das Workbook wird digital und multimedial</h3>
<br />
Was Handke nun gemacht hat, ist, sich von dem Workbook in Papierform zu trennen und sich der Webtechnologie zu bedienen. Die äußere Organisationsstruktur der Lerneinheiten bleibt, doch der Inhalt des Workbooks wird deserialisiert und in eine verlinkte Textform überführt -- das Workbook wird zum Hypertext. Die Verweise auf Videos, Texte etc. werden zu eingebetteten Elementen, sie werden zum Content -- und beginnen das nun digitalisierte Workbook vollkommen zu verändern. Videos, Hörbeispiele etc. ergänzen nicht nur Inhalte, sie können selber Inhaltsträger sein. Aus dem Papiertext ist ein multimediales Dokument geworden.<br />
<br />
<h3>
Das Workbook wird interaktiv</h3>
<br />
Einmal im Web angekommen, ist es auch konsequent, das multimedial-digitale Workbook um interaktive Elemente anzureichern. Tests, Quizzes zur Wissensfestigung und -überprüfung im Verlauf einer Lerneinheit werden elektronisch integriert. Der Lernende bekommt sofort Rückmeldung. Und auch die Aufgaben, die eine Lerneinheit abschließen, sind nun webbasiert. Multiple Choice und was auch immer an elektronischer Wissensüberprüfung der Lerneinheit geeignet ist, kommt zum Einsatz. An dieser Stelle setzt Handke einen Abgriffspunkt: Sobald ein Studierender mindestens 60% der Aufgaben korrekt beantwortet, wandert diese Information in eine Datenbank.<br />
<br />
<h3>
Was bleibt: Kompetenztraining</h3>
<br />
Handke weiß also sehr genau, ob und wie gut seine Studierenden vorbereitet sind, wenn sie bei ihm in die Präsenzveranstaltung kommen. Und da gibt es kein Pardon. Jetzt geht es um Kompetenzbildung. Wissen wird mitgebracht -- und wer das nicht tut, bekommt die Konsequenzen rasch zu spüren. Die Studierenden haben die Aufgaben für den Präsenztermin vorzeitig bekommen; wer mochte, konnte sich darauf vorbereiten. In der Veranstaltung wird nun an den "schwierigen" Aufgaben gerarbeitet, den Aufgaben jenseits reinen Wissens. Manchmal eröffnet Handke die Veranstaltung mit Fragen, zu denen die Studierenden die Antworten mit Hilfe eines Audience Response Systems geben. Der Dialog, die Reflexion beginnt. Und am Ende wird es zu den Aufgaben sogar Musterlösungen geben.<br />
<br />
Handke zeigt mir den Entwurf eines Artikels. Darin schreibt er, wie die Anwesenheit in der Präsenzphase deutlich mit dem Können von Kompetenzaufgaben korreliert. Wer die Gelegenheit nicht wahrnimmt, in die Übung zu kommen (es herrscht bei ihm keine Anwesenheitspflicht), der wird bei den "schwierigen" Aufgaben schlechter abschneiden. Bei reinen Wissensabfragen spielt die Anwesenheit kaum eine Rolle. Kurzum: Wissen kann man sich leicht und jederzeit reinpfeifen. Das Können, das Beherrschen eines Stoffs, Aufgabenstellungen lösen zu können, dazu braucht unser Gehirn Zeit, das muss sich setzen, verdrahten, Verhaltensänderung bewirken.<br />
<br />
<h3>
Lernt, wie es euch womit beliebt</h3>
<br />
So sehr Handke seinen Studierenden ernsthaftes Lernen abverlangt, was den Gebrauch digitaler Geräte betrifft, da treibt er sie mit seiner selbst entwickelten Lernplattform geradezu hin. Sollen sie doch per Smartphone, Tablett, Laptop nachgucken, nachlesen, Videos schauen was das Zeug hält. Schadet's, wenn so gelernt wird? Früher stellte Handke den Studierenden außerdem Austauschplattformen zur Verfügung: ein Diskussionsforum, ein Feedback-System, Chats, Wikis -- hat alles nicht funktioniert. Die Studierenden nutzen ihre eigenen Plattformen zur Kommunikation, dort sind sie bereits vernetzt: Facebook, WhatsApp und wie sie alle heißen. Und dort wo die Studierenden sind, folgt Ihnen Handke und sein Team: auf Facebook.<br />
<br />
Auch will er keinem Studierenden vorschreiben, welchen Lernweg er oder sie zu nehmen hat. Gerade die digitale Form, die Inhaltsreplikation und -verweise auf mehreren Ebenen erlaubt, scheint von Vorteil zu sein. Aus Umfragen weiß er, dass manche Studierende fast ausschließlich mit den Videos lernen. Andere lernen fast ausschließlich über Texte -- das Workbook gibt es noch als eBook im epub2-Format. Manche orientieren sich an den Leitfragen, andere nicht. Handke erhebt Daten zu Forschungszwecken, er beginnt das digitale Lernen zu verstehen.<br />
<br />
Und was ist mit der Klausur, der Abschlußprüfung? Da betritt Handke gerade Neuland. Auch die möchte er den Studierenden komplett am Rechner zu machen erlauben, rein mit Kompetenztests. Ein Experiment, ein Wagnis, von dem er noch nicht so recht weiß, wie es klappen wird.<br />
<br />
<h3>
Mein Resümee</h3>
<br />
Mir hilft sich in Erinnerung zu rufen, wo Handkes Ausgangspunkt liegt: bei ausgezeichnet aufbereiteten Lern-Materialien. Ohne Lernziele, Stoffinhalte (woher sie auch immer stammen mögen, Stichwort OER), Tests, Aufgaben wird es nichts mit dem Invertieren oder Flippen des Classrooms. Mit dieser Grundlage ist es konsequent, die Präsenzzeit mit den Studierenden für das Kompetenztraining zu verwenden. Die Digitalisierung? Na, wer kann, sollte es tun. Für Handke ist das vermutlich weniger trennbar als für mich, für ihn scheint der Eintritt ins Web, das Digitale entscheidend und transformierend zu sein.<br />
<br />
Also: Zurück an den Schreibtisch, Handke zum Vorbild, sich wieder einmal an die Lernziele machen, Material zusammenstellen, Tests, Aufgaben überlegen. Der Rest wird sich finden.<br />
<br />
Vielen Dank für das Gespräch und die Zeit, lieber Herr Handke!Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-30554452722811059662016-09-07T11:28:00.001+02:002016-09-07T12:32:26.469+02:00Fachtagung #BiDiWe16: Was war das Ziel?Dienstag, 6. September 2016, ich bin in Berlin im Paul-Löbe-Haus des Deutschen Bundestages. Die SPD hat zu einer Fachtagung geladen: <a href="http://www.spdfraktion.de/themen/bildung-digitalisierten-welt-bidiwe16" target="_blank">Bildung in einer digitalisierten Welt</a>, Twitter-Hashtag <a href="https://twitter.com/search?q=%23bidiwe16" target="_blank">#BiDiWe16</a>. Der Besuch ist frei, jeder kann teilnehmen, man musste sich lediglich vorher anmelden. Man konnte sich gar um die Durchführung eines Workshops bewerben.<br />
<br />
Drüben, keine 200 Meter weiter im Reichstag läuft die Haushaltsdebatte; das Paul-Löbe-Haus und der Reichstag sind unterirdisch miteinander verbunden. Am Abend wird der Spiegel einen kleinen Videoauszug aus dem Plenarsaal bringen, wie Bundestagspräsident Lammert Kanzlerin Merkel rügt. Es sind diese absurden, vollkommen unwichtigen Momente, die mediale Aufmerksamkeit genießen. Ein Schlaglicht, wie schwierig es für die Politik ist, sich auf Sachthemen zu fokussieren.<br />
<br />
<h3>
Eine Tagung in den Grenzen der Zeit</h3>
<br />
Warum bin ich hier? Das Thema Bildung und Digitalisierung interessiert mich als Hochschullehrer. Aber das ist der vordergründige Anlass. Ich bin hier nicht zum Netzwerken, ich habe keine hohen Erwartungen. Ich will -- das ist mein Grund -- erleben und verstehen, wie politische Meinungsbildungsprozesse funktionieren. Die Tagung wird von Bundestagsabgeordneten der SPD-Fraktion durchgeführt, Organisatorin ist Saskia Esken. 300 Teilnehmer sollen gekommen sein, habe ich irgendwo gehört. Es ist bemerkenswert voll.<br />
<br />
Sören Bartol begrüßt kurz, er liest eine Rede ab, spricht von der "Demokratisierung der Bildung", was mich aufhorchen lässt. Was damit wohl gemeint ist? Staatssekretär Loßack ringt in seiner Rede mit der Kürze der ihm gegebenen Zeit, den Titel seines Vortrags gänzlich ignorierend. Wir erfahren etwas über ein Entwurfspapier für die Konferenz der Kultusministerien. Prof. Handke aus Marburg übernimmt, fordert von der Lehre, die nächste Stufe der Digitalisierung im Hörsaal zu nehmen (von der Anreicherung zur Integration), und er identifiziert als Treiber die Studierenden. Ich würde ihm zwar in dem einen oder anderen Punkt widersprechen (ach, ich glaube, ich müsste mich mal direkt mit ihm unterhalten, Handke denkt sicher weniger plakativ als er der Pointierung wegen spricht), aber er ist engagiert, er brennt für digitale Lehre, er hat eine Botschaft. Das ist gut! Insgeheim wünschte ich mir, er hätte ernst gemacht und die Keynote geflippt -- das hatte sich in der Ankündigung des Programms als Möglichkeit angedeutet.<br />
<br />
Dann die Workshops. Ich besuche Workshop 6: "Offen für alle? Das neue Selbstverständnis der Hochschule". Hätte ich nicht den Podcast der drei Referenten im Vorfeld gehört, mir wäre einiges unverständlich geblieben. Simone Raatz moderiert, das Zeitregiment ist streng. Unter diesem Druck bricht sich die Trivialisierung Bahn. Die Frage "Was ist eine offene Hochschule?" wird in den Raum gestellt und zur Diskussion frei gegeben. Man traut sich, man äußert sich. Meinungen. Ansichten. Eine wirkliche Diskussion ist das nicht, ein Dialog schon gar nicht. Und ich frage mich zum ersten Mal, was diese Tagung überhaupt bewirken und erreichen will. Wir eilen zur nächsten Frage. Ich wage gar nichts mehr beizutragen. Wäre auch nur eine Ansicht unter vielen. Die Zeit drängt -- und schon ist es vorbei.<br />
<br />
Man kommt im Forum wieder zusammen. Dr. Wiarda moderiert, er gibt sein Bestes. Die Ergebnisse werden im Sinne eines "Elevator Pitchs" zusammengetragen. Ich bin ratlos, was ich mit diesen Fragmenten, diesen Gedanken in Gärung anfangen soll. Das Publikum darf sich mit kurzen Beiträgen beteiligen. Es wird teils emotional, das Thema bewegt, aber es sind wieder Meinungssplitter, die den einen oder anderen treffen oder in Deckung gehen lassen. Wiarda gelingt es, charmant Anküpfungspunkte, Beziehungen herzustellen. Doch die Zeit drängt, wir müssen zum Schluß kommen.<br />
<br />
Saskia Esken, die Organisatorin, und Hubertus Heil, Stellvertretender Vorsitzender der SPD-Fraktion, machen den Abschluß. Auf die Frage, was sie denn von dem Tage mitnehme, antwortet Esken: Man habe Menschen zusammengeführt, Erwachsenenbildung sei ihr im Fokus. Ich selber wüsste auch nicht viel mitnehmendes zu sagen. Heil, ganz Politikprofi, formuliert Forderungen und den Wunsch einer eintätigen 2/3-Mehrheit im Bundestag. Eine Reform des Urheberrechts, Aufwertung der Lehre an den Hochschulen -- ja, gut, aber das sind nicht wirklich Ergebnisse der Tagung, das bewegt ihn schon länger.<br />
<br />
Ende. 16 Uhr, die Tagung ist vorbei.<br />
<br />
<h3>
Was habe ich gelernt über Meinungsbildungsprozesse?</h3>
<br />
Was habe ich über politische Meinungsbildungsprozesse gelernt? Erschreckend wenig. Ich habe den Eindruck gewonnen, dass diese Veranstaltung gar nicht zum Ziel hatte, Meinungsbildungsprozesse voran zu treiben. Dazu blieb gar nicht die Zeit. Ich kann mir im Nachgang nicht einmal plausibel erklären, was die Zielsetzung dieser Tagung gewesen sein soll. Wollten sich SPD-Abgeordnete neue Impulse holen? Dieser Steinbruch, diese Fragmente, die Kürze -- das Format war dazu nicht geeignet. Ging es um Inhalte, um Erkenntnisgewinn? In diesem engen Zeitkorsett, das kaum mehr als das Ansprechen von Themen erlaubte, wohl kaum. Sollten sich die Teilnehmer vernetzen? Dazu war die Tagung eine sehr gute Gelegenheit. Aber was, frage ich mich, hat die SPD davon? Ging es um Dialog? Welcher Dialog, Dialog mit wem?, muss ich zurückfragen.<br />
<br />
Will Politik gesellschaftliche Interessensgruppen zusammenbringen? Wann hat sie ein Interesse daran, wann nicht? Wie arbeitet Politik? Ist es das Aggregieren, Filtern, Auswählen, Abtesten und Ausloten von tragfähigen Stimmungen, Meinungsbildern in der Gesellschaft? Oder will Politik aus einer durchaus sich verändernden normativen Grundlage heraus nachdenken, entscheiden, vorgeben, Reibungspunkte liefern? Wahrscheinlich ist politisches Handeln ein Mix aus alledem -- und sicher kommen noch viele andere Ansätze dazu. Doch ich kann die Fachtagung der SPD in diesem Mix nicht einordnen und verankern.<br />
<br />
Vielleicht mag mir jemand im Nachgang erklären, in welcher Zielsetzung sich die Veranstaltung verorten lässt.<br />
<br />
Beeindruckt hat mich diese Präzision im Umgang mit der Zeit. Unsere Politiker scheinen meisterhaft darin zu sein, diese knappe Ressource wohlfeil auf- und einzuteilen. Und man zielt auf Ergebnisse. Aber der Zeitplan an sich ließ keine Freiräume, um auf dieser Tagung wenig mehr geschehen zu lassen als sich zu sehen, sich kennenzulernen, Kontakte herzustellen. Und die Ergebnisse mussten angesichts des Format mager bleiben.<br />
<br />
<h3>
Geld ist nicht alles, man könnte Experimente wagen</h3>
<br />
Ich weiß nicht mehr, welcher Abgeordnete es sagte: Man könne die Sachen nicht selber tun, es ginge um die Vergabe und Lenkung von Geldmitteln, damit könne die Politik etwas in der Welt geschehen lassen. Das sollte ich mir merken! Und natürlich hat die Politik etablierte Prozesse, um Geldmittelvergabe zu reflektieren. Und vielleicht ist die gestrige Veranstaltung Teil dieser Reflektion. Und sie musste in der Kürze so sein und so professionell organisiert werden. Weil Politik eben so arbeitet.<br />
<br />
Aber ich hätte es auch spannend gefunden, wenn die SPD experimentiert hätte mit den Mitteln und Werkzeugen, mit denen sich die Bildung -- wie übrigens auch die Wirtschaft -- in einer digitalisierten Welt konfrontiert sieht. Denn es geht deutlich mehr, als eine Twitterwall zu installieren. Wie wäre es, hätte man die Workshops ebenso wie die Keynotes radikal geflippt? Alle Teilnehmenden hätten sich vorbereiten müssen, was vielleicht ein Gewinn gewesen wäre. Wir hätten erlebt und erfahren können, wie ein gemeinsamer Lernprozess im Ringen um Erkenntnisse zur Bildung in einer digitalisierten Welt funktionieren könnte -- oder eben auch scheitert. Spannend wäre auch eine Vernetzung der Teilnehmer *vor* der Tagung gewesen. Man hätte Themen und Ansichten erarbeiten und auf der Tagung finalisieren können. Was wäre mit einem Barcamp-Format gewesen? Politik kann sicher mehr als Gelder verteilen, sie kann selber auch im Rahmen parteilicher Arbeit solche Experimente wagen und aus ihrem Alltag politischer Arbeitstechniken ausbrechen.<br />
<br />
Und so will ich wenigstens das tun, was in einer digitalisierten Welt immer möglich ist: mit diesem Blogbeitrag als potenzieller Teilnehmer für einen Dialog bereit zu stehen.<br />
<div>
<br /></div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-19285055879817989882015-11-09T13:59:00.000+01:002015-11-09T13:59:01.999+01:00Was der Inverted bzw. Flipped Classroom als Chance verpasst!Vor gut einem Jahr schrieb ich "<a href="http://denkspuren.blogspot.de/2014/11/was-mich-am-inverted-classroom-bzw.html" target="_blank">Was mich am Inverted Classroom bzw. Flipped Classroom nervt</a>" (22. Nov. 2014). Ich weiß bis heute mit der Methode nicht so richtig etwas anzufangen. Ich verstehe zwar die Motivation und die Beweggründe dahinter, aber wenn ich die teils sehr aufwendig und mit viel Engagement und Liebe produzierten Videos von Kollegen sehe, weiß ich: das ist nicht mein Ding. Aber warum? Was schreckt mich daran ab? Der Aufwand? Die mir fehlende Lehrkonzeption?<br />
<br />
Nun habe ich aus einer Laune heraus Ende Oktober damit begonnen, Videos begleitend zu meiner Programmier-Veranstaltung zu produzieren. Es macht riesigen Spaß. Ich begann darüber nachzudenken, was ich da treibe und wo es mit den Lehr-Videos hingehen soll. Die tausendste Auflage von "Ich erklär Dir die Programmiersprache XYZ im Details" kann es ja nicht sein. Mir ist klar geworden, dass es Videos werden sollen, die Lernbegleiter sind. Die von der Gestaltung eben kein Screencast einer Vorlesung sind. Dazu entstand der folgende Beitrag: "<a href="http://denkspuren.blogspot.de/2015/11/kritik-zu-videos-in-der-digitalen-lehre.html" target="_blank">Kritik zu Videos in der Digitalen Lehre: Massenabfertigung statt Lernbegleitung</a>".<br />
<br />
Mit den Gedanken aus dem erwähnten Beitrag kann ich besser ausdrücken, was mir am Flipped bzw. Inverted Classroom so wenig gefällt: Dann musst Du nämlich Videos zu allem machen, vom ganzen Lehrstoff. Du machst aus Deiner Vorlesung Videos in Masse für die Masse. Du veränderst die grundlegende Situation nicht, Du nutzt das Video nicht als Gestaltungsmittel einer Beziehungsform zum Lernen.<br />
<br />
Als Massenkommunikation verpasst man mit Lehrvideos beim Modell des Inverted Classroom eine Chance. Als Lernbegleitung macht es für mich Sinn!<br />
<br />
Andere suchen ebenfalls nach Wegen, dem Inverted Classroom Gestalt zu geben und das Videoformat entsprechend anzupassen, so deutlich z.B. am damaligen <a href="http://denkspuren.blogspot.com/2014/11/was-mich-am-inverted-classroom-bzw.html?showComment=1416770238657#c4967482139724987501" target="_blank">Kommentar von Christian Spannagel</a>.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-20079688679160350612015-11-09T12:18:00.000+01:002015-11-09T12:18:37.111+01:00Kritik zu Videos in der Digitalen Lehre: Massenabfertigung statt LernbegleitungDer Witz an Lehrvideos ist: Dieses Mittel skaliert dann, wenn das Video die Einzelansprache schafft, so, als ob Du mit dem Lernenden oder einer Lerngruppe an einem Tisch säßest. Du nimmst sie oder ihn ernst. Du erklärst einfach, verständlich, anschaulich, mit den Mitteln des Alltags. Du nutzt Metaphern, Bilder, Analogien, Geschichten. Du hast Beispiele, zeigst, wie es geht. Du entkomplizierst ohne zu trivialisieren. Du lässt dem Verständnis zuliebe auch mal fünfe gerade sein. Es zählt nicht Perfektionismus, sondern Dein Engagement, auf Dein Gegenüber einzugehen. Du improvisierst im Spielraum der privaten Atmosphäre. In dieser Ansprache skaliert Dein Video in seiner Funktion als Lehrmittel für viele. Weil es für den Einzelnen gemacht ist.<br /><br />Screencasts unterscheiden sich oftmals kaum von Vorlesungen oder Powerpoint-Vorträgen: Sie sind als Kommunikation für und mit der Masse konzeptioniert und nicht als individuelle Ansprache. Ein Vortrag für ein größeres Publikum will etwas ganz anderes erreichen, setzt ganz andere Stilmittel ein, als eine Lehr-/Lernsituationen unter zwei, drei, vier Menschen. Die Aufzeichnung einer Vorlesung verändert den Charakter des Massenunterrichts nicht; es bleibt lediglich die "Wiederholungstaste", das Vorgetragene wieder und wieder abspulen zu können.<br /><br />Insbesondere in der Vorlesung will der/die Vortragende ein Fachgebiet systematisch und umfassend abdecken. Wissen, Konzepte, Verfahren, Methoden, usw., all das soll vorgestellt und dargelegt werden. Die Vorlesung unterscheidet sich in diesem Anspruch kaum von einem Lehrbuch -- und sie hat ihre Berechtigung, ihre Aufgabe und ihren Zweck ebenso wie das Buch. Systematik und umfassende Darstellungen werden gebraucht. Sie bilden Fundamente. Sie bieten Orientierung. Sie sind Wissensschatz. In dem Sinne sind Bücher wohl bis heute die besseren Videos und in vielen Fällen wohl auch das geeignetere Medium. Man kann darin nachschlagen, eine Übersicht gewinnen, hat plastisch einen Umfang des Stoffs vor Augen, man kann sich durcharbeiten.<br /><br />Doch was ist das Charakteristikum des Lernens? Wann setzt Lernen ein? Oftmals eröffnet sich der Lernprozess mit der Frage: "Das hier habe ich nicht verstanden. Können Sie mir das noch einmal erklären?" In diesem Moment wird lernen individuell. Es bezieht sich episodenhaft auf einen Auszug. Es sucht selten das Verständnis des großen Ganzen, das steht ja im Buch. Es ist die eine Frage, es ist das Ringen mit und um etwas. Es ist das Problem, etwas anwendbar zu machen, damit eine konkrete Aufgabe zu lösen. Es ist die Ratlosigkeit oder einfach nur die Unsicherheit "Habe ich das richtig verstanden?"<br /><br />Die Bitte, noch einmal etwas zu erklären, ist immer eine individuelle, auch wenn sie von jedem einzelnen Lernenden gestellt wird. Im Dialog mit dem Einzelnen wird Aufmerksamkeit gebunden, werden kognitive Ressourcen eingefordert und freigesetzt. Jetzt beackern wir gemeinsam ein Problem. Ich erkläre es Dir. Vielleicht nicht perfekt, vielleicht treffe ich nicht wirklich Deinen Punkt, aber ich bin bei Dir, ich beschäftige mich mit Dir, wir treten in einen Dialog ein.<br /><br />Ein Lehrer, eine Lehrerin weiß, dass er oder sie etwas tausendmal erklären muss. Manchmal jedem Schüler, jeder Schülerin. Und das Jahr für Jahr oder gar Semester für Semester. Immer wieder. Das ist ermüdend, aber es funktioniert ja eben nicht, sich vor die Klasse oder im Hörsaal vor die Studierenden zu stellen und zu sagen: "Ich erkläre es euch jetzt allen gemeinsam -- dann spare ich mir, es jedem einzeln beizubringen." In dem Moment ist es Massenkommunikation geworden. Das ist möglicherweise für einen Teil des Unterrichts oder der Lehre vertretbar, durchaus auch in Form eines Videos (oder eben Buchs). Aber just im Wechsel zur Massenkommunikation, der Darstellung für alle, entsteht der Bruch, der es riskiert am Lernenden vorbei zu zielen. Lernen ist individuell. Nur weil man etwas massentauglich gesagt und erklärt hat, ist es noch lange nicht individuell verstanden und erst recht noch nicht erlernt. Der Einsatz von Audience Response Systemen soll das Risiko des "Missverständnisses" während der Lehrsituation mindern, aber es bleibt ein Dialog mit der Masse.<br /><br />Das Lehr-/Lernvideo hat die einzigartige Chance, die Verbindlichkeit und Ansprache des Einzelnen zwar filmisch zu inszenieren -- oder sagen wir besser: zu imitieren --, aber sie gestaltet damit eine Lernbühne, die gezielt die Situation "Wir zwei am Küchentisch, ich erklär Dir mal was" entwirft und sich damit aus der Kommunikation mit Masse löst. Jetzt entsteht die Chance, gemeinsam etwas zu erreichen. Das mag um Quizzes angereichert sein oder die Gamifikation als Antriebsmotor nutzen. Entscheidend ist, den Lernenden aus der Masse zu lösen, sie oder ihn anzusprechen und "im Einzelgespräch" dort abzuholen, wo er oder sie um Erkenntnis ringt. Diese Form des Lehr-/Lernvideos ist spontan, unsystematisch, vielfältig, spannend, unerwartet, improvisierend, privat, unperfekt angelegt; manchmal auch zäh, ausdauernd und hartnäckig in der Wegstrecke eines kompliziertes Sachverhalts, der den Lernenden herausfordert und an seine Grenzen führt.<br /><br />Lernen ist nicht immer spaßig, nicht immer leicht -- aber immer individuell. An dieser Stelle sollte digitale Lehre meiner Meinung nach ansetzen. Ich bin weit davon entfernt, diese formulierten Ansprüche selbst einzulösen. Wer mag, darf sich jedoch in meinem Experimentallabor umschauen, in dem die ersten Videos entstehen, die einen Weg zu dieser Gestaltungsform von Videos als Lernbegleiter suchen: <a href="https://www.youtube.com/user/dherzb/videos">https://www.youtube.com/user/dherzb/videos</a><br /><br /><br /><br /> Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-83575627950587027672015-06-23T22:06:00.002+02:002015-06-25T16:28:03.540+02:00Wie man Software baut: Mach’s einfach!Mach Dein Projekt in jeder Hinsicht simpel: Verzichte auf eine Datenbank, wenn es eine Text-Datei auch tut. Verzichte auf eine graphische Oberfläche, wenn es eine Kommandozeile tut. Verzichte auf einen Interpreter, wenn es ein Generator tut (oder umgekehrt, wenn der Interpreter die einfachere Lösung ist). Verzichte auf Nebenläufigkeit und Parallelisierung, wenn Geschwindigkeit unproblematisch ist. Verzichte auf Vorwegnahme gemutmaßter Instabilitäten der verwendeten Infrastruktur, wenn es einfache Alternativen gibt, wie das Neustarten einer Anwendung (z.B. in der Nacht). Verzichte auf Eigenlösungen, wenn es bewährte Frameworks oder Bibliotheken gibt. Verzichte auf umfangreiche Fehlerbehandlungen, wenn es einfache Asserts ebenso tun. Ignoriere parallele Dateizugriffe, wenn es kaum konkurrierende Zugriffe gibt und es eine temporäre Zugriffssperre (“Lock”) ebenso tut.<br />
<div>
<br /></div>
<div>
Aber: Verzichte niemals auf eine möglichst einfache, elegante und flexible Umsetzung der geforderten Kernfunktionalität. Stecke dort Deine Arbeit rein! Mach’s einfach.</div>
<div>
<br /></div>
<div>
Warum dieser radikale Ansatz des Verzichts, des Strebens nach dem Naheliegenden, dem Einfachen, dem Schlichten, dem Funktionierenden? Erstens, die Liste dessen, was man so alles tun könnte, ist beliebig erweiterbar. Jeder der Verzichtspunkte stellt eine Anforderung dar, die zu erfüllen jeweils technisch anspruchsvoll ist, das eigentliche Problem, die Kernfunktionalität, aber nicht voran bringt. Diese “Nebenanforderungen” stehen einem beim Lösen des Problems im Weg. Zweitens wird man frühestens mit dem ersten Produkt-Release (oder auch Prototypen) die wirklichen Probleme kennenlernen und verstehen und zu bewerten wissen. Dann kann man darüber nachdenken, ob eine Datenbank, Parallelisierung, Stabilität, Fehlerbehandlung usw. relevant, wichtig und wertschöpfend sind.</div>
<div>
<br /></div>
<div>
Und dann schreibt man, falls notwendig (was meist tatsächlich der Fall ist), das Programm noch einmal neu. Dann implementiert man die geforderte Kernfunktionalität wieder einfach, elegant und flexibel, was dann eine Datenbank, eine graphische Oberfläche, Parallelisierung usw. einschließt. Dann wird alles gut. Dann kommt die Programmevolution in Gang.<br />
<br />
Zwei Beispiele:<br />
<br />
Wer würde, wollte er oder sie eine neue Programmiersprache entwickeln, mit der IDE anfangen und von der Oberfläche ausgehend die entsprechenden Funktionalitäten entwickeln? Absurd, oder? Java (oder andere Sprachen) beginnen mit Einzelwerkzeugen, wie dem Compiler, einem Dokumentations-Generator, einem Debugger, einer Ausführungsumgebung, einem Build-Tool, einem Editor. Eine IDE bringt diese Werkzeuge unter einer Oberfläche nicht nur zusammen, sondern integriert sie in ein Zusammenspiel, das die einzelnen Werkzeuge transparent macht. Mittlerweile kann man sich Gedanken machen, wie eine IDE nicht nur das Programmieren verändert, sondern sogar eine Programmiersprache prägen könnte (siehe z.B. Greenfoot).<br />
<br />
Der Idee des Nachrichtendienstes Twitter ist so einfach, dass jede Informatik-Studentin und jeder Informatik-Student gegen Ende des Studiums einen solchen Nachrichtendienst programmieren kann. Ohne Datenbank. Sogar ohne GUI geht es. Nicht skalierbar. Das ist ein Wochenend-Projekt, so trivial einfach ist die Kernfunktionalität von Twitter. Und dann kann man daraus die Verteiltheit, die Echtzeit-Aspekte, die Skalierbarkeit, Robustheit usw. entwickeln. Kaum anders hat es Twitter gemacht. Die Architektur entstand über Jahre, entwickelte sich fort. Das Twitter von heute ist mit dem Twitter der ersten Jahre gar nicht mehr zu vergleichen. Hätte Twitter versucht, die heutige Twitter-Architektur schon 2006 so zu entwickeln, der Nachrichtendienst wäre vor lauter “Nebenanforderungen” nie erschienen.<br />
<br />
<span id="docs-internal-guid-335d7c6a-2b1d-96fb-ecba-5dbc94efe86a"></span><br />
Das Einfache, Unkomplizierte, Naheliegende lässt uns anfangen, einen Start finden und strapaziert die kognitiven Ressourcen nicht über. Wer zu viele Entscheidungen treffen muss, wer zu viele Verflechtungen berücksichtigen muss, wer Mühe hat in der Kompliziertheit einer Lösung einen Planungsansatz zu finden, der wird den Start scheuen, prokrastinieren und, ist ein Anfang gemacht, sich immer wieder neu auf den Kern des Vorhabens fokussieren müssen. Das strengt unnötig an.</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-73697890191912892015-05-27T12:30:00.002+02:002015-05-27T18:48:07.423+02:00Die AnerkennungsfalleIn einem Unternehmen, in der Hochschule, in der Forschung, überall zählen Resultate. Die Wirtschaft ist resultatorientiert, und die Bildung ist es. Wenn die Resultate stimmen, dann ist es egal, wann und wo man die Resultate erzielt hat. Dafür hat sich sogar ein Begriff herausgeprägt, das <i>Results-Only Work Environment</i> (<a href="http://de.wikipedia.org/wiki/Results-Only_Work_Environment" target="_blank">ROWE</a>). So radikal ernst kann man das mit den Resultaten nehmen.<br />
<br />
So verbuchen wir für jeden Menschen, mit welchem Zeitaufwand er oder sie ein Resultat erzielt. Hat er, hat sie viel oder wenig Zeit für das Resultat aufgewendet? So lässt sich jede Person auf der Kurve im folgenden Diagramm verorten.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGtf34x8KmbB8gICfstfhbKXgLkxg1LoOaqMy7hY0Bz7gMmaNavODMDMnAcUtLj1khIiiorgo472NvNG1mZBtHnCFG5u334dhhxwXLGW4z9roCVZopApCWlf60OZQV4aFF6XTG_-XPoDw/s1600/Anerkennung.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGtf34x8KmbB8gICfstfhbKXgLkxg1LoOaqMy7hY0Bz7gMmaNavODMDMnAcUtLj1khIiiorgo472NvNG1mZBtHnCFG5u334dhhxwXLGW4z9roCVZopApCWlf60OZQV4aFF6XTG_-XPoDw/s1600/Anerkennung.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Einen High-Performer zeichnen Resultate bei wenig Zeitaufwand aus. Ein Low-Performer benötigt dagegen viel Zeit, sehr viel Zeit für wenig an Resultaten.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
So weit, so gut. Was passiert nun, wenn ein Arbeitnehmer vor seinem Chef oder ein Studierender vor seinem Dozenten steht? Menschen suchen Anerkennung, sie fordern sie teils sogar ein.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
So wird der High-Performer unzweifelhaft Anerkennung wünschen für seine Effizienz.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Effizienz = Resultate / Zeit</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Und die sei ihm oder ihr auch gegönnt. "Mensch, das Projekt haben Sie mit diesem brillanten Einfall gerettet, Frau Maier. Und das haben Sie in nur einer Woche umgesetzt! Großartig." -- "Die Lösung haben sie ausgezeichnet umgesetzt, mein lieber Student. Was sie da von letzter Woche bis heute hinbekommen haben, verbessert nun eindeutig die Qualität unserer Ergebnisse."</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Und was ist mit dem Low-Performer? Sie sind ganz Mensch, wir mögen einem Menschen nicht ins Gesicht sagen, dass die Ergebnisse mager sind. Er oder sie weiß das vermutlich selber und gibt es sogar zu. "Herr Professor, ich weiß, da ist nicht so viel bei rumgekommen. Es sieht ja fast danach aus als hätte ich nichts getan. Dabei ist das Gegenteil der Fall. Ich habe viel im Internet recherchiert, gelesen, Sachen ausprobiert und -- ja, da habe ich mich verrannt. Aber ich habe was rausgekriegt. Ich war enorm fleißig. Ich habe das sogar protokolliert, was ich alles gemacht habe. Gucken Sie mal, selbst übers Wochenende habe ich gearbeitet. Ich war ungemein fleißig." Und da haben wir's, der Studierende, der Mitarbeiter möchte für seinen Fleiß entlohnt werden.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Fleiß = Resultate x Zeit</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Das ist nicht von der Hand zu weisen. Fleiß kann man ihm/ihr nicht absprechen. Also zeigen Sie Anerkennung und liefern eine Entschuldigung gleich mit: "Da haben sie aber wirklich viel getan. Hm, vielleicht war die Aufgabe auch ein wenig zu schwierig. Das habe ich nicht vorausgesehen. Und sie haben Biss gezeigt, das gefällt mir."</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Es liegt in unserer menschlichen Natur. Wir wollen einem Mitmenschen nicht jegliche Anerkennung verweigern. So loben wir, was zu loben bleibt. Beim einen die Effizienz, beim anderen den Fleiß. Und so wird der High-Performer zum Effzienten und der Low-Performer zum Fleißigen. Mit der begrifflichen Verschiebung ist der Gerechtigkeit Genüge getan. Es geht nicht mehr um die Performanz, es geht um Effiziente und Fleißige.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Ist die Beurteilung der Performanz einmal aufgehoben, so werden Effizienz und Fleiß zu gleichwertigen Währungen. Zwei Effekte brechen sich nun Bahn:</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ol>
<li>die Grenzziehung verschärft sich,</li>
<li>während die Anerkennung gleichzeitig versucht, die Grenzen aufzuweichen</li>
</ol>
<br />
<div class="separator" style="clear: both; text-align: left;">
Nehmen wir den Effizienten. Der Effiziente wird die Fleiß-Formel in die Effizienz-Formel einsetzen und zu dem Ergebnis kommen:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Effizienz = Resultate / Zeit = Fleiß / Zeit^2</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Bei gleichem Fleiß, so sieht es der Effiziente, zeigt sich seine Effizienz überdeutlich, die des Fleißigen fällt nämlich umgekehrt quadratisch mit der Zeit.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Was der Effiziente verargumentieren kann, das kann der Fleißige ebenso. Die Effizienz-Formel in die Fleiß-Formel eingesetzt zeigt doch eindeutig, dass -- gleiche Effizienz vorausgesetzt -- der Fleißige "quadratisch" fleißiger als der Effiziente ist.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Fleiß = Resultate x Zeit = Effizienz * Zeit^2</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Diese unselige Verschmelzung zweier Sichten zeigt, wie sich die Perspektiven in der Selbstwahrnehmung übersteigert bestätigt finden und vom anderen klar abgrenzen. Und das nur, weil man jedem Anerkennung zollen wollte!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Da dieser Missstand vom Management bzw. Anerkennung spendenden Menschen erkannt wird, kommt es zu paradoxen Botschaften, in dem Bestreben ausgleichen wirken zu wollen. Zum Effizienten heißt es etwa: "Wow, da haben sie ja Wahnsinniges in kurzer Zeit geschafft. Da sie diese Woche noch Zeit haben. Könnten sie sich noch um die Organisation der Tagung kümmern, das hat nämlich bislang niemand Zeit für gehabt." Sprich, der Effiziente soll zum fleißigen Effizienten werden. Übrig gebliebene Zeit ist mit Arbeit zu füllen. Vermutlich der Arbeit, die die Fleißigen nicht hinbekommen, knirscht es beim Effizienten.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Und der Fleißige bekommt die Botschaft: "Da waren Sie aber fleißig und haben viel Zeit für gebraucht. Ich glaube, sie müssen etwas an ihrem Selbstmanagement verbessern. Ich schicke sie da mal auf einen Kurs. Und so sehr ich ihre Arbeit schätze, das hier muss noch unbedingt fertig werden, wir brauchen das für den Kunden. Machen sie das über das Wochenende noch." Der Fleißige soll zum effizienten Fleißgen werden. Er macht Überstunden und sieht den Effizienten wieder zeitig ins Wochenende gehen. Kann der nicht mal aushelfen, wenn es an allen Ecken und Enden eng wird? </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Das kann nicht gut gehen! Die Management-Situation löst nichts.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Was war doch gleich schief gelaufen? In der Ausgangssituation haben wir eine klare Einteilung in High-Performer und Low-Performer, die sich an den Resultaten orientiert. Das menschliche Bedürfnis, jedem auf seine Weise Anerkennung zu zollen, macht plötzlich Effizienz und Fleiß zu gleichwertigen Anteilen, die unauflösbare Probleme generieren. Wir sitzen in der Anerkennungsfalle. Plötzlich bekommt Maier einen Bonus, weil er so effizient ist, und Müller, weil er so fleißig ist. Und Student A eine 1.0 für seine effiziente Bearbeitung des Themas und Student B eine 1.0, weil er/sie sich wirklich viel Mühe gegeben hat.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Menschlich ist das alles verständlich. Gerecht ist es nicht, wirtschaftlich ist es nicht, Bildung bringt es nicht voran. Es ist, um es mit den Worten von Gunter Dueck zu sagen, "<a href="http://www.campus.de/buecher-campus-verlag/gesellschaft-wirtschaft/wirtschaft/schwarmdumm-9655.html" target="_blank">schwarmdumm</a>".</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-76508960168488041982014-12-13T21:10:00.001+01:002014-12-13T21:10:07.111+01:00Tipps zum OOP-Studium<b id="docs-internal-guid-b0dbce5c-453c-69b3-36c5-7fc2f745c773" style="font-weight: normal;"><br /><img alt="thm-logo-campus-fb.jpg" height="81px;" src="https://lh4.googleusercontent.com/CSmQUDPLkKGiVBI6QMPptGh2dS6bN3MNCC2RuRkmoZesF3F73DxDSz16DL52r9KKha-5N1hi_bPCYfOe0k4WH6NeXmplkCW8QrGdA8wnxe9h28AY-ZTr6zLin6i30Gvm1Q" style="-webkit-transform: rotate(0rad); border: none; transform: rotate(0rad);" width="624px;" /></b><br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<br /></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 28px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tipps zum OOP-Studium</span></div>
<br />
<b style="font-weight: normal;">(Anmerkung: Der Text ist derzeit als kommentierbares <a href="http://goo.gl/znI3XN" target="_blank">Google-Doc</a> verfügbar</b>.)<br />
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Das Studieren ist nicht leicht. Man muss viel Stoff in kurzer Zeit verarbeiten und einiges an Zeit dafür aufwenden. Und manchmal muss man so einiges an Frustrationen aushalten. Ein Student erzählt mir im Praktikum:</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">“Ich habe Space Invaders in Processing programmiert. Insgesamt 16 Stunden habe ich daran in den letzten Tagen gearbeitet. Das hat mit total Spaß gemacht. Und jetzt sitze ich vor dem Aufgabenblatt und weiß nicht, wie ich an die Aufgabe herangehen soll. Ich glaube, den nächsten Test werde ich nicht schaffen.”</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Das erinnert mich an meinen Studienanfang. Für die meisten Fächer war ich leicht zu begeistern. Ich las viele Bücher und programmierte. Die Aufgaben aus den Übungen fand ich wenig spannend. Vor den Prüfungen kam ich mir bestens vorbereitet vor. Schließlich hatte ich mich mit viel komplizierteren und anspruchsvolleren Aspekten des Studienfachs beschäftigt. Dass ich anschließend mit Pauken und Trompeten durch meine ersten Klausuren fiel, war eine lehrreiche Erfahrung.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Die Begeisterung für ein Fach, wie z.B. für die Programmierung, ist etwas gänzlich anderes, als die Fähigkeit, eine Prüfung zu bestehen.</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ich habe mich nicht wirklich darum gekümmert, was man in einer Klausur von mir will, welche Art von Wissen und Können man von mir erwartet.</span></div>
</li>
</ul>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Mich hat es ein halbes Studium gekostet herauszufinden, was ich aus diesen Einsichten für Lehren ziehen sollte. Als die Erkenntnisse so langsam reiften, lief es in meinem Studium besser und besser. Aber erst mit meinem zweiten Studium hatte ich den Bogen wirklich raus. Es gibt zwar keine Abkürzung zu einem Bachelor- oder Mastergrad. Aber die Zeit und die Energie, die man einfließen lässt, kann man bündeln und effektiv gestalten.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Mit den sechs folgenden Tipps und Vorschlägen möchte ich Ihnen ein paar Hilfestellungen geben, wie Sie effektiv und zielgerichtet studieren können. Vielleicht haben Sie danach eine Idee, wie das Studieren auch anders gehen könnte.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<h1 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 21px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1. Tipp: Kenne Deinen „Feind”! – Finde genau heraus, was man in einer Prüfung von Dir erwartet</span></h1>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Mit dem Eintritt in die Hochschule sind Sie Student bzw. Studentin geworden. Sie studieren. Über Ihren tatsächlichen Beruf sagt das wenig aus. In Wirklichkeit sind Sie professionelle Lernerin bzw. professioneller Lerner geworden, die/der Prüfungen erfolgreich besteht. Das Studienfach schränkt nur ein, was Sie lernen und welche Prüfungen Sie ablegen.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Wenn Sie für sich akzeptieren, dass das Studieren Ihr Beruf ist, dann müssen Sie Ihr Studium nicht einmal besonders mögen. Manchmal habe ich fast den Eindruck, dass eine distanzierte, nüchterne Haltung zum Studium einen professioneller sein lässt. Man wägt besser ab, geht strategischer an die Sache ran.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Wenn Sie das Studieren als Ihre Profession verstehen, als Ihren Beruf, dann sollte auch das gelten, was in jedem Beruf gilt: Sie sollten wissen, auf welches Ziel Sie hinarbeiten. Klar, Sie wollen einen Studienabschluss. Das ist das Fernziel. Doch wie kommt man dahin?</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Die Prüfungsordnung zusammen mit den Modulbeschreibungen sagen es ganz klar: Sie müssen eine Reihe von Prüfungen bestehen. Nach einem bestimmten Rechenverfahren bestimmt sich aus den Einzelnoten Ihre Abschlussnote. So einfach ist das! (Ich lasse hier schriftliche Ausarbeitungen außen vor; aber im Grunde ist auch das nur eine spezielle Prüfungsform.)</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Und wie besteht man Prüfungen? Indem man in die Vorlesung geht? Mitnichten. Das steht auch so nicht in der Prüfungsordnung. Prüfungen besteht man, indem man auf die Prüfung vorbereitet ist, zur Prüfung hingeht und sie ablegt. Oberste Priorität hat es, herauszufinden, was die Prüfung wie von einem verlangt und was man dafür können muss. Je nach Notenwunsch ist herauszukriegen, welches Anspruchsniveau dabei erreicht werden muss.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Mit diesem Ansatz sind ganz andere Fragen wichtig: Wo bekomme ich alte Klausuren her? Was ist in mündlichen Prüfungen von dem und dem Prüfer gefragt worden? Gibt es Lieblingsfragen? Wie stellt er oder sie Aufgaben oder Fragen, und wie muss ich diese Aufgaben oder Fragen verstehen? Was möchte er oder sie in meinen Antworten hören oder lesen. Sind ihm oder ihr Herleitungswege wichtig?</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bisweilen müssen Sie sich in eine Vorlesung oder Übung setzen, weil Anwesenheitspflicht gefordert ist. Manchmal wird erst über Tests die Klausurzulassung erlangt. Gut, dann sind das Prüfungsanteile, die dazu kommen. Immer gilt es die Frage zu stellen: Ist das, was ich da höre, erfahre, lese, erlerne, ausprobiere – ist das prüfungsrelevant?</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Vielen Dozent(inn)en gefällt diese prüfungsorientierte Sicht gar nicht. Ein Studium sei mehr als Prüfungen. Das ist wohl wahr – fraglos lernen Sie in den verschiedensten Veranstaltungen durchaus mehr als für die Prüfung. Das ändert nichts daran, dass Sie schlussendlich geprüft werden. So will es eben die Prüfungsordnung, die den Verlauf Ihres Studiums regelt.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ich möchte Ihnen keinesfalls ausreden, sich studentisch zu engagieren, im ASTA, in der Fachschaft oder im Studierendenparlament. Oder ein Auslandssemester zu machen. Ganz im Gegenteil. Das ist alles gut und wichtig und prägend für Ihr Leben. Allerdings, wenn es um Prüfungen geht, dann sollten Sie prüfungsorientiert daran gehen. Schließlich haben Sie viel zu tun. Und Sie sind ein Profi, ein Studierprofi. Wer fünf, sechs oder gar sieben Fächer in einem Semester erfolgreich bestehen will, der hat keine Zeit zu verschwenden.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Der Besuch einer Vorlesung oder einer Übung ist keinesfalls verwerflich. Nur wenn Sie dafür Ihre Lebens- und damit letztlich auch Ihre Studierzeit hergeben, dann sollten Sie wissen, warum Sie das tun, und effizient mitarbeiten.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<h1 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 21px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">2. Tipp: Nichtwissen, Nichtverstehen, Nichtkönnen sind Ihr größtes Entwicklungspotenzial</span></h1>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ich sehe viele Studierende, die verstehen das Studieren als ein Abarbeiten von Terminen. OOP-Vorlesung besuchen. Abgehakt. OOP-Übung besuchen. Abgehakt. Im OOP-Praktikum die Aufgaben lösen. Fertig. War eine anstrengende Woche. Irgendwie viel gelernt in OOP, aber auch nicht viel geschafft in OOP. In anderen Fächern läuft es ganz ähnlich.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Darf ich es Ihnen mal so deutlich sagen? Das fühlt sich zwar an wie Studieren, es ist aber kein Studieren. Damit will ich nicht sagen, Sie hätten nicht zu meinen Veranstaltungen und dem Praktikum kommen sollen. Ich freue mich, wenn Sie da sind. Mir fällt immer wieder nur eines auf: Sie tun in der Zeit, wenn Sie bei mir im Hörsaal sitzen, am allerwenigsten von uns beiden. Es ist nicht erkenntlich, dass Sie gerade studieren. Auch wenn Sie im Praktikum an den Aufgaben programmiert haben, dann sehe ich Sie oft ohne eine einzige Lehre oder Erkenntnis aus dem Raum laufen!</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Lassen Sie mich ein Beispiel geben: Im Praktikum haben wir Ihnen in einer Aufgabe Programmcode vorgesetzt, in dem Fehler versteckt waren. Einfache Fehler und auch ein paar schwierigere Fehler. Den einen oder anderen Fehler haben Sie entdeckt und auf dem Zettel markiert. Weil es doch schneller geht und Sie irgendwie unsicher sind, ob da noch mehr Fehler sind, tippen Sie das Programm ab und suchen mit der Entwicklungsumgebung nach weiteren Fehlern. Wenn das geschafft ist und das Programm frei von Fehlern ist, sehe ich Sie gedanklich einen Haken an die Aufgabe machen. Und es geht an die nächste Aufgabe.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Sie haben sich mit diesem Vorgehen um wertvolle Erkenntnisse gebracht! Sie schöpfen die Sahne von einer Übungsaufgabe nicht ab. Die Sahne ist nicht nur lecker, sondern sie hat viele Nährstoffe reich an Denkvitaminen und Wissensstoffen – und das zur Verköstigung ist kürzester Zeit.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Jeder Test, jede Aufgabe, jede Übung ist ein wunderbares Analyseinstrument Ihres aktuellen Wissensstands. Markieren Sie sich das, was Sie wissen. Nehmen Sie Gekonntes als Motivationsspritze für den zweiten Teil: die kritische Auseinandersetzung mit dem, was Sie übersehen, nicht gewusst oder nicht gekonnt haben. Da wird es spannend. Als Lernender, als Studentin oder Student ist das der Normalzustand. Sie studieren genau aus diesem Grund: weil Sie eben vieles noch nicht können und noch nicht wissen.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">In dem Nichtwissen, in dem Nichtkönnen liegt Ihr Entwicklungspotenzial, Ihre Chance, Ihr Studieren. Seien Sie unerbittlich: Markieren Sie in gelb jeden Fehler, den Sie übersehen haben. Schreiben Sie sich dazu, wie man diesen Fehler hätte bemerken können. Oder bei einer Programmieraufgabe: Was hat der Sitznachbar, die Sitznachbarin so wunderbar hingekriegt, woran Sie sich eben zehn Minuten lang die Zähne ausgebissen haben? Wieso sind Sie selber nicht darauf gekommen? Haben Sie ein Programmkonstrukt nicht gekannt oder noch nicht verstanden? Gibt es ein wiederkehrendes Schema, das Sie sich merken können?</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Wenn Sie sich solche Fragen stellen und die Antworten dazu notieren, dann beginnen Sie wirklich zu studieren. Das ist der Turbo, der Sie in kurzer Zeit an die Spitze Ihres Könnens und Ihrer Fähigkeiten beschleunigt. Dann macht das Studieren Spaß, weil Sie regelrecht spüren, wie die Beschleunigung Sie in den Sessel drückt. Sie merken, Sie kommen voran.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Wenn Sie geschickt sind, machen Sie diese Selbstanalyse noch im Hörsaal oder Seminarraum. Wenn Sie die Analyse gleich in eine Form bringen, die zum Lernen geeignet ist (dazu später ein paar Anregungen), dann haben Sie die Zeit effizient genutzt. Dann haben Sie tatsächlich studiert. Sie haben Aufgaben, Probleme und Punkte, die Sie zu hause recherchieren, klären oder in Ihrer Lerngruppe besprechen. Ihr Lernen und Studieren bekommt eine Struktur, und Sie können das Ziel, eine bestandene Prüfung mit Wunschnote, viel besser planen und angehen.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<h1 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 21px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">3. Tipp: Nutze die Zeit, die Du in der Hochschule bist</span></h1>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ich erlebe Studierende oft aufmerksam zuhörend in meiner Vorlesung. Die meisten versuchen mir zu folgen, mitzudenken, zu verstehen. Hin und wieder ernte ich nickende Köpfe. Als wollte man mir sagen: „Ja, verstanden, ist klar.” Ich nehme das als Zeichen weiterzumachen.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">So geht es 90 Minuten. Wenn ich gut bin, habe ich die ganze Zeit über die Aufmerksamkeit meiner Zuhörer. Dann habe ich, aus meiner Sicht, einen guten Job gemacht.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Wenn Sie den Hörsaal verlassen, ist die Zeit der größte Feind. Legt man die Vergessenskurve von Ebbinghaus zugrunde, werden nach 20 Minuten nur noch 60\% des Vorlesungsinhalts erinnert, nach einer Stunde sind es gerade noch 45\%, nach einem Tag 34\%. Zur nächsten Vorlesung, eine Woche später, ist es realistisch, von einer Erinnerung um die 20\% auszugehen. Das ist nicht gerade viel.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Eine Vorlesung ist erschreckend unergiebig, sie ist im Grunde verschenkte Lebenszeit – wenn es eine einseitige Angelegenheit bleibt. Mit meinem Edutainment im Hörsaal (ein Kunstwort aus Education und Entertainment) unternehme ich den Versuch, eine Flasche mit Wissen zu füllen. Es ist die Natur des menschlichen Gedächtnisses, dass die Flasche arg löchrig ist. Das gleiche gilt übrigens, wenn Sie sich eine Vorlesung als Video anschauen. Mit dem kleinen Unterschied: Die Flasche lässt sich immer neu auffüllen. An den Löchern ändert das nichts.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Wenn Sie sich nicht umgehend um die Stopfung der Löcher kümmern, dann bleibt vom Edutainment nur noch das Entertainment übrig. Dann haben wir vielleicht eine schöne Zeit im Hörsaal gehabt, aber der einzige, der etwas gelernt hat, bin ich. Ich habe immerhin mein Wissen aktiv reproduziert und wiederholt. Es hilft mir, den Stoff noch besser zu beherrschen.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Wie können Sie die Löcher stopfen?</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Unser Gedächtnis vergißt schnell und viel, was es nicht für absolut relevant und wichtig erachtet. Das erste, was Sie tun können, ist, sich während der Vorlesung oder Übung Notizen und Anmerkungen zu machen. Dann ist das Ausmaß des Vergessens begrenzt, Sie können das Gehörte wieder hervorholen.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Der Witz ist aber eine Informationsverdichtung. Wer alles mitschreibt, verpasst den Inhalt. In der Vorlesung redet man viel. Das ist nicht unnötiges Gebrabbel. Das Gesagte stellt Zusammenhänge her, es gibt Beispiele, es erläutert ein und denselben Sachverhalt auf verschiedene Weise, es wiederholt. Das ist die Art, wie wir Menschen uns Dinge mitteilen, wie wir uns Wichtiges hervorheben, wie wir uns verständlich machen wollen. Sie kennen das: Wenn Ihnen in geselliger Runde ein kleines Ereignis z.B. aus dem Urlaub erzählt wird, kann das ein abendfüllender Programmpunkt werden. Menschen lieben es, sich ein und dasselbe mehrfach zu erzählen, mal mehr mal weniger ausgeschmückt, mal aus der, mal aus jener Perspektive.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Wenn eine Botschaft während der Vorlesung bei Ihnen ankommt, wenn Sie verstanden haben, dann ist das Konzentrat wichtig: Was nehmen Sie mit? Was war der entscheidende, wichtige Punkt? Gibt es ein Prinzip, was es sich zu merken gilt. Wie ist das Prinzip, die Idee begründet worden? Wie sieht die Herleitung aus? Was ist daran so toll, was so wertvoll? – Bleistift und Papier sind dann meist die besten Werkzeuge, um die Erkenntnis, das Verstandene, das Neue festzuhalten.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Auch wenn Sie etwas nicht verstehen, dann ist das nicht weniger wichtig, das festzuhalten. Dann haben Sie einen offenen Punkt, eine Baustelle. Da will etwas geklärt werden. Wenn Sie vergessen, was Sie nicht verstanden haben, dann lassen Sie den Zufall bestimmen, wann Sie das Unverständnis kalt erwischt.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Das Verdichten und Festhalten von Wissen ist eines. Sie helfen damit Ihrem Gedächtnis, Informationen zu behalten, die es ansonsten in kürzester Zeit vergessen hätte. Das allein reicht nicht. Damit haben Sie das Gehörte lediglich auf Papier gebracht oder auf Ihrem Rechner abgelegt. Das war der erste Schritt, der Vergessenkurve etwas entgegenzusetzen.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Das Wissen muss in Ihren Kopf. Und dazu gibt es ein paar Techniken.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<h1 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 21px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">4. Tipp: Wiederholtes, aktives, prüforientiertes Lernen ist die effektivste Lernmethode, die es gibt.</span></h1>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Im Film „Die Matrix” schaut die Hauptfigur Neo auf den vor ihm stehenden Hubschauber und fragt seine Begleiterin Trinity: „Can you fly that thing?” – „Not yet!”, antwortet sie, holt ihr Telefon hervor und fordert einen Upload in ihr Gehirn an. Momente später ist sie die perfekte Pilotin.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Schön wäre es, wenn man so leicht etwas lernen könnte. Beneiden könnte man auch die Geistesgiganten, die Savants, die sich so mühelos Telefonbücher, Enzyklopädien, Zahlenreihen oder Bilder einprägen können. Diese Menschen zahlen einen hohen Preis für diese Fähigkeit. Sie können die auf sie einprasselnden Informationen kaum filtern. Sie sehen sich einer Flut an Wahrnehmungsreizen und Details ausgesetzt, die ihnen ein normales gesellschaftliches Leben fast unmöglich macht.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Es ist also normal zu vergessen. Das Filtern und Aussortieren von unwichtigen Dingen ist eine Eigenschaft unseres Gehirns. Wenn allerdings etwas interessant und von Bedeutung ist, dann ist das die Anziehungskraft, die Informationen im Gedächtnis einfängt und – wenn Interesse und Bedeutung bestehen bleiben – bleibend verhaftet.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Es gibt ein paar einfache Prinzipien, Wissen im Gedächtnis zu verankern</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Knüpfe neues Wissen an bekanntes Wissen an – so wird das Neue wichtiger und bedeutsamer</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Mache das zu Lernende interessant – und es wird sich wie von selbst im Gedächtnis einnisten</span></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Wiederhole das zu Lernende – prüforientierte Wiederholungstechniken sind an Effizienz nicht zu überbieten</span></div>
</li>
</ul>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Was weiß ich schon?</span></h2>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ein gute Dozentin bzw. ein guter Dozent hilft Ihnen dabei, neue Vorlesungsinhalte zu verstehen. Da werden Verbindungen hergestellt und Brücken geschlagen zu Dingen, die Sie schon wissen und verstanden haben (sollten). Metaphern, Analogien und Vergleiche sind genau der Versuch, das Neue mit dem Bekannten in Beziehung zu setzen.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Da das Lernen jedoch individuell ist und jedes Hirn anders tickt, müssen Sie selber herausfinden, ob die Anküpfungspunkte und Ankerhaken bei Ihnen greifen und hilfreich sind. Wenn Sie Anschlusslücken haben, dann müssen Sie selbst nacharbeiten oder andere, alternative Verbindungen an ihr bisheriges Wissen herstellen. Dank des Internets können Sie heutzutage mühelos jeden Wissensbroken nachschlagen, sich in Lehrvideos etwas erklären lassen oder in Diskussionsforen Fragen stellen.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Hier beißt sich übrigens die Katze in den Schwanz: Wer wenig lernt, hat wenig Anschlusspunkte, um neues Wissen in den Kontext des neu Gehörten, Gesehenen oder Erfahrenen zu stellen. Man merkt das sehr gut daran, dass einem eine Vorlesung oder Übung anfängt davonzulaufen. Man kommt nicht mehr hinterher. Mit anderen Worten: man hat zu wenig getan. Vielleicht helfen Ihnen die zwei folgenden Punkte, leichter aufzuholen und aufzuschließen.</span></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Nutzen Sie Mnemotechniken, Gedächtnistechniken.</span></h2>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dr. Gunther Karsten war 2007 Gedächtnisweltmeister. Die Jahre davor belegte er drei Mal den zweiten und drei Mal den dritten Platz. Stellen Sie sich vor Ihrem geistigen Auge die folgende Szene vor: James Bond (007) braust mit seinem Auto (car) heran und bringt es mit einem Schleudermanöver knapp vor einem Siegerpodest zum Stehen (car-sten). Es bietet sich eine merkwürdige Szene: Auf Platz zwei und drei stehen zwei Gabeln (3 Zinken für die Zahl 3). Agent 007 (für das Jahr 2007) springt mit einem Satz auf den unbesetzten Platz 1, schraubt – und jetzt wird es widerlich – mit einem Schwung seine Schädeldecke ab, nimmt sein Hirn heraus und spießt es auf die Gabel von Platz 2. Dr. Karten wurde nämlich im Folgejahr 2008 noch einmal Zweiter unter den Gedächtniskünstlern.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Der Ekel, der sich einstellt, ist gewollt und provoziert. Sie wissen doch: Sex and Crime sells – das gilt auch für Ihr Gedächtnis. Sowas findet Ihr Gehirn nämlich brandspannend und interessant. Diese Geschichte müssen Sie sich nur noch ein, zwei Mal bewusst abrufen (sagen wir heute und morgen), dann werden Sie für lange Zeit nicht mehr vergessen, dass ein Herr Karsten (car-stehen) 2007 (Agent 007) Gedächtnisweltmeister wurde, zuvor schon dreimal (die Gabeln) Platz zwei und drei inne hatte und im Folgejahr noch einmal den zweiten Platz belegte (Hirn auf Gabel Platz Nr. 2 aufspießen).</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Es kostet Zeit, sich nette, absurde Geschichten auszudenken. Das kann und sollte aber auch Spaß machen. Der Gedächtniseffekt ist bemerkenswert. Auf diese Weise merkt man sich langfristig unglaublich viele Dinge mit nur ein, zwei Wiederholungen. Effizienter geht es kaum. Die deutsche Wikipedia liefert Ihnen unter dem Stichwort „</span><a href="https://de.wikipedia.org/wiki/Mnemotechnik" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Mnemotechnik</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">” einen ersten Einstieg in die Welt der Tricks der Gedächtniskünstler.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Sie müssen selber herausfinden, welches Wissen Sie gerne mit Hilfe von Mnemotechniken in Ihrem Gehirn verankern möchten. Es lohnt sich. Wenn Sie diese Techniken eine Weile praktizieren, werden andere irgendwann neidisch darauf sein, wie leicht Sie sich an vieles erinnern – und das noch nach ein, zwei Semestern. So ein Gedächtnis hätte jeder gerne! Tatsache ist: So ein Gedächtnis hat jeder! Wenn die Erinnerungstechnik stimmt.</span></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Wende prüforientierte Wiederholungstechniken an</span></h2>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Mnemotechniken sind großartig, aber nicht jede Art von Lernstoff und Wissen ist dafür geeignet. Zum Beispiel müssen beim Erlernen einer Fremdsprache die Vokabeln ohne Umschweife, fast reflexartig zur Verfügung stehen. Es dauert zu lange, Wörter anhand kurzer „Filme im Kopf” abzurufen. Ähnliches gilt für die Sprachkonstrukte und Programmier-Schemata einer Programmiersprache.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Sie wissen sehr gut aus der Schule, wie Sie Vokabeln gelernt haben: durch Wiederholung. Und zwar wiederholen Sie die Vokabeln so lange, bis sie sich ohne großes Nachdenken an sie erinnern. Diese Strategie haben Sie in ähnlicher Form vermutlich schon oft angewendet: Sie lesen mehrfach ihre Mitschriften oder das Vorlesungsmanuskript oder ein Lehrbuch, solange bis Sie das Gefühl haben, den Stoff zu beherrschen. Diese Lernmethode ist weit verbreitet und viele Studierende halten das für eine effektive Lernform – das hat die Lernforschung herausgefunden. Das verteufelte daran ist: Da das wiederholte Lesen zunehmend leichtgängiger wird, stellt sich eine sogenannte Kompetenzillusion ein: Die Studierenden glauben, Sie hätten den Stoff nun im Griff und gut gelernt. Wenn es dann in der Prüfung nicht läuft wie geplant, wird die Schwere der Prüfung und die Aufgabenstellung bemängelt, jedoch nicht die Lernstrategie hinterfragt.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Die Lernforschung verrät uns auch, dass es eine wirkungsvollere Lernstrategie ist, den Lernstoff wiederholt frageorientiert abzuprüfen und zu erinnern – das wird in der Fachliteratur als Retrieval-Based Learning bezeichnet.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Die Idee ist einfach und könnte wie folgt umgesetzt werden: Zerlegen Sie den Stoff in kleine, leicht verdauliche Einheiten. Wir sprachen schon im Zusammenhang mit dem Vorlesungsbesuch davon, dass es sinnvoll ist, das Gehörte und Gelernte kompakt zusammen zu fassen. Das dient dazu, den Stoff zu verarbeiten und gegen das Vergessen anzugehen. Wenn Sie nun eine Karte zu Hilfe nehmen: Schreiben Sie auf die Vorderseite eine Frage oder eine Aufforderung oder Aufgabe, die zu dem Wissensbaustein passt. Auf die Rückseite schreiben Sie die Antwort oder das Ergebnis. Mit diesem Schritt haben Sie einen Wissensbaustein transformiert in eine Lerneinheit. Und das können Sie oft noch während der Vorlesung, der Übung, dem Seminar oder dem Praktikum erledigen!</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dieser Punkt ist entscheidend: Was eben noch eine Wissenseinheit auf Paper war, ist mit der Übertragung auf eine Karte und der Frage zu einer Lerneinheit geworden. Mehrere solcher Lernkarten bilden ein Lern-Quizz.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Mit diesen Lernkarten können Sie sehr effizient regelmäßig Ihren Wissenstand abfragen und durch die Wiederholung einprägen. Was gut sitzt, darf eine Weile zurückgestellt werden. Sie kennen vielleicht die Lernkastensysteme wie sie gerne für das Vokabellernen eingesetzt werden. Ob Sie nun Vokabeln oder Lerneinheiten abfragen, das System ist für alle Arten des Wissenserwerbs und der Wissensfestigung einsetzbar.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Wie die Lernforschung auch festgestellt hat, halten viele Studierende diese Lernkartentechnik und die Quizzes für stumpfes Auswendiglernen. Das ist nicht ganz verkehrt – aber nur die halbe Wahrheit. Das wiederholte, aktive Abrufen von Wissen fördert außerdem die Entwicklung von Verständnis. Jeder Abrufvorgang triggert Erinnerungspfade an, die regelrecht auf der Suche nach Sinnzusammenhängen sind. Verknüpfungen werden hergestellt. So kann es sein, dass Sie zu Anfang des Lernens sagen: „Uff, was muss ich alles auswendig lernen.” Und nach der fünften Wiederholung plötzlich feststellen: „Interessant, ich beginne zu verstehen.”</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Das aktive Einprägen und Abfragen von Lernstoff ist nicht auf Lernkarten beschränkt. Sie können sich in Ihrer Lerngruppe gegenseitig Fragen stellen, das hat einen ähnlichen Effekt. Wichtig ist die Wiederholung und die Frage oder Aufforderung, die aktiv ein Erinnern erfordert. Das wiederholte Lesen von Notizen ist zu passiv. Viele der Vorschläge im nächsten Kapitel sind eine Variante davon: Wiederholte, aktiv eingeforderte Erinnerung. Das übt und trainiert und macht gut. Sehr gut sogar.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<h1 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 21px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">5. Tipp: Kenne Dich selbst und schaffe Dir ein Lernumfeld, dass es Dir so leicht und interessant macht wie möglich, dass Du tatsächlich lernst</span></h1>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Nach einiger Zeit des Studiums wusste ich ziemlich genau, wo ich am wenigsten gut lernen konnte: daheim in meinem Studentenzimmer. Es gab einfach zu viele Ablenkungen. Mein Computer, das Telefon, die Mitbewohner, der Kühlschrank. Also suchte ich mir eine Bibliothek, und zwar die langweiligste Bibliothek überhaupt, gefüllt mit Büchern, die mich nicht interessieren, und einen Platz, wohin sich nur wenige Studierende verlieren. In einer derart reizarmen Umgebung wurde mein Ordner mit den Prüfungsvorbereitungen plötzlich zu einer willkommenen Abwechslung. Kein Anruf, kein Computerspiel, kein Mitbewohner, der mal eben den Kopf durch die Tür steckt, kein Kühlschrank mit leckeren Joghurts – nichts, was mich hätte von meiner Mission ablenken können. Gelegentlich saß ich da und träumte vor mich hin, aber spätestens nach 10 Minuten war der Versuch, die nächste Aufgabe zu lösen, dann doch wieder die interessantere Unternehmung.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Jeder Mensch ist anders. Für mich ist der „Trick mit der Bibliothek” das Richtige gewesen. Vielleicht lernen Sie am liebsten in den eigenen vier Wänden. Oder dann, wenn Hund oder Katze Ihnen wärmend auf den Füßen liegen und man das Aufstehen nicht wagt. Oder Sie brauchen eine Lerngruppe, die Ihnen den Anstoß gibt sich zu strukturieren, wo man diskutieren kann und Hilfe bekommt, wenn man mit irgendetwas nicht zurecht kommt.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Entscheidend ist, dass Sie sich ein Umfeld zum Lernen schaffen. Es ist hart und macht das Lernen unnötig schwer, wenn man das sicher interessantere Gespräch mit der Freundin ablehnen muss. Wenn man den Leckereien im Kühlschrank widerstehen muss. Oder wenn man dem Internet und dem unendlichen Quell hochspannender Nachrichten aus sozialen Medien ausweichen muss. Mit Disziplin alleine ist es nicht getan. Jede Entscheidung </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">gegen </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">etwas kostet Energie, Zeit und Nerven, die einem </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">für </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">das Lernen fehlen. Mit all diesen Ablenkungen schrumpft eine geplante Lernzeit von vier Stunden rasch auf eine halbe Stunde zusammen. Und am Ende plagt einen das schlechte Gewissen, dass man eigentlich hätte mehr lernen sollen.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Es ist viel, viel leichter, sich in ein Lernabenteuer zu stürzen, wenn man sich aus der Schußlinie aller erdenklichen Ablenkungen gebracht hat. Das kann der einsame Ort einer Bibliothek sein.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Oder, und das ist die Alternative, man kommt mit Leuten zusammen, die das gleiche Anliegen haben. Wo man sich in der Gruppe fokussiert, wo man sich gegenseitig davon abhält, etwas anderes zu tun, als die geplante Lernzeit auch zu lernen. Wo man sich gegenseitig hilft, wo das Lernen von spannenden, anderen Sichtweisen und Lerntechniken geprägt ist. Mit den richtigen Leuten lernt es sich besser als einsam in der Bibliothek. Wir Menschen sind soziale Wesen. Es fühlt sich gut an, eine Herausforderung gemeinsam mit anderen zu meistern.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<h1 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 21px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">6. Tipp: Vorschläge zum Lernen im Team</span></h1>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Es gibt viele schöne Arten, wie man das Lernen mit einem oder mehr Studienkolleg(inn)en abwechslungsreich und interessant gestalten kann. Ein paar Vorschläge mit Bezug zur OOP-Veranstaltung:</span></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Syntaktische Probleme</span></h2>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Wenn Sie ungenau bei syntaktischen Feinheiten sind (Sie vergessen z.B. immer wieder das Semikolon oder die schließende zu einer öffnenden Klammer), dann mag Ihnen Folgendes helfen: Schreiben Sie kleinere Programme auf Papier. Nehmen Sie dazu einfache Programmieraufgaben, die Sie aus dem Kopf nachprogrammieren. Ein Studienkollege bzw. eine Studienkollegin schaut Ihnen dabei zu und meldet sich sofort, sobald Sie den Fehler machen. Direktes Feedback hilft sehr gut, sich ein Korrekturverhalten anzutrainieren.</span></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Verständnis eines Sprachkonstrukts</span></h2>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Lassen Sie sich in Ihrer Lerngruppe 10 Aufgaben geben, in denen das Sprachkonstrukt (z.B. die for-Schleife) verwendet werden soll. Wenn Sie alleine arbeiten: Suchen Sie sich Code-Beispiele raus (etwa per Google-Suche), in denen das Sprachkonstrukt verwendet wird. Schauen Sie sich das Programm an, lassen Sie es laufen und versuchen Sie, sich das Verhalten des Sprachkonstrukts zu erklären.</span></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Unsicherheit in der Verwendung eines Sprachkonstrukts</span></h2>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Machen Sie sich Lernkarten. Auf der Vorderseite fragen Sie beispielsweise: „Wie sieht der schematische Aufbau einer for-Anweisung aus?”. Auf die Rückseite kommt das Schema und zusätzlich ein Beispiel. Legen Sie fest, wann Sie die Lernkarten lernen wollen. Sie können dafür Pausen oder Zeiten in öffentlichen Verkehrsmitteln nutzen.</span></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Prüfsimulation</span></h2>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Sie nehmen Sich eine Aufgabe aus der Übung oder dem Praktikum vor, die Sie bereits gelöst haben. Sie geben sich 20 Minuten, das Programm auf Papier zu entwickeln. Nach 20 Minuten brechen Sie ab, egal, wie weit Sie gekommen sind. (Sie müssen ein Zeitgefühl entwickeln.) Anschließend geben Sie das Programm in der PDE ein. Sie markieren sich Fehler und Probleme, die Sie hatten. Sie wiederholen das täglich, bis Sie die Zeit einhalten und nur noch maximal einen Fehler machen.</span></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Programmverständnis I</span></h2>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Erklären Sie einem Studienkollegen bzw. einer Studienkollegin, was ein Programm aus der Übung oder dem Praktikum macht; Zeile für Zeile.</span></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Programmverständnis II</span></h2>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Drucken Sie sich den Quellcode eines Ihnen unbekannten Programms aus. (In der PDE gibt es einen Verweis auf zahlreiche Beispiele.) Das Programm sollte etwa 100 Zeilen umfassen und keinesfalls 200 Zeilen überschreiten. Versuchen Sie detailliert vorherzusagen, was das Programm tun wird. Erst wenn Sie absolute Klarheit haben oder nicht Weiterkommen, lassen Sie das Programm in der PDE laufen. Notieren Sie sich Irrtum, Missverständnisse etc. Machen Sie daraus eventuell Lernkarten.</span></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Programmverständnis III</span></h2>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Setzen Sie sich zu zweit an einen Rechner und programmieren Sie gemeinsam an einer Aufgabe. Nach jeder Programmzeile tauschen Sie die Tastatur. Fehler des Vorgängers dürfen korrigiert werden, wenn man an der Reihe ist. Es wird die ganze Zeit über nicht gesprochen. Eventuell darf man Kurzkommentare im Quellcode ergänzen.</span></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Stresstraining</span></h2>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Programmieren Sie mit Ihrer Lerngruppe zeitgleich um die Wette. Nehmen Sie eine Programmieraufgabe aus den Übungen oder dem Praktikum. Oder denken Sie sich selbst Varianten oder neue Miniprojekte aus. Sieger ist, wer zuerst ein lauffähiges Programm erstellt. Analysieren Sie gemeinsam das Siegerprogramm und verbessern Sie es. Starten Sie den Wettbewerb mit der gleichen Aufgabe erneut, wobei der Sieger als Coach dem einen oder anderen kurz hilft, wenn er oder sie hängt.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<h1 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 21px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Buchempfehlungen</span></h1>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bevor Sie das eine oder andere Buch kaufen möchten, bedenken Sie bitte eines: Weder der Besitz eines Buches noch das Lesen eines Buches sind ein Garant dafür, dass sich irgendetwas an Ihrem Studium und Ihrem Studierverhalten ändert. Der Konsum von Büchern (wie Konsum überhaupt) ist nicht selten der Anfang eines Vorsatzes („Ich kümmere mich um meine Probleme!”), dem die Umsetzung fehlt. Sie haben in diesem Text genug Anregungen bekommen, die Sie sofort anwenden können. Dafür brauchen Sie keine Bücher. Mein Vorschlag ist: Erst wenn Sie drei, vier Wochen etwas umgesetzt haben, dann besorgen Sie sich das Buch. Dann wird das Buch zur Anregung und Bereicherung eines Projekts, das Sie bereits gestartet haben: professioneller zu studieren.</span></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Schnell und gut studieren</span></h2>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Zwei Bücher hätte ich gerne zu Beginn meines Studiums gehabt. Leider gab es sie damals noch nicht.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cal Newport hat während seines Studiums versucht herauszufinden, wie es sich besonders effizient studieren und lernen lässt ohne sich ausbrennen zu lassen und nächtelang zu lernen. Er hat die Erfolgstechniken anderer Top-Studierenden genommen, sie selbst angewendet und in dem Buch „How to Become a Straight-A Student” (frei übersetzt: Wie man ein Einser-Student wird) festgehalten. Auch sein Blog „</span><a href="http://calnewport.com/blog/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Study Hacks</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">” ist voll mit hilfreichen Ratschlägen. Mittlerweile ist Newport Professor für Informatik.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Wie man den Beruf des Studierens auf die Spitze treiben kann, das haben Robert Grünwald, Marcel Kopper und Marcel Pohl eindrucksvoll bewiesen. Sie haben es geschafft, ihren Bachelor </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: italic; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">und </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ihren Master in vier statt in elf Semestern abzuschließen. Ihr im Buch „Die Turbo-Studenten” (Gabal, 2013) dokumentiertes Studium ist für die Wenigsten zur Nachahmung geeignet. Die Drei haben sich ungewöhnlich viel abverlangt und profitierten von den verteilten Standorten der privaten FOM Hochschule. Lesenswert finde ich das Buch dennoch für jeden Studierenden, allein schon zur Selbstreflektion, was möglich ist.</span></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Lerntipps</span></h2>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Der erwähnte Dr. Gunther Karsten (Sie erinnern sich: 007 kommt mit seinem Auto angebraust) hat einige Gedächtnistechniken und Lerntipps anschaulich und kurzweilig in seinem Buch „So lernen Sieger – Die 50 besten Lerntipps” (Wilhelm Goldmann Verlag, 2012) zusammengestellt. Auch die Psychologie des Lernens kommt nicht zu kurz.</span></div>
<h2 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 17px; font-style: normal; font-variant: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Java</span></h2>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Im Studium hat man in manchen Fächern genug an Material und an Stoff zu verdauen und aufzuarbeiten. Da ist es kaum möglich, dicke Programmierbücher zu OOP oder zu Java zu lesen. Darum gefällt mir das Buch „Java: Der Grundkurs” (Galileo Computing, 2015) von Michael Kofler so gut. Es bietet in meinen Augen einen guten Mittelweg zwischen Nachschlagewerk und Einführung zu Java~8. Das Buch kommt im Taschenbuchformat daher und ist ein leichter Tagesbegleiter durch den Java-Programmieralltag eines Informatik-Studierenden, besonders, wenn Sie am Anfang Ihres Studiums stehen.</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
<h1 dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 10pt;">
<span style="background-color: transparent; color: black; font-family: 'Trebuchet MS'; font-size: 21px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Zum Schluss</span></h1>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Es würde mich sehr freuen, wenn Sie diesen Text jetzt nicht einfach beiseite legten, sondern anfangen darüber nachzudenken, wie Sie Ihr OOP-Studium ändern wollen. Schreiben Sie sich auf, was Sie ändern möchten und wie Sie fortan diese Änderung in Ihrem Studienalltag einbauen wollen. Fangen Sie heute damit an. Dann lässt der Erfolg auch nicht auf sich warten!</span></div>
<br />
<br />
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt; text-align: center;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dieses Werk ist lizenziert unter einer Creative Commons:</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><a href="http://creativecommons.org/licenses/by-nc-sa/4.0/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Namensnennung – Nicht-kommerziell – Weitergabe unter gleichen Bedingungen, 4.0 International Lizenz</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span></div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-88752335269639290042014-11-22T21:27:00.000+01:002014-11-22T21:27:29.692+01:00Was mich am Inverted Classroom bzw. Flipped Classroom nervtMich nervt die Begeisterung für den "Umgedrehten Unterricht" -- im Englischen als Inverted oder Flipped Classroom bezeichnet --, die durch die Hallen der Hochschulen und Universitäten geistert. Die Idee: Statt einer Vorlesung werden Videos produziert, die die Studierenden im Selbststudium konsumieren. So kann die eigentliche Vorlesungszeit in effektive Übungszeit gewandelt werden.<br />
<br />
Der Ansatz ist simpel. Und er scheint einen Reiz auszuüben. Seit drei Jahren treffen sich in Marburg Schul- und Hochschullehrer(innen) aus dem deutschen Sprachraum auf der ICM-Konferenz. Man ist gewillt, sich von der Idee anstecken zu lassen und Erfahrungen auszutauschen. Es gibt einige sehr engagierte Produzenten von Lehrvideos, allen voran Jörn Loviscach, Hochschullehrer in Bielefeld. Er schneidet jede Vorlesung und jeden seiner Vorträge mit. Nicht ganz 2.000 Videos listet seine Homepage aktuell auf. Seinen Youtube-Kanal haben über 41.000 Menschen abonniert, fast 15,5 Millionen Aufrufe seiner Videos hat es bisher gegeben. Damit ist Loviscach so etwas wie der "Popstar" der deutschsprachigen ICM-Szene.<br />
<br />
Dabei sind es nur Videos! Der Eifer eines Loviscach, seine Traute aber auch sein Können öffentlich dokumentierter Lehre ringen mir Bewunderung ab. Loviscach kann erklären, der Gute hat was auf dem Kasten. Er macht meinem Berufsstand alle Ehre. Allein, es sind und bleiben nur Videos.<br />
<br />
Loviscach weiß es und eigentlich weiß es auch jeder andere (Hochschul)Lehrer und jede andere Hochschullehrerin: Videos können Freiräume schaffen, ohne Frage, aber die Lehre revolutionieren können sie nicht. Weil Lehre weit mehr ist als ein Buch, als ein Video, als ein Professor, als eine Vorlesung oder eine Übung. Da Lernen individuell ist, muss auch die Lehre irgendwann beim Individuum ankommen, dort etwas auslösen, Wissen verankern, Erfahrungen einfließen lassen. Als Produktionsfaktor muss Lehre zu einem gewissen Grad massentauglich sein, aber sie muss das Denken, Leben und Fühlen eines einzelnen Menschen erreichen und verändern. Das ist ein interessanter Spannungsbogen, und die Suche nach einem Brückenschlag bleibt eine stete Herausforderung. Die Lebenswelten der Menschen ändern sich permanent, digitale Technologien durchsetzen eindringlich den Alltag, Wertesysteme sind im Wandel, vieles ist im Fluss. Lehrer(innen) werden allein schon benötigt, um diesen steten Wandel und den Transformationsbedarf zu bedienen, wenn es um die Lehre und das Lernen geht. Es gibt immer wieder aufs Neue einen Bedarf an didaktischen und pädagogischen Konzepten, Ideen, Methoden, Techniken.<br />
<br />
Ich will die Absurdität der "Umgedrehten Vorlesung" einmal auf die Spitze treiben. Nehmen wir ein Beispiel aus meinem Hochschulalltag an der Technischen Hochschule Mittelhessen (THM) in Gießen. Dieses Semester bietet meine Veranstaltung "Objektorientierte Programmierung" 270 Informatik-Studierenden im 1. Studiensemester eine Einführung in die Programmierung. Es ist nahe liegend, die Veranstaltung zu "flippen" oder zu "invertieren", nicht wahr? Bei der Masse muss man ja regelrecht Videos produzieren. Warum sollte man sich unten in den Hörsaal stellen und über das Mikro 270 Menschen beschallen? Interaktivität ist ohnehin kaum möglich in so einem Setting. Gut, produzieren wir also Lehrvideos für 14 Semesterwochen. Übungen mit 270 Studierenden im Hörsaal sind auch nicht sehr ergiebig. Also werden wir auch die Übungen auf digitalem Zelluloid bannen! Und dann? Ja dann haben wir im Grunde das Material für einen MOOC, einen Massive Open Online Course, beisammen. Die Videos sind schnell hochgeladen. Lehre im neuen Jahrtausend ist online. Weil es noch an der Interaktivität mangelt: Quizzes dazu, ein Diskussionsforum aufsetzen, fertig. Wir richten noch eine Sprechstunde ein, in der sich Studierende an Tutoren wenden können. Es ist anscheinend alles Menschenmögliche getan, damit jeder Student und jede Studentin am Ende programmieren kann. Dann gibt es am Ende des Semesters nur noch die Klausur.<br />
<br />
Ich behaupte, das ist keine Lehre! Videos sind so wenig Lehre wie es Texte in Büchern sind. Es macht keinen Sinn, ein Kind vor ein Video zu setzen, damit es dann Fahrrad fahren oder Schwimmen lernt. Da braucht es das Vorbild, die Demonstration, auch einmal die führende Hand, das ermutigende Wort, Rückmeldung und ermunternden Applaus, wenn erste Erfolge zu sehen sind. Die Lehre im digitalen Jahrtausend soll gerne alles nutzen, was digital zur Hand ist. Videos sind ja nicht per se schlecht. Und eine gamifizierte Lerneinheit am Computer auch nicht. Wenn sich Lehre jedoch entfremdet von den Sorgen und Ängsten junger Menschen. Wenn sie beim Lernen alleine lässt, wenn sie um den Preis der Orientierung an Masse am Individuum vorbei zielt. Wenn sie keine Orientierung und vor allem: keinen Lehrer bzw. keine Lehrerin mehr hat. Dann, so glaube ich, findet keine Lehre statt.<br />
<br />
Kommen wir auf mein Beispiel zurück. Was beschäftigt mich, wenn ich 270 Studierende an das Programmieren heranführen will? Das letzte, woran ich denke, sind Videos! Es beginnt mit einem Leitsatz: "Lernzentrierte Lehre". Und das heißt für mich: Vom Ende, von der Klausur her denken. Wie bekomme ich meine Studierenden fit für die Programmierung in Java, wobei ich das Prüfungsformat nicht ignorieren kann. Einen Studierenden interessiert, wie er oder sie die Klausur nicht nur bestehen, sondern es soll auch klar sein, wie man mit einer Bestnote abschließen kann. Und darauf muss ich vorbereiten. Es muss Übungen und Tests geben, die Training sind für die Klausur. (Außen vor lassen möchte ich die Diskussion, ob eine Klausur die adäquate Prüfungsform ist. Das ändert nichts an dem Leitsatz und der Implikation: Wie gestalte ich Lehre aus Sicht der Studierenden?)<br />
<br />
Was mich beschäftigt:<br />
<br />
* Wie kann ich meinen Studierenden das Programmieren vereinfachen? Visuelle Orientierung und Interaktivität bringen abstrakte Konzepte an die sichtbare Oberfläche und gewährleisten schnelles Feedback beim "Sprechen" mit dem Computer. Das sind gute Voraussetzungen für selbstbelohnendes Lernverhalten. Darum fiel meine Wahl auf Processing. Das ist ein wunderbar verpacktes Java. Und zu Processing gibt es sehr gute Lernvideos! (Und wer mag, findet da großartige Unterstützung beim Lernen.)<br />
<br />
* Ein anderer Leitsatz: "Programmieren ist ein Handwerk". Darum programmieren die Studierenden mit mir im Hörsaal. Das wird zweimal in der Woche angeboten für jeweils rund 120 Studierende. Das ist wie gemeinsames Fahrrad fahren, Schwimmen gehen oder Schreinern. Hier muss keiner fürchten, etwas falsch zu machen. Man bespricht gemeinsam Programme, tippert sie, probiert aus. Spielräume sind geschaffen.<br />
<br />
* Wie erreiche ich den einzelnen Studierenden? Es gibt sieben Termine, die sich eine Assistentin und ein Assistent zusammen mit vier Tutoren teilen. So erreichen wir eine Gruppengröße von fast 40 Studierenden. Es herrscht Teilnahmepflicht, es gibt Übungsaufgaben und Tests. Betreuung ist in der Nähe, Hilfestellung wird gegeben. Jetzt macht jeder seine eigenen Erfahrungen im Sprachwasser der Programmiersprache.<br />
<br />
Noch gibt es eine Vorlesung. Und ich überlege in der Tat, Teile davon als Videos zu produzieren, um stattdessen eine weitere Übung anzubieten. Aber die Videos sind nur ein Baustein. Es soll in Zukunft auch ein Skript geben. Papier als Nachschlagemedium ist dem Video weit überlegen. Und noch wichtiger: Lernkarten!!! Lernkarten (am besten digital) und Quizzes sind so mit das Beste, was es gibt, um Wissen in die Hirne zu befördern.<br />
<br />
Was mich am "Umgedrehten Unterricht" bzw. an der "Umgedrehten Lehre" nervt? Es ist kein Lernkonzept! Vielleicht sollte das die 4. ICM-Konferenz in Marburg thematisieren.<br />
<div>
<br /></div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-16247438025068572952014-06-27T12:53:00.000+02:002014-06-27T12:53:02.104+02:00Let me tell you a story: I'm a Prisoner of the JVM<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghTZDutNjnTERQercehx_iqC2uwe66mMj4MA86L6Z9mYABkquQj85x_aMV-aYCPc8f0THFu7fC7V2_Oq57gFFsbQs4tB7frtUiyZ1vaD1G-R4z7-CTj0LvUjXvo_nW2Sq5d5xpw2_aWUo/s1600/PrisonerOfJVM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghTZDutNjnTERQercehx_iqC2uwe66mMj4MA86L6Z9mYABkquQj85x_aMV-aYCPc8f0THFu7fC7V2_Oq57gFFsbQs4tB7frtUiyZ1vaD1G-R4z7-CTj0LvUjXvo_nW2Sq5d5xpw2_aWUo/s1600/PrisonerOfJVM.png" height="320" width="223" /></a></div>
<span style="font-family: Verdana, sans-serif;"><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;"><br /></span></span>
<span style="font-family: Verdana, sans-serif;"><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;">In JVM prison we live in a totalitarian system. You are not allowed to do something unless you are called to do something.</span><br style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;" /><br style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;">You can call someone else to ask for assistance. But that's no fun either. You have to stand still and wait for the other to complete your call.</span><br style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;" /><br style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;">Some poor guys call themselves to experience the joy of activity. If you call yourself too often, guards will step in and brutally silence you.</span><br style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;" /><br style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;">Whenever you do not behave properly, an alarm goes on. The guards try to manage exceptional situations one way or the other. They hate to face a situation they are not prepared to handle.</span><br style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;" /><br style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;">There are instructions we have to follow when called for action. Very often the instructions are carelessly written and buggy. We get punished if we misbehave and guards yell at us.</span><br style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;" /><br style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;">Life in JVM is full of shit. A lot of us are dying. When they bury the dead, they call it "garbage collection". Can you imagine that?</span><br style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;" /><br style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;" /><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;">Fight for a better JVM. Fight for programmers who care about objects. </span></span><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-family: Verdana, sans-serif; font-size: 14px; white-space: pre-wrap;">Fight for objectivity.</span><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-family: Verdana, sans-serif; font-size: 14px; white-space: pre-wrap;"> </span><br />
<span style="font-family: Verdana, sans-serif;"><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;"><br /></span></span>
<span style="font-family: Verdana, sans-serif;"><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;">Know what you are doing when programming in Java, Clojure or Scala!</span></span><br />
<span style="font-family: Verdana, sans-serif;"><span style="background-color: white; color: rgba(0, 0, 0, 0.8); font-size: 14px; white-space: pre-wrap;"><br /></span></span>
<span style="font-family: Verdana, sans-serif; font-size: xx-small;"><span style="background-color: white; color: rgba(0, 0, 0, 0.8); white-space: pre-wrap;">Remark: While thinking about a nice way to explain object-orientation, I suddenly found myself inventing this story about "The dark side of the JVM". It's just a story. Don't worry, keep on and enjoy programming, they are just objects ;-)</span></span>Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-68183238073377430412014-06-22T21:03:00.001+02:002014-06-22T21:32:46.862+02:00"Weniger schlecht programmieren"<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.oreilly.de/catalog/covers/wenschleprogger.s.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.oreilly.de/catalog/covers/wenschleprogger.s.gif" /></a></div>
Gestern hing ich mit Kathrin Passig und Johannes Jander in der Pause in Marburg ab. Anbei: Das Straßencafe "Die Pause" in der Oberstadt ist ein Geheimtipp, und ich hatte den Eindruck, dass es Kathrin und Johannes hier sehr gut gefallen hat. Ein gemütlicher Ort, an dem man ein wenig die Zeit verlieren und sich ausführlich über das Programmierleben unterhalten kann. Software-Testing, ja das ist wichtig, aber man muss es nicht übertreiben. Wir waren uns mal wieder einig. Das muss einen nicht daran hindern, <i>Warstories</i> aus Softwareprojekten zum besten zu geben. Ich, zum Beispiel, kannte einen Software-Tester, dessen Gespür für Softwarefehler geradezu unheimlich war -- so ein Uri Geller, der mit ein paar Tests zeigte, dass an der Software so gar nichts richtig und gerade war. Der führte einem vor, welche Codezeilen alle "verbogen" waren. Wahnsinn.<br />
<br />
Zuvor hatten mir Kathrin und Johannes im Zug von Gießen nach Marburg von ihren Ansichten über das Testen erzählt. Das Schöne: Beide blieben auf dem Teppich, die Softwarebranche hat sie geschliffen. Sie wissen, was wichtig ist, wo es drauf ankommt, ohne dogmatisch zu sein. Gerade das sind beide nicht: Dogmatiker. Gesunde Pragmatiker eher. Daher kann man mit den beiden auch so unkompliziert seine Zeit verbringen. Sie wissen viel, sind unglaublich herumgekommen in der Softwarewelt, und bringen ihr Wissen solide und hübsch auf den Punkt!<br />
<br />
Ich habe mit beiden seit einiger Zeit meinen Spaß. Kathrin, Johannes und ich, wir treiben uns seit zwei Monaten an wechselnden Orten herum. Mal in Gießen, mal in Marburg, mal in meinem Büro, mal zuhause. Natürlich -- ich gestehe -- kenne ich Kathrin und Johannes nicht persönlich. Sie sprechen über ihr Buch "Weniger schlecht programmieren" mit mir. Das Buch ist derart informell und gleichzeitig grundsolide, dass es wie ein Plausch unter Freunden anmutet. Unter guten Freunden sogar. Niemals hebt wer den Zeigefinger, es geht um das Programmieren unter menschlichen Bedingungen. Der Mensch ist ein Mängelwesen. Aber das weiß jeder selbst -- kein Grund, sich dafür fertig zu machen und abzustrafen. So erklärt sich der Titel. "Besser programmieren" wäre so anmaßend, so besserwisserisch. "Weniger schlecht programmieren" hat Verständnis für Dich und mich als Programmierer(in) und erinnert bestenfalls mit einem Augenzwinkern an die eine oder andere Episode, manch einsamen Tag vor der Tastatur, der hätte ganz anders verlaufen können, hätte, ja hätte man das Buch "Weniger schlecht programmieren" schon vor 10 oder 20 Jahren gelesen.<br />
<br />
Oh, welche Blessuren hätte ich mir ersparen können, wären Kathrin und Johannes nicht solche elenden Prokrastinierer -- das Buch hätte schon vor Jahren erscheinen sollen. Andererseits: Es macht sie doppelt sympathisch, die beiden wissen, wovon sie reden und leiten das Buch so wunderbar ein im ersten Teil mit einem Kapitel "Zwischen Hybris und Demut". Es sind Menschen, die Computer programmieren.<br />
<br />
Im zweiten Teil geht es um Themen wie: Konventionen, Namensgebung, Kommentare, Code lesen, Hilfe suchen, Lizenz zum Helfen, Überleben im Team -- all das unter dem klarsichtigen Titel "Programmieren als Verständigung". Kein Lehrbuch bringt es so realititätsnah auf den Punkt.<br />
<br />
Teil 3 widmet sich dem "Umgang mit Fehlern". Da geht es ums Debugging, Refactoring, Testing und um Warnhinweise. Worte der Weisheit! Ich wünschte, auch das hätte mal auf dem Lehrplan meines Studiums gestanden.<br />
<br />
Der vierte und letzte Teil, überschrieben mit "Wahl der Mittel", trägt Weisheiten, Techniken und Werkzeuge zusammen, die das Tagwerk eines Programmierers bzw. einer Programmiererin prägen <i>sollten</i>. Die Themen: Mach es nicht selbst, Werkzeugkasten, Versionskontrolle, Command and Conquer -- vom Überleben auf der Kommandozeile, Objektorientierte Programmierung, Aufbewahrung von Daten, Sicherheit, Nützliche Konzepte, Wie geht es weiter.<br />
<br />
Das Buch lohnt sich. Die Zeit mit Kathrin und Johannes ist ein echter Gewinn. Nicht alles ist für den erfahrenen Programmierer bzw. die erfahrene Programmiererin neu, "aber gut, dass wir nochmal darüber geredet haben". Reflektion, Bewusstwerdung, das Erinnern an Techniken, Werkzeuge, Weisheiten aus dem Werkzeugkasten der Softwaretechnik, all das wird helfen, beim "Weniger schlecht programmieren." Es macht Dich besser!<br />
<br />
Das Buch ist nichts für Programmieranfänger(innen). Aber man sollte das Buch im Regal stehen haben. Damit es in Reichweite ist für die Momente, wenn man ein wenig Beistand und Verständnis bei Kathrin und Johannes braucht. Am Abend, in der Programmierpause, im Cafe oder unterwegs. Und diese Momente sind häufiger als man denkt.<br />
<br />
Kathrin Passig, Johannes Jander: Weniger schlecht programmieren, O'Reilly, 2013, <a href="http://www.oreilly.de/catalog/wenschleprogger/">http://www.oreilly.de/catalog/wenschleprogger/</a><br />
<br />
[Hinweis zum Interessenkonflikt: Der O'Reilly-Verlag hat mir ein kostenloses Rezensionsexemplar zukommen lassen. Ich würde mich sehr freuen, wenn O'Reilly der "Für Dummies"-Serie eine "Weniger schlecht"-Serie entgegensetzen würde. Den Anfang haben Kathrin Passig und Johannes Jander gemacht. Weiter so!]Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-22379711162321203842014-03-04T16:39:00.000+01:002014-03-04T16:39:03.247+01:002 Programmiertipps: Bring Kopfwelt und Programmierwelt in Passung<div class="markdown-here-wrapper" data-md-original="%3Cp%3EWenn%20es%20eine%20oder%20zwei%20Empfehlungen%20gibt%2C%20die%20ich%20einer%20Programmiererin%20oder%20einem%20Programmierer%20mit%20auf%20den%20Weg%20geben%20m%C3%B6chte%2C%20dann%20diese%20zwei%3A%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E*%20Visualize%20what%20you%20don't%20see%3C%2Fp%3E%3Cp%3E*%20Express%20your%20understanding%20of%20your%20code%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3EBeide%20Tipps%20drehen%20sich%20um%20ein%20und%20denselben%20Punkt%3A%20Stimmt%20das%2C%20was%20ich%20da%20programmiert%20habe%2C%20mit%20meinen%20Vorstellungen%20%C3%BCberein%2C%20was%20der%20Code%20wirklich%20tut%3F%20Habe%20ich%20ein%20korrektes%20Abbild%20dessen%20im%20Kopf%2C%20was%20sich%20zur%20Laufzeit%20meines%20Programms%20abspielt%3F%20Gerade%20in%20einer%20OO-Sprache%20ist%20die%20Gefahr%20sehr%20gro%C3%9F%2C%20dass%20man%20nicht%20wirklich%20%C3%BCberblickt%2C%20wie%20sich%20Objekte%20untereinander%20verkn%C3%BCpfen%2C%20ob%20die%20Objektstrukturen%20auch%20das%20abbilden%2C%20was%20man%20wollte.%20Man%20muss%20eine%20lebhafte%20Phantasie%20haben%2C%20um%20zu%20sehen%2C%20welche%20Auswirkungen%20der%20Programmcode%20in%20Form%20von%20Klassen%20und%20Methoden%20bei%20seiner%20Ausf%C3%BChrung%20auf%20die%20Ebene%20der%20Objekte%20hat.%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3EBeide%20Tipps%20seien%20an%20einem%20Beispiel%20erl%C3%A4utert.%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3EIn%20den%20letzten%20Tagen%20implementierte%20ich%20eine%20besondere%20Variante%20der%20%5Bbin%C3%A4ren%20B%C3%A4ume%5D(http%3A%2F%2Fde.wikipedia.org%2Fwiki%2FBin%25C3%25A4rer_Suchbaum)%3A%20AVL-B%C3%A4ume.%20%5BAVL-B%C3%A4ume%5D(http%3A%2F%2Fde.wikipedia.org%2Fwiki%2FAVL-Baum)%20achten%20beim%20Hinzuf%C3%BCgen%20oder%20Entfernen%20von%20Knoten%20darauf%2C%20dass%20der%20Bin%C3%A4rbaum%20%5Bbalanciert%5D(http%3A%2F%2Fde.wikipedia.org%2Fwiki%2FBalancierter_Baum)%20bleibt%20--%20die%20englischsprachige%20Wikipediaseite%20erkl%C3%A4rt%20%5BAVL%20trees%5D(http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FAvl_tree)%20sehr%20gut.%20Als%20kleine%20Herausforderung%20kam%20dazu%2C%20dass%20der%20AVL-Baum%20als%20%5Bpersistente%20Datenstruktur%5D(http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FPersistent_data_structure)%20umgesetzt%20werden%20sollte.%20Man%20braucht%20persistente%20Datenstrukturen%20in%20der%20funktionalen%20Programmierung.%20Bei%20einer%20persistenten%20Datenstruktur%20werden%20Daten%20niemals%20ver%C3%A4ndert%20(%5BImmutabilit%C3%A4t%5D(http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FImmutable_object))%2C%20das%20Hinzuf%C3%BCgen%20oder%20Entfernen%20von%20Daten%20erzeugt%20eine%20neue%20Datenstruktur%2C%20wobei%20so%20viele%20Anteile%20der%20%22alten%22%20Struktur%20wie%20m%C3%B6glich%20wiederverwendet%20werden.%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E%23%23%23%20Tipp%201%3A%20Visualize%20what%20you%20don't%20see%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3EIch%20startete%20mit%20einer%20persistenten%20Implementierung%20eines%20Bin%C3%A4rbaums%20--%20das%20ist%20in%20Python%20rasch%20geschehen.%20Dann%20folgte%20der%20Ausbau%20zum%20AVL-Baum%2C%20was%20ein%20wenig%20Arbeit%20und%20vor%20allem%20Verst%C3%A4ndnis%20erforderte.%20Wenn%20nach%20dem%20Einf%C3%BCgen%20eines%20Knotenelements%20der%20Baum%20seine%20Balance%20verliert%2C%20dann%20m%C3%BCssen%20%5BTeilb%C3%A4ume%20rotiert%5D(http%3A%2F%2Fde.wikipedia.org%2Fwiki%2FBin%25C3%25A4rbaum%23Rotation_in_bin.C3.A4ren_B.C3.A4umen)%20werden%2C%20damit%20der%20Baum%20wieder%20ausgewogen%20ist.%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3ENachdem%20ich%20fertig%20war%2C%20stellte%20sich%20die%20Frage%20aller%20Fragen%3A%20Macht%20mein%20Code%2C%20was%20er%20soll%3F%20Erste%20Gehversuche%20mit%20dem%20Code%20an%20der%20Python-Konsole%20verliefen%20gut%20und%20ohne%20Probleme.%20Doch%20sind%20die%20B%C3%A4ume%20wirklich%20ausbalanciert%3F%20Ich%20will%20nicht%20nur%20Sonderf%C3%A4lle%20testen%2C%20sondern%20auch%20*sehen*%2C%20dass%20die%20Verlinkung%20der%20Knoten%20stimmt.%20Visualisierung%20als%20vertrauensbildende%20Ma%C3%9Fnahme%20ist%20nicht%20zu%20%C3%BCberbieten!%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3EZum%20Gl%C3%BCck%20gibt%20es%20ein%20wunderbares%20Werkzeug%20zur%20Darstellung%20von%20Graphen%20aller%20Art%3A%20%5BGraphviz%5D(http%3A%2F%2Fwww.graphviz.org).%20Schnell%20war%20die%20%60__str__%60-Methode%20der%20%60Node%60-Klasse%20angepasst%20und%20ich%20konnte%20mir%20mit%20Hilfe%20einer%20Funktion%20%60gviz%60%20eine%20passgerechte%20Ausgabe%20f%C3%BCr%20eine%20Graphviz-Ausgabe%20erzeugen.%20Und%20die%20brachte%20das%20Ungl%C3%BCck%20an%20den%20Tag.%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E%60%60%60python%3C%2Fp%3E%3Cp%3En1%20%3D%20Node(3).insert(4).insert(2)%3C%2Fp%3E%3Cp%3En2%20%3D%20n1.insert(1)%3C%2Fp%3E%3Cp%3En3%20%3D%20n2.insert(0)%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3Eprint(gviz(n3))%3C%2Fp%3E%3Cp%3E%60%60%60%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3EDer%20sich%20ergebende%20Baum%20war%20alles%20andere%20als%20balanciert.%20Ab%20einem%20H%C3%B6henunterschied%20von%20mindestens%202%20muss%20der%20Baum%20neu%20ausgerichtet%20werden.%20Blau%20eingef%C3%A4rbt%20ist%20jeweils%20der%20Verweis%20auf%20den%20%22linken%22%20Teilbaum%20eines%20Knotens%2C%20in%20Rot%20der%20%22rechte%22%20Teilbaum.%20Die%20Angabe%20im%20Knoten%20entspricht%20dem%20Schl%C3%BCsselwert%2C%20dem%20%60key%60%20des%20Knoten.%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%20class%3D%22separator%22%20style%3D%22text-align%3A%20center%3B%20clear%3A%20both%3B%22%3E%3Ca%20imageanchor%3D%221%22%20href%3D%22http%3A%2F%2F1.bp.blogspot.com%2F-7poMv1ELgOs%2FUxXhUsdzVCI%2FAAAAAAAAAQM%2Fwy2FWeV5dMQ%2Fs1600%2Fgraph1.png%22%20style%3D%22margin-left%3A%201em%3B%20margin-right%3A%201em%3B%22%3E%3Cimg%20src%3D%22%2F%2Fimages-blogger-opensocial.googleusercontent.com%2Fgadgets%2Fproxy%3Furl%3Dhttp%253A%252F%252F1.bp.blogspot.com%252F-7poMv1ELgOs%252FUxXhUsdzVCI%252FAAAAAAAAAQM%252Fwy2FWeV5dMQ%252Fs1600%252Fgraph1.png%26amp%3Bcontainer%3Dblogger%26amp%3Bgadget%3Da%26amp%3BrewriteMime%3Dimage%252F*%22%20border%3D%220%22%20data-orig-src%3D%22http%3A%2F%2F1.bp.blogspot.com%2F-7poMv1ELgOs%2FUxXhUsdzVCI%2FAAAAAAAAAQM%2Fwy2FWeV5dMQ%2Fs1600%2Fgraph1.png%22%20width%3D%22165%22%20height%3D%22320%22%20style%3D%22%22%3E%3C%2Fa%3E%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3EDer%20Fehler%20im%20Code%20war%20schnell%20gefunden.%20Die%20%22H%C3%B6he%22%20eines%20Knoten%20wurde%20falsch%20berechnet%2C%20ich%20hatte%20die%20Addition%20um%20%60%2B%201%60%20am%20Ende%20von%20%60max(%20...%20)%60%20vergessen.%20So%20ein%20Fehler%20passiert%20schnell%20und%20ist%20leicht%20behoben.%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E%60%60%60python%3C%2Fp%3E%3Cp%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20self.height%20%3D%20max(left.height%20%26nbsp%3Bif%20left%20%26nbsp%3Belse%200%2C%3C%2Fp%3E%3Cp%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20right.height%20if%20right%20else%200)%20%2B%201%3C%2Fp%3E%3Cp%3E%60%60%60%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3EUnd%20*siehe*%20da%2C%20jetzt%20stimmt%20es!%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%20class%3D%22separator%22%20style%3D%22text-align%3A%20center%3B%20clear%3A%20both%3B%22%3E%3Ca%20imageanchor%3D%221%22%20href%3D%22http%3A%2F%2F1.bp.blogspot.com%2F-BALVWzAvaL0%2FUxXixiamDnI%2FAAAAAAAAAQY%2FLe7jlERavuI%2Fs1600%2Fgraph2.png%22%20style%3D%22margin-left%3A%201em%3B%20margin-right%3A%201em%3B%22%3E%3Cimg%20src%3D%22%2F%2Fimages-blogger-opensocial.googleusercontent.com%2Fgadgets%2Fproxy%3Furl%3Dhttp%253A%252F%252F1.bp.blogspot.com%252F-BALVWzAvaL0%252FUxXixiamDnI%252FAAAAAAAAAQY%252FLe7jlERavuI%252Fs1600%252Fgraph2.png%26amp%3Bcontainer%3Dblogger%26amp%3Bgadget%3Da%26amp%3BrewriteMime%3Dimage%252F*%22%20border%3D%220%22%20data-orig-src%3D%22http%3A%2F%2F1.bp.blogspot.com%2F-BALVWzAvaL0%2FUxXixiamDnI%2FAAAAAAAAAQY%2FLe7jlERavuI%2Fs1600%2Fgraph2.png%22%20style%3D%22%22%3E%3C%2Fa%3E%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3EDie%20Visualisierung%20der%20ansonsten%20verborgenen%20Verlinkungen%20von%20Node-Objekten%20hilft%20au%C3%9Ferdem%20dabei%2C%20die%20schrittweise%20Entstehung%20der%20Baumstrukturen%20zu%20beobachten%2C%20wobei%20die%20Immutabilit%C3%A4t%20gewahrt%20bleibt.%20Es%20werden%20keine%20Referenzen%20%22verbogen%22%2C%20sondern%20gegebenenfalls%20neue%20Knoten%20mit%20neuen%20Referenzen%20erzeugt.%20Wann%20immer%20m%C3%B6glich%2C%20wird%20auf%20vorhandene%20Teilstrukturen%20verwiesen.%20Ein%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E%60%60%60python%3C%2Fp%3E%3Cp%3Eprint(gviz(n1%2Cn2%2Cn3))%3C%2Fp%3E%3Cp%3E%60%60%60%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3Eliefert%20mir%20die%20Darstellung%20von%20drei%20B%C3%A4umen%20mit%20jeweils%20%60n1%60%2C%20%60n2%60%20bzw.%20%60n3%60%20als%20Wurzelknoten.%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%20class%3D%22separator%22%20style%3D%22text-align%3A%20center%3B%20clear%3A%20both%3B%22%3E%3Ca%20imageanchor%3D%221%22%20href%3D%22http%3A%2F%2F2.bp.blogspot.com%2F-1793gFoBQ48%2FUxXlIMBFmhI%2FAAAAAAAAAQk%2FPWdb0ZBAceU%2Fs1600%2Fgraph3.png%22%20style%3D%22margin-left%3A%201em%3B%20margin-right%3A%201em%3B%22%3E%3Cimg%20src%3D%22%2F%2Fimages-blogger-opensocial.googleusercontent.com%2Fgadgets%2Fproxy%3Furl%3Dhttp%253A%252F%252F2.bp.blogspot.com%252F-1793gFoBQ48%252FUxXlIMBFmhI%252FAAAAAAAAAQk%252FPWdb0ZBAceU%252Fs1600%252Fgraph3.png%26amp%3Bcontainer%3Dblogger%26amp%3Bgadget%3Da%26amp%3BrewriteMime%3Dimage%252F*%22%20border%3D%220%22%20data-orig-src%3D%22http%3A%2F%2F2.bp.blogspot.com%2F-1793gFoBQ48%2FUxXlIMBFmhI%2FAAAAAAAAAQk%2FPWdb0ZBAceU%2Fs1600%2Fgraph3.png%22%20style%3D%22%22%20width%3D%22320%22%20height%3D%22171%22%3E%3C%2Fa%3E%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3ELinks%20sieht%20man%20den%20durch%20%60n1%60%20aufgespannten%20Baum%2C%20der%20mit%20der%20Erg%C3%A4nzung%20um%20einen%20Schl%C3%BCssel%20%601%60%20einen%20neuen%20Wurzelknoten%2C%20%60n2%60%20liefert%2C%20der%20die%20rechte%20Teilstruktur%20beibeh%C3%A4lt%20(die%20roten%20Verweise%20auf%20den%20Knoten%20mit%20dem%20Schl%C3%BCsselwert%20%604%60)%2C%20jedoch%20links%20einen%20neuen%20Teilbaum%20mit%20dem%20zus%C3%A4tzlichen%2C%20neuen%20Knoten%20mit%20dem%20Schl%C3%BCssel%20%601%60%20aufbaut.%20Die%20Erg%C3%A4nzung%20um%20einen%20Schl%C3%BCssel%20mit%20dem%20Wert%20%600%60%20liefert%20den%20Knoten%20%60n3%60%2C%20der%20nun%20im%20linken%20Baumteil%20eine%20Rotation%20durchf%C3%BChren%20muss%2C%20um%20den%20%60n3%60-Baum%20zu%20balancieren.%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3EOhne%20eine%20solche%20Visualisierung%20h%C3%A4tte%20ich%20meinem%20Code%20kaum%20getraut.%20Vor%20allem%20sind%20gro%C3%9Fe%20Baustrukturen%20rasch%20auf%20ihre%20Balanciertheit%20hin%20visuell%20inspiziert.%20Visualization%20builds%20trust%20in%20code!%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E%23%23%23%20Tipp%202%3A%20Express%20your%20understanding%20of%20your%20code%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3ENat%C3%BCrlich%20geh%C3%B6ren%20zu%20jedem%20guten%20St%C3%BCck%20Code%20ein%20paar%20Testf%C3%A4lle.%20Was%20ich%20mit%20diesem%20zweiten%20Tipp%20jedoch%20meine%2C%20greift%20noch%20viel%20unmittelbarer%3A%20%C3%9Cberpr%C3%BCfe%20--%20beispielsweise%20mit%20Unit-Tests%20--%20ob%20der%20Code%20auch%20das%20tut%2C%20von%20dem%20Du%20glaubst%2C%20dass%20er%20es%20tut.%20Im%20Beispiel%3A%20Hat%20ein%20instanziierter%20%60Node%60%20tats%C3%A4chlich%20die%20ihm%20zugewiesenen%20Eigenschaftswerte%2C%20insbesondere%20die%20berechneten%20Eigenschaftswerte.%20Wie%20ich%20feststellen%20musste%2C%20was%20schon%20die%20erste%20und%20einfachste%20meiner%20Annahmen%20nicht%20korrekt.%20Ein%20Knoten%20ohne%20jegliche%20Nachfolger%20sollte%20die%20H%C3%B6he%20%600%60%20haben%20--%20hatte%20er%20aber%20nicht.%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E%60%60%60python%3C%2Fp%3E%3Cp%3E%26nbsp%3B%20%26nbsp%3B%20def%20test_oneNode(self)%3A%3C%2Fp%3E%3Cp%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20n%20%3D%20Node(3)%3C%2Fp%3E%3Cp%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20self.assertTrue(n.key%20%3D%3D%203)%3C%2Fp%3E%3Cp%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20self.assertTrue(n.height%20%3D%3D%200)%3C%2Fp%3E%3Cp%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20self.assertTrue(n.left%20%3D%3D%20None)%3C%2Fp%3E%3Cp%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20self.assertTrue(n.right%20%3D%3D%20None)%3C%2Fp%3E%3Cp%3E%60%60%60%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3EDer%20obige%20Code%20zur%20Berechnung%20von%20%60self.height%60%20hatte%20tats%C3%A4chlich%20noch%20einen%20Fehler!%20Er%20konnte%20niemals%20%600%60%20werden%2C%20was%20von%20mir%20gar%20nicht%20beabsichtigt%20war.%20Dieser%20Widerspruch%20zwischen%20Annahme%20und%20tats%C3%A4chlich%20berechneter%20Knotenh%C3%B6he%20fiel%20nicht%20weiter%20auf%2C%20da%20es%20f%C3%BCr%20die%20Berechnung%20der%20Balance%20zwischen%20zwei%20Teilb%C3%A4umen%20keine%20Rolle%20spielt%2C%20ob%20ein%20konstanter%20Wert%20konsistent%20dazugerechnet%20wird%20oder%20nicht.%20Erst%20die%20kleine%20Korrektur%20von%20%60self.height%60%20brachte%20die%20Welt%20wieder%20in%20Ordnung.%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E%60%60%60python%3C%2Fp%3E%3Cp%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20self.height%20%3D%20max(left.height%20%26nbsp%3Bif%20left%20%26nbsp%3Belse%20-1%2C%3C%2Fp%3E%3Cp%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20right.height%20if%20right%20else%20-1)%20%2B%201%3C%2Fp%3E%3Cp%3E%60%60%60%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E%23%23%23%20Zusammengefasst%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3EWer%20programmiert%2C%20baut%20Kunstwelten%20aus%20Objekten%20auf.%20Und%20dabei%20ist%20vor%20allem%20wichtig%2C%20dass%20die%20Ideen%20und%20Vorstellungen%20im%20Kopf%20%C3%BCbereinstimmen%20mit%20den%20erschaffenen%20Objektwelten.%20Sonst%20wei%C3%9F%20man%20nicht%20wirklich%2C%20was%20man%20da%20programmiert%20hat%2C%20was%20da%20abl%C3%A4uft%20und%20was%20sich%20da%20tut.%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3EKopfwelt%20und%20Programmwelt%20m%C3%BCssen%20unbedingt%20in%20Passung%20gebracht%20werden.%20Und%20dazu%20gibt%20es%20zwei%20Techniken%3A%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E*%20Visualisiere%20die%20Welt%20Deiner%20Objekte%2C%20damit%20Du%20Deine%20Erwartungen%20und%20Vorstellungen%20abgleichen%20kannst.%20Graphiz%20ist%20daf%C3%BCr%20ein%20sehr%20elegantes%20Werkzeug.%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E*%20Formuliere%20Deine%20Vorstellungen%20an%20die%20Objektwelt%2C%20so%20dass%20Br%C3%BCche%20in%20der%20Objektwelt%20sofort%20zutage%20treten.%20Assertions%20und%20TestCases%20sind%20hier%20ein%20gutes%20Hilfsmittel.%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E%3Cp%3E%3Cbr%3E%3C%2Fp%3E" data-md-url="https://www.blogger.com/blogger.g?blogID=5556918437810598389#editor/target=post;postID=2237971116232120384;onPublishedMenu=posts;onClosedMenu=posts;postNum=0;src=link" id="markdown-here-wrapper-353233">
<div style="margin: 1.2em 0px !important;">
Wenn es eine oder zwei Empfehlungen gibt, die ich einer Programmiererin oder einem Programmierer mit auf den Weg geben möchte, dann diese zwei:</div>
<ul style="margin: 1.2em 0px; padding-left: 2em;">
<li style="margin: 0.5em 0px;">Visualize what you don’t see</li>
<li style="margin: 0.5em 0px;">Express your understanding of your code</li>
</ul>
<div style="margin: 1.2em 0px !important;">
Beide Tipps drehen sich um ein und denselben Punkt: Stimmt das, was ich da programmiert habe, mit meinen Vorstellungen überein, was der Code wirklich tut? Habe ich ein korrektes Abbild dessen im Kopf, was sich zur Laufzeit meines Programms abspielt? Gerade in einer OO-Sprache ist die Gefahr sehr groß, dass man nicht wirklich überblickt, wie sich Objekte untereinander verknüpfen, ob die Objektstrukturen auch das abbilden, was man wollte. Man muss eine lebhafte Phantasie haben, um zu sehen, welche Auswirkungen der Programmcode in Form von Klassen und Methoden bei seiner Ausführung auf die Ebene der Objekte hat.</div>
<div style="margin: 1.2em 0px !important;">
Beide Tipps seien an einem Beispiel erläutert.</div>
<div style="margin: 1.2em 0px !important;">
In den letzten Tagen implementierte ich eine besondere Variante der <a href="http://de.wikipedia.org/wiki/Bin%C3%A4rer_Suchbaum">binären Bäume</a>: AVL-Bäume. <a href="http://de.wikipedia.org/wiki/AVL-Baum">AVL-Bäume</a> achten beim Hinzufügen oder Entfernen von Knoten darauf, dass der Binärbaum <a href="http://de.wikipedia.org/wiki/Balancierter_Baum">balanciert</a> bleibt — die englischsprachige Wikipediaseite erklärt <a href="http://en.wikipedia.org/wiki/Avl_tree">AVL trees</a> sehr gut. Als kleine Herausforderung kam dazu, dass der AVL-Baum als <a href="http://en.wikipedia.org/wiki/Persistent_data_structure">persistente Datenstruktur</a> umgesetzt werden sollte. Man braucht persistente Datenstrukturen in der funktionalen Programmierung. Bei einer persistenten Datenstruktur werden Daten niemals verändert (<a href="http://en.wikipedia.org/wiki/Immutable_object">Immutabilität</a>), das Hinzufügen oder Entfernen von Daten erzeugt eine neue Datenstruktur, wobei so viele Anteile der “alten” Struktur wie möglich wiederverwendet werden.</div>
<h3 id="tipp-1-visualize-what-you-don-t-see" style="font-size: 1.3em; font-weight: bold; margin: 1.3em 0px 1em; padding: 0px;">
Tipp 1: Visualize what you don’t see</h3>
<div style="margin: 1.2em 0px !important;">
Ich startete mit einer persistenten Implementierung eines Binärbaums — das ist in Python rasch geschehen. Dann folgte der Ausbau zum AVL-Baum, was ein wenig Arbeit und vor allem Verständnis erforderte. Wenn nach dem Einfügen eines Knotenelements der Baum seine Balance verliert, dann müssen <a href="http://de.wikipedia.org/wiki/Bin%C3%A4rbaum#Rotation_in_bin.C3.A4ren_B.C3.A4umen">Teilbäume rotiert</a> werden, damit der Baum wieder ausgewogen ist.</div>
<div style="margin: 1.2em 0px !important;">
Nachdem ich fertig war, stellte sich die Frage aller Fragen: Macht mein Code, was er soll? Erste Gehversuche mit dem Code an der Python-Konsole verliefen gut und ohne Probleme. Doch sind die Bäume wirklich ausbalanciert? Ich will nicht nur Sonderfälle testen, sondern auch <em>sehen</em>, dass die Verlinkung der Knoten stimmt. Visualisierung als vertrauensbildende Maßnahme ist nicht zu überbieten!</div>
<div style="margin: 1.2em 0px !important;">
Zum Glück gibt es ein wunderbares Werkzeug zur Darstellung von Graphen aller Art: <a href="http://www.graphviz.org/">Graphviz</a>. Schnell war die <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">__str__</code>-Methode der <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">Node</code>-Klasse angepasst und ich konnte mir mit Hilfe einer Funktion <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">gviz</code> eine passgerechte Ausgabe für eine Graphviz-Ausgabe erzeugen. Und die brachte das Unglück an den Tag.</div>
<pre style="font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; font-size: 1em; line-height: 1.2em; margin: 1.2em 0px;"><code class="language-python" style="background-color: #f8f8f8; background-color: ghostwhite; background-position: initial initial; background-repeat: initial initial; border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); border: 1px solid rgb(234, 234, 234); color: #333333; display: block !important; display: block; display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; overflow: auto; padding: 0.5em 0.7em; padding: 0.5em; padding: 0px 0.3em; white-space: pre-wrap; white-space: pre;">n1 = Node(<span class="number" style="color: #009999;">3</span>).insert(<span class="number" style="color: #009999;">4</span>).insert(<span class="number" style="color: #009999;">2</span>)
n2 = n1.insert(<span class="number" style="color: #009999;">1</span>)
n3 = n2.insert(<span class="number" style="color: #009999;">0</span>)
print(gviz(n3))
</code></pre>
<div style="margin: 1.2em 0px !important;">
Der sich ergebende Baum war alles andere als balanciert. Ab einem Höhenunterschied von mindestens 2 muss der Baum neu ausgerichtet werden. Blau eingefärbt ist jeweils der Verweis auf den “linken” Teilbaum eines Knotens, in Rot der “rechte” Teilbaum. Die Angabe im Knoten entspricht dem Schlüsselwert, dem <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">key</code> des Knoten.</div>
<div style="margin: 1.2em 0px !important;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjROJ4HoQbMwvHRfesdpIUDVDSoZ7GeRd4y3A3_ZQMeHZqGQcbVoNhGe_k_YjJM8fqKTjyb7RAmZJQWduVDT2Pru2DrLM2wfXqQ_cxhjcLEBSMxLv-CCSQLZ7O0Jc3Q3fXAbzuUzVsnsmU/s1600/graph1.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjROJ4HoQbMwvHRfesdpIUDVDSoZ7GeRd4y3A3_ZQMeHZqGQcbVoNhGe_k_YjJM8fqKTjyb7RAmZJQWduVDT2Pru2DrLM2wfXqQ_cxhjcLEBSMxLv-CCSQLZ7O0Jc3Q3fXAbzuUzVsnsmU/s1600/graph1.png" height="320" width="165" /></a></div>
<div style="margin: 1.2em 0px !important;">
Der Fehler im Code war schnell gefunden. Die “Höhe” eines Knoten wurde falsch berechnet, ich hatte die Addition um <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">+ 1</code> am Ende von <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">max( ... )</code> vergessen. So ein Fehler passiert schnell und ist leicht behoben.</div>
<pre style="font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; font-size: 1em; line-height: 1.2em; margin: 1.2em 0px;"><code class="language-python" style="background-color: #f8f8f8; background-color: ghostwhite; background-position: initial initial; background-repeat: initial initial; border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); border: 1px solid rgb(234, 234, 234); color: #333333; display: block !important; display: block; display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; overflow: auto; padding: 0.5em 0.7em; padding: 0.5em; padding: 0px 0.3em; white-space: pre-wrap; white-space: pre;"> self.height = max(left.height <span class="keyword" style="color: #333333; font-weight: bold;">if</span> left <span class="keyword" style="color: #333333; font-weight: bold;">else</span> <span class="number" style="color: #009999;">0</span>,
right.height <span class="keyword" style="color: #333333; font-weight: bold;">if</span> right <span class="keyword" style="color: #333333; font-weight: bold;">else</span> <span class="number" style="color: #009999;">0</span>) + <span class="number" style="color: #009999;">1</span>
</code></pre>
<div style="margin: 1.2em 0px !important;">
Und <em>siehe</em> da, jetzt stimmt es!</div>
<div style="margin: 1.2em 0px !important;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCtOFwNhENV6hdY-9qdUViUZ6J3MswdeRi2kwWjkRe9sOcHfDUAiWI6JzxIpZAvAzdtNaxl7uIvaKNcFWuiP_Y8tsnsAMxZ_T3_h4hHPBCsLmkJcwjCjskw-TGwgOIEhkjetCgyPXZvsk/s1600/graph2.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCtOFwNhENV6hdY-9qdUViUZ6J3MswdeRi2kwWjkRe9sOcHfDUAiWI6JzxIpZAvAzdtNaxl7uIvaKNcFWuiP_Y8tsnsAMxZ_T3_h4hHPBCsLmkJcwjCjskw-TGwgOIEhkjetCgyPXZvsk/s1600/graph2.png" /></a></div>
<div style="margin: 1.2em 0px !important;">
Die Visualisierung der ansonsten verborgenen Verlinkungen von Node-Objekten hilft außerdem dabei, die schrittweise Entstehung der Baumstrukturen zu beobachten, wobei die Immutabilität gewahrt bleibt. Es werden keine Referenzen “verbogen”, sondern gegebenenfalls neue Knoten mit neuen Referenzen erzeugt. Wann immer möglich, wird auf vorhandene Teilstrukturen verwiesen. Ein</div>
<pre style="font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; font-size: 1em; line-height: 1.2em; margin: 1.2em 0px;"><code class="language-python" style="background-color: #f8f8f8; background-color: ghostwhite; background-position: initial initial; background-repeat: initial initial; border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); border: 1px solid rgb(234, 234, 234); color: #333333; display: block !important; display: block; display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; overflow: auto; padding: 0.5em 0.7em; padding: 0.5em; padding: 0px 0.3em; white-space: pre-wrap; white-space: pre;">print(gviz(n1,n2,n3))
</code></pre>
<div style="margin: 1.2em 0px !important;">
liefert mir die Darstellung von drei Bäumen mit jeweils <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">n1</code>, <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">n2</code> bzw. <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">n3</code> als Wurzelknoten.</div>
<div style="margin: 1.2em 0px !important;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifIqq0oaZSHIrjxotU64uCLK7RFcxeXYqelVP7n3yRo_0v0nxU8SnpNIZOCscqFxDYfRvwyiDJXLmzMs7JCSZuMCaWFyhLluQPZ_YA3k851_rMKDiG91swOGfQha3n1qU__SrkNec3DLA/s1600/graph3.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifIqq0oaZSHIrjxotU64uCLK7RFcxeXYqelVP7n3yRo_0v0nxU8SnpNIZOCscqFxDYfRvwyiDJXLmzMs7JCSZuMCaWFyhLluQPZ_YA3k851_rMKDiG91swOGfQha3n1qU__SrkNec3DLA/s1600/graph3.png" height="171" width="320" /></a></div>
<div style="margin: 1.2em 0px !important;">
Links sieht man den durch <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">n1</code> aufgespannten Baum, der mit der Ergänzung um einen Schlüssel <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">1</code> einen neuen Wurzelknoten, <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">n2</code> liefert, der die rechte Teilstruktur beibehält (die roten Verweise auf den Knoten mit dem Schlüsselwert <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">4</code>), jedoch links einen neuen Teilbaum mit dem zusätzlichen, neuen Knoten mit dem Schlüssel <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">1</code> aufbaut. Die Ergänzung um einen Schlüssel mit dem Wert <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">0</code> liefert den Knoten <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">n3</code>, der nun im linken Baumteil eine Rotation durchführen muss, um den <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">n3</code>-Baum zu balancieren.</div>
<div style="margin: 1.2em 0px !important;">
Ohne eine solche Visualisierung hätte ich meinem Code kaum getraut. Vor allem sind große Baustrukturen rasch auf ihre Balanciertheit hin visuell inspiziert. Visualization builds trust in code!</div>
<h3 id="tipp-2-express-your-understanding-of-your-code" style="font-size: 1.3em; font-weight: bold; margin: 1.3em 0px 1em; padding: 0px;">
Tipp 2: Express your understanding of your code</h3>
<div style="margin: 1.2em 0px !important;">
Natürlich gehören zu jedem guten Stück Code ein paar Testfälle. Was ich mit diesem zweiten Tipp jedoch meine, greift noch viel unmittelbarer: Überprüfe — beispielsweise mit Unit-Tests — ob der Code auch das tut, von dem Du glaubst, dass er es tut. Im Beispiel: Hat ein instanziierter <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">Node</code> tatsächlich die ihm zugewiesenen Eigenschaftswerte, insbesondere die berechneten Eigenschaftswerte. Wie ich feststellen musste, was schon die erste und einfachste meiner Annahmen nicht korrekt. Ein Knoten ohne jegliche Nachfolger sollte die Höhe <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">0</code> haben — hatte er aber nicht.</div>
<pre style="font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; font-size: 1em; line-height: 1.2em; margin: 1.2em 0px;"><code class="language-python" style="background-color: #f8f8f8; background-color: ghostwhite; background-position: initial initial; background-repeat: initial initial; border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); border: 1px solid rgb(234, 234, 234); color: #333333; display: block !important; display: block; display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; overflow: auto; padding: 0.5em 0.7em; padding: 0.5em; padding: 0px 0.3em; white-space: pre-wrap; white-space: pre;"> <span class="function"><span class="keyword" style="color: #333333; font-weight: bold;">def</span> <span class="title" style="color: #990000; font-weight: bold;">test_oneNode</span><span class="params">(self)</span>:</span>
n = Node(<span class="number" style="color: #009999;">3</span>)
self.assertTrue(n.key == <span class="number" style="color: #009999;">3</span>)
self.assertTrue(n.height == <span class="number" style="color: #009999;">0</span>)
self.assertTrue(n.left == <span class="built_in" style="color: #0086b3;">None</span>)
self.assertTrue(n.right == <span class="built_in" style="color: #0086b3;">None</span>)
</code></pre>
<div style="margin: 1.2em 0px !important;">
Der obige Code zur Berechnung von <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">self.height</code> hatte tatsächlich noch einen Fehler! Er konnte niemals <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">0</code> werden, was von mir gar nicht beabsichtigt war. Dieser Widerspruch zwischen Annahme und tatsächlich berechneter Knotenhöhe fiel nicht weiter auf, da es für die Berechnung der Balance zwischen zwei Teilbäumen keine Rolle spielt, ob ein konstanter Wert konsistent dazugerechnet wird oder nicht. Erst die kleine Korrektur von <code style="background-color: #f8f8f8; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(234, 234, 234); display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; padding: 0px 0.3em; white-space: pre-wrap;">self.height</code> brachte die Welt wieder in Ordnung.</div>
<pre style="font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; font-size: 1em; line-height: 1.2em; margin: 1.2em 0px;"><code class="language-python" style="background-color: #f8f8f8; background-color: ghostwhite; background-position: initial initial; background-repeat: initial initial; border-bottom-left-radius: 3px; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; border-bottom-right-radius: 3px; border-top-left-radius: 3px; border-top-left-radius: 3px; border-top-right-radius: 3px; border-top-right-radius: 3px; border: 1px solid rgb(204, 204, 204); border: 1px solid rgb(234, 234, 234); color: #333333; display: block !important; display: block; display: inline; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 0.85em; margin: 0px 0.15em; overflow: auto; padding: 0.5em 0.7em; padding: 0.5em; padding: 0px 0.3em; white-space: pre-wrap; white-space: pre;"> self.height = max(left.height <span class="keyword" style="color: #333333; font-weight: bold;">if</span> left <span class="keyword" style="color: #333333; font-weight: bold;">else</span> -<span class="number" style="color: #009999;">1</span>,
right.height <span class="keyword" style="color: #333333; font-weight: bold;">if</span> right <span class="keyword" style="color: #333333; font-weight: bold;">else</span> -<span class="number" style="color: #009999;">1</span>) + <span class="number" style="color: #009999;">1</span>
</code></pre>
<h3 id="zusammengefasst" style="font-size: 1.3em; font-weight: bold; margin: 1.3em 0px 1em; padding: 0px;">
Zusammengefasst</h3>
<div style="margin: 1.2em 0px !important;">
Wer programmiert, baut Kunstwelten aus Objekten auf. Und dabei ist vor allem wichtig, dass die Ideen und Vorstellungen im Kopf übereinstimmen mit den erschaffenen Objektwelten. Sonst weiß man nicht wirklich, was man da programmiert hat, was da abläuft und was sich da tut.</div>
<div style="margin: 1.2em 0px !important;">
Kopfwelt und Programmwelt müssen unbedingt in Passung gebracht werden. Und dazu gibt es zwei Techniken:</div>
<ul style="margin: 1.2em 0px; padding-left: 2em;">
<li style="margin: 0.5em 0px;"><div style="margin: 0.5em 0px !important; margin: 1.2em 0px !important;">
Visualisiere die Welt Deiner Objekte, damit Du Deine Erwartungen und Vorstellungen abgleichen kannst. Graphiz ist dafür ein sehr elegantes Werkzeug.</div>
</li>
<li style="margin: 0.5em 0px;"><div style="margin: 0.5em 0px !important; margin: 1.2em 0px !important;">
Formuliere Deine Vorstellungen an die Objektwelt, so dass Brüche in der Objektwelt sofort zutage treten. Assertions und TestCases sind hier ein gutes Hilfsmittel.</div>
</li>
</ul>
</div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-52479757409184366112013-09-06T19:17:00.000+02:002013-09-06T19:23:14.941+02:00Was darf ein eBook kosten?Die ein, zwei Euro, die ein eBook gegenüber der Papiervariante oft nur billiger ist, sind ein schlechter Handel für seinen Käufer. Mit dem Buch kann ich machen, was ich will -- mit dem eBook nicht! Ein eBook verkaufen, nein, das geht nun wirklich nicht und hat der Leser des Buches auch nicht beabsichtigt, so sieht es das Landgericht in Bielefeld [siehe <a href="http://klawtext.blogspot.de/2013/04/will-der-durchschnittsverbraucher.html" target="_blank">kLAWtext</a>]. Lassen wir einmal dahingestellt, ob diese Rechtsauffassung bestand haben wird. Fakt bleibt: Nach derzeitiger Lage sind eBooks nur geringfügig billiger als Papierbücher, ohne dass ich das gleiche Verfügungsrecht über ein eBook habe wie über ein "normales" Buch.<br />
<br />
Machen wir also die ökonomische Rechnung auf: Das Papierbuch kann ich nach Gebrauch wieder verkaufen, das eBook nicht. Also darf ein eBook nicht teurer sein als Neupreis minus Verkaufspreis des gebrauchten Buchs. Die Rechnung ist schnell gemacht dank des Trade-In-Angebots bei Amazon. Dort kann ich meine gebrauchten Bücher wieder loswerden. Teils zu lachhaften Preisen, aber wir wollen uns einmal an der aktuellen Bestseller-Liste des SPIEGELs (36/2013) orientieren.<br />
<br />
Wer mag, kann meine Fleißarbeit <a href="https://docs.google.com/spreadsheet/ccc?key=0Al0KTl9VYQT0dF9IakY2UnNneWtpTlhRd3ktVGhOZXc&usp=sharing" target="_blank">hier</a> einsehen; die Trade-In-Preise sind vom 6. September. Die Ergebnisse:<br />
<br />
Ein Hardcover-Buch der Beststellerliste kostet rund 20€, der Wiederverkaufspreis liegt bei fast 9€. Das eBook dürfte dann nicht mehr als 11€ kosten, es ist mit durchschnittlich 16€ (Kindle-Preise bei Amazon) überteuert. Hardcover-Sachbücher sind gegenüber der Belletristik etwa 1€ günstiger.<br />
<br />
Ein Paperback kostet im Schnitt 15€, es ist für knapp 7€ wieder verkaufbar. Die Belletristik ist nur geringfügig teurer als das Sachbuch. 8€ sollte das eBook höchstens kosten. Die Kindle-Ausgabe verlangt um die 12€. Das ist zuviel!<br />
<br />
Für 10€ bekommt man Taschenbücher, die man wieder für knapp mehr als 3.50€ im Schnitt verkaufen kann. Ein eBook-Preis von etwa 6€ wäre demnach angemessen. Das eBook zum Belletristik-Taschenbuch ist mit ca. 9.50€ kaum günstiger als die Papierversion, das eBook zum Taschensachbuch kommt mit 7.50€ der Sache schon näher. Dennoch ist das eBook überteuert!<br />
<br />
Ein eBook sollte also nur 11€, 8€ oder 6€ kosten -- je nachdem, ob das Gegenstück in Papier als Hardcover (20€), Paperback (15€) oder Taschenbuch (10€) erschienen ist. Die digitale und die Papierwelt stehen in einem kuriosen Bezug zueinander: Die ökonomisch vernünftigen Kosten des eBook-Preises sind relativ stabil gekoppelt an den Papierbuchpreis; ein angemessener Preis für das eBook liegt bei 60% der Papierfassung. Der Preis eines eBooks orientiert sich an Herstellungskosten für ein Buch, das digital nicht existiert?<br />
<br />
Setzen wir dieser kuriosen Logik ein Ende: Für Bestsellerbücher der Kategorie Belletristik und Sachbuch ist nicht verargumentierbar, warum man die derzeitigen eBook-Preise zahlen sollte. Der Autor soll gut entlohnt sein, das Lektorat auch -- und Gewinn darf ein Verlag freilich auch machen. Aber ohne eine digitale Tausch-, Verleih- und Verkaufsbörse für eBooks wird sich kein ökonomisch nachvollziehbares Preisniveau für eBooks einstellen.<br />
<br />
Es ist fast sicher, dass der eBook-Markt bei diesen unsinnigen Preisen die eine oder andere Wandlung erfahren wird. Man darf gespannt sein, was z.B. Sascha Lobo mit <a href="http://saschalobo.com/portfolio/sobooks/" target="_blank">Sobooks</a> im Schilde führt.<br />
<br />
<br />
<br />
<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-2760801280207546672013-04-16T19:07:00.003+02:002013-04-16T19:24:37.842+02:00Freies Clojure-Buch: Funktionale Programmierung mit ClojureLisp und Scheme haben mich schon vor vielen Jahren fasziniert und begeistert. Kein Wunder, dass Clojure sich nicht viel Mühe geben musste, meine Sympathien für diese Sprache zu wecken. Und da ich Lust auf diese ungewöhnliche, funktionale Sprache wecken möchte, begann ich ein Manuskript zu schreiben, das Clojure-Neulingen einen leichten Einstieg bieten möchte.<br />
<br />
Das Buch "<a href="https://docs.google.com/file/d/0B10KTl9VYQT0SEtTcWlYUk5NaUU/edit?usp=sharing" target="_blank">Funktionale Programmierung mit Clojure</a>" steht Ihnen zum Download zur Verfügung; es steht unter einer Creative Commons-Lizenz, und Sie dürfen es gerne weitergeben. In der nächsten Zeit werde ich das Buch samt LaTeX-Sourcen auf Github zur Verfügung stellen. Wenn Sie das Werk verbessern oder fortschreiben möchten, Sie sind herzlich dazu eingeladen. Auch Kommentare und Feedback sind natürlich gerne willkommen.<br />
<br />
Viel Spaß beim Lesen!<br />
<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-40636177254201836042013-02-28T13:39:00.001+01:002013-03-01T00:46:33.777+01:00Die Vorlesung auf den Kopf gestellt: Die "Inverted Classroom Model"-Konferenz ICM 2013 in MarburgWarum hält heutzutage noch ein Dozent bzw. eine Dozentin eine Vorlesung? Gemeint ist der "Lehrmonolog", in dem einer spricht und viele zuhören und sich das dialogische Moment des Austauschs auf ein Minimum beschränkt. Damit mich niemand falsch versteht: notwendig ist diese Lehrform unbedingt. Es gibt Dinge, die wollen gewusst und erklärt werden. Aber das Format des "Lehrmonologs" ist als Lernform zu wenig. Machen, tun, erfahren, begreifen, explorieren, hinterfragen, ausprobieren, experimentieren -- all das ist nötig, um zu lernen, um Neues beim Lernenden zu verankern. Und das braucht Zeit. Viel Zeit. Zeit, die man nicht hat, wenn man zu viele "Lehrmonologe" hält. Und Lernen braucht den Dialog, die Auseinandersetzung.<br />
<br />
Warum also nicht den "Lehrmonolog" auslagern, als Video aufzeichnen, auf Youtube (oder woanders) hochladen und den Studierenden vor der "Vorlesung" zur Verfügung stellen? Genau das ist die Idee des <a href="http://de.wikipedia.org/wiki/Umgedrehter_Unterricht" target="_blank">Inverted Classroom Model</a> (ICM), gerne auch Flipped Classroom Model oder <a href="http://en.wikipedia.org/wiki/Flip_teaching" target="_blank">Flip Teaching</a> genannt. So kann die "Vorlesung" -- nun befreit vom zeitraubenden "Lehrmonolog" -- genutzt werden für die Aktivierung und die Gestaltung von Lernprozessen. Da der "Lernstoff" ja nicht von sich aus aktiv und dialogisch ist (zum Beispiel sind die Newton'schen Gesetze oder die Maxwell'schen Gleichungen erst einmal nur Formeln), ist nun die Zeit da, den "Lernstoff" in Formen zu gießen, die aktiven Umgang und dialogische Auseinandersetzung mit dem Stoff zulassen und fördern. Und dazu braucht es immer noch den Lehrer bzw. die Lehrerin (das Wort passt nun weit besser als Dozent/Dozentin), der dialogische Lernszenarien entwickelt aber auch als einspringt als Vermittler, wenn die dialogische Auseinandersetzung mit dem Lernstoff ins Stocken geraten ist. Dann besteht eine echte Chance, dass Lernen stattfindet.<br />
<br />
Für diese Betrachtungen zur Lehre gab es wunderbare Anregungen auf der Konferenz zum Inverted Classroom Model (<a href="http://invertedclassroom.wordpress.com/konferenz2013/" target="_blank">ICM 2013</a>) in Marburg, die ich am 27. Feb. besucht habe. <a href="http://www.j3l7h.de/" target="_blank">Jörn Loviscach</a>, FH-Prof aus Bielefeld und unumstrittener ICM-Star mit seinen <a href="http://www.youtube.com/user/JoernLoviscach" target="_blank">Lehrvideos auf Youtube</a>, erläuterte, wie er Videos produziert und welche Erfahrungen er damit gemacht hat (<a href="https://www.youtube.com/watch?v=Ks4ESi7R0Bg" target="_blank">Link zum Vortragsvideo</a>). <a href="http://www.brianbennett.org/" target="_blank">Brian E. Bennett</a>, Schullehrer aus den USA, zeigte mit Bezug auf <a href="http://www.youtube.com/watch?v=jRMVjHjYB6w" target="_blank">Dan Meyer</a> sehr eindrucksvoll, wie man Lehrinhalte in hochgradig dialogische Formen bringen kann; teils lässt sich das sehr schön mit Videos oder Fotos machen, die aber alles andere als "Lehrmonologe" sind. <a href="http://geschichtsunterricht.wordpress.com/" target="_blank">Daniel Bernsen</a>, Lehrer aus Koblenz, ergänzte das mit interessanten <a href="http://geschichtsunterricht.wordpress.com/2013/02/24/icm2013-das-icm-im-schulischen-geschichtsunterricht/" target="_blank">Erfahrungen aus dem Geschichtsunterricht</a>.<br />
<br />
Im Workshop mit <a href="http://cspannagel.wordpress.com/" target="_blank">Christian Spannagel</a> (Prof an der PH Heidelberg) war sehr schön zu erfahren, mit welchen Werkzeugen ein "Methodenkoffer" zur Lehre gefüllt werden kann, wenn denn der Lehrinhalt zuvor per Video vermittelt wurde (<a href="http://de.slideshare.net/cspannagel/was-mache-ich-eigentlich-in-der-prsenzphase" target="_blank">Folien-Link</a>). Beispiele sind Audience Response-Systeme, das "Listen, Think, Pair, Share"-Modell von Lyman und die Idee des "Aktiven Plenums". Sehr interessant war auch der Workshop zu Audience Respone-Systemen (ARS) von <a href="http://www.uni-marburg.de/fb10/iaa/institut/people_details?UniMrPersonenID=Wiemeyer_Leonie_0" target="_blank">Leonie Wiemeyer</a> und Andrea Röhr. Die Möglichkeiten der ARS sind ganz neue geworden, seitdem die Studierende Laptops, Tablets oder Smartphones in die Vorlesung mitbringen. Wer ein ARS ausprobieren möchte: <a href="http://ars.thm.de/">ars.thm.de</a> der Technischen Hochschule Mittelhessen.<br />
<br />
Natürlich ist das ICM ein Baustein auf dem Weg zu anderen Lehrkonzepten, aber es ist keine Lösung für alles. Herr Loviscach lässt es an Deutlichkeit nicht Mangeln. Seit einigen Semestern straucheln seine Mathe-Studierenden bei einfachsten Grundlagen: es hapert schon bei der Bruchrechnung. Neu im vergangenen Semester sei die Unkenntnis von "Punkt- vor Strichrechnung". Er ist mit solchen Beobachtungen nicht allein, ich mache sie auch -- nur gesprochen wird darüber kaum. Was ist los mit unserem Bildungssystem in Deutschland?<br />
<br />
Und wenn wir schon dabei sind: Warum müssen wir den Studierenden nun Videos präsentieren? Leistet das Lehrbuch oder das Manuskript zur Vorlesung nicht ebenfalls beste Dienste? Auch darauf antwortete Herr Loviscach einmal in einem gänzlich anderen Vortrag: Würde er auf das Lesen der Texte zur Vorbereitung bestehen, er würde noch mehr Studierende abhängen? Armes Deutschland: Hat der Verfall der Lesekultur begonnen?<br />
<br />
Vielleicht. Vielleicht auch nicht. Ich glaube, den Streit um den Verfall der Lesekultur muss man an dieser Stelle nicht führen. Unbestreitbar ist der "Lehrmonolog" in Textform nicht zu verachten. Aber es gibt auch gute Gründe für das Video. Es ist, wie der Text, ein lineares Medium, dabei aber deutlich weniger geeignet für schnelles, ungenaues "drüberlesen" und bedient zwei Kanäle gleichzeitig: man höhrt zu, sieht Geschriebenes und Zeichnungen. Das bindet Aufmerksamkeit und Konzentration. Wenn man dann geschickt Pausen einbaut mit z.B. kurzen Testfragen, dann nutzt man eine "Lerndramaturgie", die dem Textmedium abgeht.<br />
<br />
Das "Inverted Classroom Model" baut ein Spannungsfeld auf, das überdeutlich die Notwendigkeit von gut ausgebildeten Lehrenden einfordert: Die Wissensvermittlung per Video skaliert hin zu beliebig vielen Studierenden. Das ist "Massenlehre" genauso wie das Fernsehen oder Youtube Massenmedien sind. Praktisch, quadratisch, gut! Das Lernen selbst bleibt jedoch ein individueller Vorgang. Und noch sind wir in der Lehre meilenweit davon entfernt, gescripted (will sagen: automatisiert) Lernprozesse zu inszenieren, die massentauglich und individuell zugleich sind. Das ICM fordert noch mehr als zuvor nicht nur medien- sondern auch methoden-kompetente Lehrende ein.<br />
<br />
Wobei wir bei einem weiteren Problem sind: Die Klausur als Messinstrument von Bildungsleistungen zeigt sich nur begrenzt kompatibel mit einem Lehrmodell, das die dialogische Auseinandersetzung mit Lernstoffen einfordert. Wenn es am Ende doch nur noch darum geht, stumpfe Rechenaufgaben zu lösen oder vorgefertigte Lösungstexte in einem geschickten Remix zu reproduzieren, dann bremst das erheblich die Motivation, sich als Student(in) auf aktivierende und zeitraubende "Lernspielchen" einzulassen. Prüfungs- und Lehr- und Lernformen müssen kohärent sein, aufeinander passen.<br />
<br />
Zum Schluß der Konferenz fragte <a href="http://staff-www.uni-marburg.de/~handke/" target="_blank">Jürgen Handke</a>, Linguistik-Professor und Organisator der ICM 2013: Warum treiben Pädagogen Lehrmethoden wie das ICM und deren Verbreitung nicht voran? Und mich betrübt, als sich eine Lehramtstudentin zu Wort meldet und sagt: sie habe in ihren bisherigen vier Semestern eigentlich keine Pädagogik erlernt -- und Schule zeige sich sehr resistent gegenüber neuen Lehrformen; sie dürfe dort Experimente wie das ICM nicht ausprobieren.<br />
<br />
Sehr gefreut an der Konferenz hat mich die offene Atmosphäre. So habe ich nicht nur nette Gespräche mit <a href="http://www.matthias-uhl.de/" target="_blank">Matthias Uhl</a> und <a href="http://www.hs-rm.de/ez/ueber-uns/das-team/index.html" target="_blank">Gesine Torkewitz</a> geführt. Besonders gefreut hat mich auch der gemeinsame Abend mit Christian Spannagel im Cafe Barfuß. Wir haben lange über <a href="https://code.google.com/p/consize/" target="_blank">Consize</a> und die Möglichkeit der Gamifizierung in der Informatik-Ausbildung gesprochen.Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-78146366715545253092013-01-17T18:35:00.000+01:002013-01-17T18:35:26.610+01:00Der 4HWW-StarprogrammiererDer Bestseller "The 4-Hour Workweek" (4HWW) von Tim Ferriss (zu deutsch erhältlich unter dem Titel "Die 4-Stundenwoche") hat einen Trend der IT-Szene, das Outsourcing, aufgegriffen und zum persönlichen Lebensthema gemacht. Die Befreiung von einem festen Arbeitsort und festen Arbeitszeiten und die Delegation einfacher, fest umrissener oder klar definierter Aufgaben an persönliche Agenten aus Billiglohnländern, das scheint gerade Menschen mit Bezug zur IT-Szene anzuziehen. Denn in kaum einem anderen Bereich lässt sich diese Vision von einem frei bestimmten aber dennoch finanziell ertragreichen Leben so pointiert verkaufen. Die Idee von Tim Ferriss gipfelt darin, eine profitable und hochgradig selbstgesteuerte Geschäftsidee umzusetzen, die einen kontinuierlichen Einkommensstrom bei geringstem Betreuungsaufwand generiert; damit sind die im Buchtitel proklamierten 4 Stunden pro Woche gemeint.<br />
<br />
Diese Vision hat offenbar viele Menschen fasziniert und zum Kauf des Buches animiert -- auch mich hat das Buch von Tim Ferriss in den Bann gezogen und vieles überdenken lassen. Alleine die Frage, wie man die eigene tägliche Arbeit so organisiert, dass sie fast beliebig skaliert, hat einen unternehmerischen Produktivansatz, der nicht zu verachten ist! Wo die -- um es betriebswirtschaftlich auszudrücken -- Wertschöpfungsketten im (Arbeits-)Leben liegen, wo man Prozesse einführen und delegieren kann, wie man mit Verantwortung und Entscheidungsfindung umgehen möchte, wie man ein Mehr bei gleichem Aufwand bewältigen kann, welche Vision einen umtreiben, was man eigentlich will -- all das sind Fragen, bei denen einen allein die Suche nach Antworten ungemein bereichern kann.<br />
<br />
Doch es gibt auch Menschen, die mit der Idee der 4-Stunden-Arbeitswoche ernst machen. Dieser Tage geisterte ein Bericht von einem "Starprogrammierer" einer Firma durchs Netz, dessen Starkult auf den Leistungen eines Entwicklers aus China beruht. Er ließ sein Tagwerk in China erledigen und verbrachte seine Arbeitszeit mit ausgiebigen Streifzügen im World Wide Web.<br />
<br />
<blockquote class="tr_bq">
A security audit of a US critical infrastructure company last year revealed that its star developer had outsourced his own job to a Chinese subcontractor and was spending all his work time playing around on the internet.</blockquote>
<br />
Der beschriebene Fall ist in "<a href="http://www.theregister.co.uk/2013/01/16/developer_oursources_job_china/" target="_blank">The Register</a>" derart überzeichnet dargestellt (von dort stammt auch das Zitat, auch heise.de <a href="http://www.heise.de/newsticker/meldung/Malware-Verdacht-entpuppt-sich-als-privates-Outsourcing-1785201.html" target="_blank">berichtet</a> davon), dass ich mir nicht sicher bin, ob nicht gar die <a href="http://securityblog.verizonbusiness.com/2013/01/14/case-study-pro-active-log-review-might-be-a-good-idea/" target="_blank">ursprüngliche Meldung</a> von Verizon Fiktion und Non-Fiktion vermischt. Doch selbst wenn: Das Szenario ist mehr als denkbar, es ist gar nicht mal so unwahrscheinlich, dass irgendwo auf der Welt jemand genau das getan hat oder gerade tut.<br />
<br />
Natürlich ist es ein Unding, dass jemand ohne das Einverständnis seiner Firma einen Subkontraktor mit der übertragenen Arbeit beauftragt. Es sollte allerdings einer Firma zu denken geben, dass ein Mitarbeiter offenbar durch eine deutlich billigere (und vermutlich qualifiziertere) Arbeitskraft ersetzt werden kann. Vielmehr noch: Der "Starprogrammierer" selbst hätte sein Arbeitsmodell auch als Geschäftsmodell realisieren können und sich damit nicht strafbar gemacht. War da jemand zu geldgierig?<br />
<br />
Wenn Sie die Idee der 4-Stunden-Arbeitswoche fasziniert, dann machen Sie's richtig und nicht so stümperhaft wie unser Fallbeispiel mit anschließender "Dauerfreizeit" in der Haftanstalt. Ein Beispiel finden Sie in <a href="http://www.brandeins.de/" target="_blank">brand eins</a> 08/2012: "<a href="http://www.brandeins.de/magazin/nichtstun/die-freigeister.html" target="_blank">Die Freigeister</a>".<br />
<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-14157183140336944802012-12-17T11:06:00.004+01:002012-12-17T11:06:54.786+01:00Softwarebau und Storytelling<span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">Wenn Software-Entwickler über Software reden, dann übertragen sie die Welt der Klassen, Objekte, der Methoden in die Welt der Geschichten. Wir Menschen können nicht anders. Wir erzählen Geschichten, wenn wir uns erklären, was diese Klasse oder jenes Framework tut. Wir betreiben Storytelling, um uns die formale Welt eines Rechners erklärbar und beschreibbar zu machen. Wir müssen es in den Worten unserer Welt tun.</span><br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /><br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /><span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">Das Problem? Die Welt eines Rechners ist eine formale Welt, ähnlich der Mathematik. Die Welt des Storytellings, des Geschichtenerzählens könnte nicht gegensätzlicher sein: Geschichten müssen nicht logisch sein, sie müssen nicht einmal stimmig sein, solange sie unsere Phantasie nicht überstrapazieren. Praktisch jedes Buch und jeder Film ist ein Beleg dafür, wie sehr wir bereit sind, uns auf selbst abstruse Geschichten einzulassen.</span><br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /><br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /><span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">Und so versagen wir oft kläglich, unsere Stories zurück zu übertragen auf die strenge Welt eines Rechners. Die Inkonsistenzen unserer Vorstellungen straft die Software mit Fehlermeldungen ab. Das ist der Urgrund dessen, warum das Testing so notwendig und dringende Pflicht ist: Es geht um den Abgleich unserer Stories mit dem, was eine Software wirklich macht. Das hat erst einmal nichts mit Qualitätssicherung zu tun. Warum wir uns trotzdem so schwer mit dem Testen tun, ist psychologisch einfach erklärt: Wir sind auf einen Erhalt unserer Selbstbilder und Vorstellungswelten aus. Wir sind Wesen, die nur bedingt auf Empirie setzen, denen aber die Bewahrung der lieb gewordenen Meinungen, Ansichten und Stories so viel wert ist, dass wir sie ungern erschüttern lassen.</span><br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /><br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /><span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">Das Drama des Software Engineering spitzt sich noch um einen weiteren Aspekt zu: Zwar arbeitet ein Rechner nach formalen Prinzipien, aber das Prinzip basiert letztlich auf einem sehr einfachen Gesetz: Dem Gesetz des nächsten Befehls! Die nächste Anweisung im Rechner wird kommen. Und sie wird tun, was sie tun muss. Ob darüber hinaus das Tun des Rechners sinnhaft, schlüssig und logisch ist, ist nicht im geringsten gewährleistet.</span><br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /><br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /><span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">Und so prallen zwei Welten aufeinander -- die Welt des Rechners als formale, die Welt des Menschen mit seinem Storytelling als informale --, die eines eint: beide Welten erlauben das absolute Chaos. Rechner müssen außer dem Gesetz des nächsten Befehls keine Physik und keine Logik beachten, keine Plausibilitäten und keine Konsistenzen -- genauso wenig wie jede Story.</span><br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /><br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /><span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">Daraus gibt es einiges zu lernen:</span><br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /><br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /><span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">Erstens: Software Entwickler müssen es lernen, ihre informelle Ausdrucksformen in eine formale Form zu bringen -- und sie sollten diese Übertragungen stets auf Fehlannahmen etc. hin testen. Dafür gilt es psychologische Barrieren zu durchbrechen.</span><br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /><br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" /><span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">Zweitens: Da weder die Software noch die Story konsistent, plausibel und logisch sein muss, tun sich Menschen einen Gefallen, die formale Welt im Rechner auch zur Konstruktion formal-logischer Welten zu nutzen, die mehr einfordern, als nur das Gesetz des nächsten Befehls. Das kann zum Beispiel in Grenzen geschehen durch domänenspezifische Sprachen (DSLs), Kernel-Ansätze und ein konsequentes Schichtenmodell, durch den Einsatz logischer Sprachen wie Prolog etc. Oder, und das ist ein großes, sehr großes Korrektiv, die Software interagiert mit der physikalischen Welt (wie embedded Systems) und muss die dort vorzufinden Gesetze und Eigenschaften strengstens berücksichtigen.</span><br />
<span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;"><br /></span>
<span style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;">Erst wenn das gegeben ist, bauen wir Software von der Qualität mit der auch Ingenieure ihre Werke erschaffen: Ingenieure werden von den Gesetzen der Natur optimiert. Das Gesetz des nächsten Befehls allein optimiert nichts. Und unsere Stories auch nicht.</span><br style="background-color: white; font-family: Arial, sans-serif; font-size: 13px; line-height: 18px;" />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-51595163873187633082012-12-10T00:37:00.001+01:002012-12-10T00:40:40.323+01:00Brauchbare KlassendiagrammeMich überrascht immer wieder, wie sehr Klassendiagramme in einer undefinierten Grauzone schweben zwischen Modellbeschreibung einer Problemdomäne und Dokumentation der Implementierung. Das ist nicht nur ein "Problem" von Studierenden, sondern auch von Profis.<br />
<br />
Ein Klassendiagramm kann zwei Zwecken dienen, die sich an zwei Fragen festmachen lassen:<br />
<br />
Dient das Klassendiagramm zur Erfassung einer gedanklichen, logischen Zerlegung einer fachlichen Problemdomäne (Modellierung)? Oder dient es zur Dokumentation der Klassenbezüge im Code einer Implementierungssprache (Realisierung).<br />
<br />
Meist "hängt" ein Klassendiagramm genau zwischen diesen Welten und ist am Ende weder ein ausdrucksstarkes Modell (da es Ausdrucksmittel der UML ungenutzt lässt), noch eine korrekte Beschreibung der Realisierung, die in aller Regel das Klassendiagramm nicht einmal sauber umsetzt.<br />
<br />
Um es konkreter zu machen:<br />
<br />
Oftmals wird in Klassendiagrammen keine Mehrfachvererbung verwendet, obwohl sie bisweilen sehr elegante Zerlegungen und Wiederverwendungen von Modellanteilen erlaubt. Warum? Weil die Implementierungssprache (z.B. Java, C#) Mehrfachvererbung nicht kennt. -- Das sollte zwar kein Grund sein, sich in den Ausdrucksmöglichkeiten zurück zu halten, ist es aber faktisch immer wieder! Interessanterweise eben genau bei dem Thema "Mehrfachvererbung".<br />
<br />
Andererseits sehe ich sehr oft, wie die Komposition und bisweilen auch die Aggregation in Klassendiagrammen verwendet wird. Dabei bietet keine mir geläufige OO-Sprache ein Sprachkonstrukt für die Komposition/Aggregation an -- vom Hörensagen ist eventuell Eiffel die große Ausnahme. Merkwürdigerweise scheint das Fehlen von Komposition und Aggregation in der Zielsprache den wenigsten Modellierer(inne)n Sorgen zu machen, ganz im Gegensatz zur Mehrfachvererbung. Dabei habe ich -- und das ist das Kuriose daran -- (fast) noch nie Implementierungscode gesehen, der die Komposition oder Aggregation korrekt umsetzt. Die wenigsten Programmierer(innen) wissen, wie Komposition in Code geht, und auch die gängigen Modellierungswerkzeuge versagen mit ihren Code-Generatoren an dieser Stelle oftmals kläglich.<br />
<br />
Damit sind Klassendiagramme merkwürdige Artefakte: Sie sind oft halbherzige Modellbeschreibungen mit einem sehr implementierungszentrischen Blick. Und gleichzeitig versagen sie als Dokumentation des Programmcodes, der die vom Klassendiagramm geforderten Strukturbeziehungen nicht wirklich einlöst.<br />
<br />
Darum halte ich es für sinnvoll, sauber und klar in zwei Klassendiagrammen zu denken, die den Unterschied zwischen fachlichem Modell und Implementierungsdokumentation offen legen und bewusst machen, statt ein Klassendiagramm mit unklarem Bezug und fraglichem Nutzen zu erstellen. Da viele IDEs wie z.B. Eclipe immerhin einfache Klassendiagramme aus der Implementierung abzuleiten vermögen, sollte der Fokus auf zwei Punkten liegen:<br />
<br />
<ol>
<li>Gute Klassendiagramme zu entwerfen, die die Problemdomäne versuchen ausdrucksstark zu modellieren -- ohne auf die Implementierungssprache zu schielen.</li>
<li>Zu dokumentieren, wie das Klassendiagramm in die Zielsprache übertragen wird, so dass deutlich ist, wo Programmierdisziplin mit Blick auf das Modell eingefordert werden muss, und wo der Programmcode das Modell sauber umsetzt.</li>
</ol>
<br />
<div>
<br /></div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-54244559571724435322012-12-06T10:46:00.001+01:002012-12-06T10:46:46.061+01:00Denkspuren auf Google+ und FacebookSeit wenigen Wochen gibt es mich auch unter <a href="https://plus.google.com/u/0/107741052690190384796/posts" target="_blank">Google+</a> und <a href="https://www.facebook.com/dominikus.herzberg" target="_blank">Facebook</a>. Ich will verstehen lernen, wie sich die sozialen Medien anfühlen, ob sie für mich eine Bereicherung sind oder nicht, ob ich sie als wertschöpfend erlebe oder nicht. Tatsächlich hat mich der <a href="http://denkspuren.blogspot.de/2012/11/google-director-lars-lehne-in-heilbronn.html" target="_blank">Vortrag von Lars Lehne</a> motiviert, mich auf diese Welt einzulassen. Auch geht es mir darum mitzubekommen, was meine Studierenden mit diesen Welten verbinden.<br />
<br />
Eines habe ich bislang festgestellt: Facebook scheint nichts für mich zu sein, ganz anders als für meine Studierenden. Vielleicht liegt es daran, dass ich nicht wirklich einen Bedarf habe, die Kontaktpflege mit "Freunden" über Facebook zu betreiben. Google+ hingegen spricht mich an. Das Format ist niederschwellig genug, so dass ich angefangen habe, öfter etwas zu posten. Und dass ich nicht gleich mit jedem Freund sein muss, sondern nur Kontakt-Kreise aufbaue, das scheint auch mehr zu mir zu passen.<br />
<br />
Darum: Wenn Sie Lust haben, <a href="https://plus.google.com/u/0/107741052690190384796/posts" target="_blank">"besuchen" Sie mich auf Google+</a>. Auf <a href="https://www.facebook.com/dominikus.herzberg" target="_blank">meiner Facebook-Seite</a> passiert dagegen kaum etwas.<br />
<br />
<br />Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-52690796305962553802012-11-18T10:14:00.000+01:002012-11-18T10:14:04.090+01:00"if" in statisch und in dynamisch typisierten Sprachen<br />
Ein "if" realisiert eine binäre Entscheidung. Bei statisch typisierten Sprachen wird abhängig von einem Booleschen Wert im "true"-Fall entweder das eine oder im "false"-Fall das andere gemacht. Auch wenn eine dynamisch typisierte Sprache die Booleschen Werte "true" und "false" kennt, ist das Verhalten für ein "if" meist anders definiert: Für jeden beliebigen Wert außer "false" tue dieses, für den Wert "false" jenes. Manchmal heißt es sogar: Für jeden Wert außer "false" und "nil" tue dieses, sonst jenes. Wissen Sie, warum statisch und dynamisch typisierte Sprachen sich so unterschiedlich verhalten?<br />
<br />
Statisch typisierte Sprachen nutzen die Typüberprüfung vor der Ausführung des Codes, um festzustellen, ob die "if"-Entscheidung tatsächlich binär ist. Das ist durch den Booleschen Datentypen garantiert, wenn die Typüberprüfung erfolgreich ist.<br />
<br />
Dynamisch typisierte Sprachen überprüfen die Typen zur Laufzeit. Wenn bei einem "if" kein Boolescher Datenwert genutzt wird, könnte eine Ausnahme (Exception) geworfen werden -- dann würde ein "if" jedoch eine ternäre und keine binäre Entscheidung mehr treffen: Mache dieses im "true"-Fall, jenes im "false"-Fall und was gänzlich anderes, wenn ein sonstiger Wert vorliegt. Um das binäre Entscheidungsverhalten aufrecht zu erhalten, muss man ein, zwei Werte wie ein logisches "false" und alle anderen Werte wie logisch "true" interpretieren.<br />
<br />
Dass "nil" oft ebenfalls als "false" zählt, hat einen Grund: Vielfach hat "nil" bei dynamisch typisierten Sprachen die Sonderfunktion, "Nichts" als Wert zurückzugeben, wenn es keine andere Lösung gibt, statt einen Fehler per Exception zu werfen. Dynamisch typisierte Sprachen halten so die Ausführung eines Programms so lange wie möglich aufrecht, ohne durch Exceptions aus dem Ausführungsfluss geworfen zu werden.<br />
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-82545564353662092152012-11-08T19:05:00.003+01:002012-11-08T19:05:56.323+01:00Google-Director Lars Lehne in Heilbronn<br />
Eines ist Lars Lehne, Google Director bei Google Deutschland, wirklich gelungen. Sein Vortrag hat mich mitgerissen und begeistert. Dabei war es, wenn man ehrlich ist, eine einzige Werbeveranstaltung für Google. Aber das muss man Lehne wirklich lassen: Er ist sehr gut darin, sein Unternehmen "zu verkaufen". Nett, charmant und humorvoll ist er. Und er weiß, dass man ihm zuhört -- zuhören muss.<br />
<br />
Warum der Vortrag "Die digitale Zukunft ist bereits Realität" heißt, bleibt bis zum Schluss ein ungelöstes Rätsel. Egal. Die Einladung von Lars Lehne ist Grund genug für deutlich über 200 Gäste, am Mittwoch, 6. November 2012, den Saal der IHK Heilbronn-Franken zu füllen. Lehne, übrigens FH-Absolvent -- er hat BWL in Düsseldorf studiert --, ist seit 2009 bei Google. Er startet seinen Rechner, alle sehen über die Projektionswand seinen Desktop ... ich bin verblüfft: Ist das wirklich wahr?<br />
<br />
Der Google Director hat doch tatsächlich ein iBook mit Mac-OS laufen. Später wird er auf Nachfrage des Moderators das Publikum aufklären, dass viele Googler einen Apple-Rechner haben, aus Sicherheitsgründen. Apple-Rechner gelten bei Google als sicherer als Windows-Rechner. Sein Smartphone ist aber kein iPhone -- das wäre ein echter Skandal gewesen ;-) Sicher ist es ein Nexus, auf die Ferne ist es nicht klar zu erkennen.<br />
<br />
Lehne hält dankenswerter Weise keinen Powerpoint-Vortrag. Er macht einen Streifzug durch die fast 15jährige Geschichte von Google, wobei er sich weitgehend auf die Google-Suche beschränkt. Und so füllt Lehne 60 Minuten lang den Abend mit kurzen Youtube-Videos und live durchgeführten Google-Suchen. Er erzählt viele nette Anekdoten, die das Publikum begierig aufsaugt. Das alles bringt Lehne so unaufgeregt rüber, dass es die Bedeutung von Google nur unterstreicht.<br />
<br />
Ich möchte den Vortrag von Lehne nicht zusammenfassen, sondern mit ein paar Schlaglichtern ein wenig nachzeichnen, wovon er gesprochen hat.<br />
<br />
<ul>
<li>Wussten Sie, dass Google rund 35.000 Angestellte (ohne Motorola) hat? Mehr als 50% sind Ingenieure. 3.000 bis 8.000 Menschen werden pro Jahr bei Google eingestellt, bei 2 Mio. Initiativbewerbungen. (Ich hoffe, ich habe mich nicht verhört, die Zahl ist so unglaublich.) Am aussichtsreichsten ist es, wenn Sie ein Googler (ein Google-Mitarbeiter) empfiehlt.</li>
<li>Larry Page und Sergey Brin (die Gründer von Google) sind hochintelligente Schnelldenker, so Lehne -- er habe des öfteren mit ihnen Kontakt. Das Credo von Page ist: "Jedes Problem kann mit Mathematik gelöst werden." Und er leistet sich einen "Streichelzoo" (so Lehne) von 50 Ingenieuren, die tun dürfen, was immer sie wollen.</li>
<li>"Jedes Problem kann mit Mathematik gelöst werden", so zitiert Lehne Larry Page. Was ist das für ein Geek! Und nun dürfte Ihnen auch klar sein, warum man sich besser um Mathematik kümmert -- auch wenn man "nur" Informatik studiert. Ohne Mathematik keine Algorithmen für die Indizierung und Suche von Webseiten, und ohne Mathematik kein autonom fahrendes Auto. </li>
<li>Noch so eine Frage für Neugierige: Woher kommen die bunten Farben im Google-Logo? In den Anfangstagen haben sich die Googler die Racks für Ihre Server aus Legosteinen gebaut! Die bunten Farben sind eine Erinnerung an die Lego-Zeit!</li>
<li>Google verarbeitet jeden Tag 4 Milliarden Suchanfragen, Tendenz steigend. Deutschland ist daran mit 350 Millionen Anfragen beteiligt. Große Unternehmen haben Google schon dreistellige Millionenbeträge angeboten, um auf der "weißen" Seite mit der Suchmaske Werbung zu schalten. Google lehnt das ab.</li>
<li>Google verdient sein Geld mit den Clicks auf eingeblendete Anzeigen zur Suche. Verbleiben Sie mehr als 3 Sekunden auf der angebotenen Werbeseite, dann klingelt der Geldbeutel bei Google. Die Preise für einen Click reichen von 10 Cent bis 50-70€ (z.B. bei Versicherungen oder Winterreifen, wo eine sehr hohe Abschlusswahrscheinlichkeit für ein Geschäft besteht). In Deutschland verdient Google im Schnitt 12,7 Cent an Clicks auf Links von Werbeanzeigen. Lehne stellt die einfache Rechenaufgabe: Wenn es 1 Mio. solcher Clicks gibt bei 365 Tagen im Jahr, dann kommt da einiges zusammen. (Es sind übrigens etwas mehr als 46 Mio. Euro. Wenn dieser Wert für Deutschland gilt, dann sollte der weltweite Umsatz bei 500 Mio. Euro liegen. Das liegt weit unter den 9,7 Mrd. US-Dollar Reingewinn, die Google 2011 erzielt hat.)</li>
<li>"Suchanfragen sind komplex, Maschinen sind saudoof", so Lehne. Wenn er von komplexen Suchanfragen spricht, meint er aber auch die saudoofen Anfragen, die Google verstehen muss und will. Google erkennt 860 falsche Schreibweisen des Namens "Britney Spears"! Das Schlagwort, das Lehne mehrfach erwähnt, lautet "Datenaggregation". Google muss die Suche und die tatsächlich angeklickten Seiten zusammenführen, um herauszufinden, was der Nutzer will. Wenn ein Nutzer das Wetter abfragt, dann will er in 99,99% der Fälle das Wetter an seinem Standort erfahren. Auch hier aggregiert Google Daten, um Ihnen das vermutlich gewünschte Ergebnis zu liefern.</li>
<li>"Youtube ist die zweitgrößte Suchmaschine der Welt." Von diesem Blickwinkel aus, sagt Lehne, war die Aquisition von Youtube für Google nur folgerichtig. Gleichzeitig sei Youtube auch ein soziales Netz</li>
<li>Lehne: "Brauchen wir ein zweites Facebook? Nein! Das wollen wir auch gar nicht sein." Für Google hat Google+ (kurz G+) eine ganz andere Bedeutung: Das soziale Miteinander, die "Freunde" und der (mit)geteilte Inhalt gehen in die Suche mit ein und sollen helfen, die Suchergebnisse zu verbessern. Google geht davon aus, dass unser soziales Treiben in G+ eine Relevanz hat bei dem, was wir suchen. So werden Inhalte aus unserem sozialen Netzwerk mit durchsucht und angezeigt. Die Logik scheint mir nachvollziehbar: Facebook hat eine Wand im Internet aufgezogen, Facebookler(innen) bleiben unter sich. Alles außerhalb dieser Wand, will Google auffindbar machen und dabei die sozialen Aspekte berücksichtigen. Übrigens: Laut Lehne wird Google <i>niemals </i>Werbung in G+ schalten!</li>
<li>Warum heißt Google eigentlich "Google"? Der Name kommt von "googol", was eine riesengroße Zahl bezeichnet: 1E100 (einmal Zehn hoch Hundert, sprich, eine Eins mit 100 Nullen). Eine Anspielung auf die unglaublichen Datenmengen, die Google verarbeitet. Das muss den Gründern Page und Brin schon vor rund 15 Jahren bewusst gewesen sein.</li>
<li>Für Google hat die Sprachübersetzung eine immense Bedeutung: Was, wenn die Antwort meiner Frage in einer Fremdsprache vorliegt? Google vermag Webseiten sofort zu übersetzen, fast in Echtzeit. Lehne betont es immer wieder an dem Abend: Alles werde getan, um den Endbenutzern bessere Suchergebnisse zu liefern. Eine Strategie dahin ist, den Suchraum auf fremdsprachliche Webseiten zu erweitern.</li>
<li>"Wir wollen Fragen beantworten bevor sie gestellt werden." Das hat, laut Lehne, Larry Page gesagt. Was ist damit gemeint? Herr Lehne bringt ein Beispiel: In seinem Google-Kalender ist der Rückflug eingetragen samt Flughafen und Flugnummer. Nun kann Google die Daten aggregieren und eine Frage beantworten, die noch nicht gestellt ist: Google weiß dank GPS, wo man ist, aus dem Kalender wo man wann sein möchte und wann der Flug geht (da im Netz nachgeschaut). Daraus ergeben sich Fragen wie: Wie ist die Verkehrslage, um zum Flughafen zu kommen? Wie ist die Route? Geht mein Flieger pünktlich oder hat er eine Verspätung? All das nimmt Google vorweg und erinnert den Nutzer rechtzeitig: "Pass auf, Du solltest Dich innerhalb der nächsten 15 Minuten ins Auto setzen, die Verkehrslage ist kritisch. Anbei die Route samt Umleitung, der Stau kann umfahren werden. Dein Flieger geht 10 Minuten später als geplant." Das ist die Antwort auf eine Frage, bevor der Anwender sie stellt.</li>
</ul>
<br />
Interessant, nicht wahr?! Die anschließende Podiumsdiskussion war ebenfalls sehr erhellend. Ein Beitrag von Lehne aus der Diskussion: Social Media funktioniert nicht in hierarchisch geführten Unternehmen. "Soziale Führung" verlangt und fordert Transparenz ein. -- Die junge Generation wird das einfordern, so ergänzen auch die anderen Teilnehmer der Runde, da sie nicht verstehen und einsehen werden, warum Social Media innerhalb der Mauern eines Unternehmens tabu ist. Es wird die Unternehmen und die Führungsstile verändern.<br />
<div>
<br /></div>
Unknownnoreply@blogger.comtag:blogger.com,1999:blog-5556918437810598389.post-71779665165097715142012-08-27T10:03:00.000+02:002012-08-27T10:04:21.079+02:00Die etwas andere Konferenz: FrOSCon 2012Die diesjährige "Free and Open Source Software Conference" (<a href="http://www.froscon.de/" target="_blank">FrOSCon</a>) in St. Augustin (25./26. August) war eine ganz neue Erfahrung für mich: Bislang habe ich nur akademische Konferenzen rund um das Thema Software bzw. Informatik besucht. Die FrOSCon ist keine akademische Konferenz und ist, ganz im Sinne von freier und offener Software, für jeden Interessierten zugänglich. Ein symbolisch zu nennender Eintritt von 5€ (für beide Tage!) grenzt sich wohltuend ab von den horrenden Preisen bei Akademikern, 300-500€ Teilnahmegebühr sind da keine Seltenheit. Dabei steht die FrOSCon in Organisation und Programm professionellen Konferenzen in nichts nach. Ein Heer von Freiwilligen organisiert die FrOSCon. Es geht also auch ganz anders!<br />
<br />
Und noch etwas ist ganz anders. Die Vorträge auf der FrOSCon sind nützlich und pragmatisch. Das kann man leider von vielen akademischen Konferenzen nicht uneingeschränkt behaupten. Man erfährt spannende Dinge, lernt etwas und wird tatsächlich "angefixt", das eine oder andere Thema einmal anzugehen. Tim Becker und Matthias Krauß hielten am Samstag einen hinreißenden Vortrag "How to build your own computer from scratch" zu <a href="http://www.anykey0x.de/" target="_blank">Open Hardware</a>. Am liebsten hätte ich gleich mit dem Lötkolben losgelegt. Die beiden haben wunderbar erklärt, warum ein paar Widerstände und Kondensatoren die Anschlussleitungen eines Microprozessor zieren müssen. Aber auch <a href="http://uweziegenhagen.de/" target="_blank">Uwe Ziegenhagen</a> konnte mit seinem <a href="http://uweziegenhagen.de/?p=2287" target="_blank">Vortrag zum Arduino</a> begeistern. Ob ich nicht doch den Lötkolben erst einmal beiseite lege und mein Programmierglück mit dem Arduino versuche?<br />
<br />
Am Sonntag hörte ich von <a href="http://www.andresen.de/" target="_blank">Judith Andresen</a> und <a href="http://www.heikoharthun.de/" target="_blank">Heiko Harthun</a> einen sehr gelungen Vortrag zur effizienten Gestaltung von Arbeitstreffen: "<a href="http://www.andresen.de/2012/08/26/froscon-7-nur-keine-langeweile/" target="_blank">Nur keine Langeweile!</a>". Ich hätte den beiden noch stundenlang zuhören können. <a href="http://chesnok.com/" target="_blank">Selena Deckelmann</a> forderte in ihrer halbstündigen <a href="http://www.chesnok.com/daily/2012/08/26/froscon-mistakes-were-made-education-edition-talk-slides-and-notes/" target="_blank">Keynote</a> alle eindringlich auf, dass sich jeder dazu <a href="http://teachtoday.chesnok.com/" target="_blank">verpflichten möge</a>, anderen irgendetwas zum Umgang mit einem Computer beizubringen. Computer sind zu wichtig in unserem Leben geworden.<br />
<br />
Mein ursprünglicher Anlass, die FrOSCon zu besuchen, war allerdings eine einzige Person: <a href="http://wingolog.org/" target="_blank">Andy Wingo</a>. Etwa eineinhalb Wochen vor der Konferenz las ich auf seinem <a href="http://wingolog.org/archives/2012/08/15/quasiconf-2012-lisp-froscon" target="_blank">Blog</a>, den ich seit einiger Zeit verfolge, dass er auf der FrOSCon gleich drei Vorträge halten wolle: <a href="http://wingolog.org/pub/qc-2012-guile-slides.pdf" target="_blank">zu Guile</a>, einer Scheme-Implementierung, die Wingo als Hauptentwickler pflegt; <a href="http://wingolog.org/pub/qc-2012-js-slides.pdf" target="_blank">zu JavaScript</a>, an dessen Implementierung er hauptberuflich mitarbeitet; und <a href="http://wingolog.org/pub/qc-2012-delimited-continuations-slides.pdf" target="_blank">zu Delimited Continuations</a>. Alles drei Themen, die mich sehr interessieren. Und ich wurde nicht enttäuscht. Wingo hat einen lockeren und sehr netten Vortragsstil, weiß eine Menge zu erzählen, und hat Breite und Tiefe anzubieten in seinem Wissen, etwas, was man selbst auf akademischen Konferenzen selten bekommt. Kurzum, ich bin glücklich mit vielen Stimuli abgefüllt nach Hause gefahren. Die <a href="http://community.schemewiki.org/?composable-continuations-tutorial" target="_blank">Delimited Continuations</a> haben es mir besonders angetan.<br />
<br />
Was mich am meisten überrascht hat, ist das Altersspektrum. Anfangs glaubte ich noch, ich wäre auf einer Konferenz etwas schräger Geeks und Nerds gelandet in der Altersgruppe der 20-30-Jährigen. Dieser Eindruck stammte aus dem ersten Vortrag, den ich im Lisp-Track der FrOSCon hörte. Meinen Eindruck musste ich spätestens beim Arduino-Vortrag korrigieren. Plötzlich saß da auffällig gut vertreten meine Altersgruppe der 40-50-Jährigen, auch waren noch deutlich ältere Menschen dabei. Man interessierte sich durch alle Altersgruppen hinweg für diese kleinen Mikroprozessoren. Faszinierend! Der Vortrag zur Gestaltung von Arbeitstreffen war wiederum von den 30-40-Jährigen dominiert. Offenbar vereint die FrOSCon viele Menschen unterschiedlichen Alters und unterschiedlicher Hintergründe beim gemeinsamen Thema: Allen geht es um freie und offene Software -- und den Durst um frei vermitteltes Wissen.<br />
<br />
Die FrOSCon hat noch einen besonderen Aspekt, den ich noch nie auf einer akademischen Konferenz gesehen habe: ein <a href="http://kids.froscon.de/" target="_blank">Kinderprogramm</a>! Kinder der 5.-10. Schulklassen konnten Minecraft spielen, Vorträge zu Linux und zur Programmierung in Python hören, Geo-Caching über den Campus machen und noch einiges mehr. Vorbildlich!<br />
<br />
Ich wünschte, es gäbe mehr solcher Konferenzen!<br />
<br />Unknownnoreply@blogger.com