Retrieved from "http://www.julian-fietkau.de/blog/bachelorarbeit_4"

Bachelorarbeit-Bericht Nr. 4

2010-08-10 22:08:00

keywords: bachelor thesis, Teachlets

Diese Woche möchte ich den ersten Versuch unternehmen, eine aktualisierte Teachlet-Definition aufzustellen. Das Endergebnis des heutigen Eintrags soll der erste Versuch einer aktualisierten Definition sein, was auch bedeutet, dass ich um dein Feedback bitte (jedenfalls sofern du Teachlet-Erfahrung hast oder dich aus anderen Gründen angesprochen fühlst).

Aber vorher noch mal die "historische" Definition:

Ein Teachlet ist eine interaktive Lehreinheit, in der ein lauffähiges Stück Software um eine klar definierte Funktionalität erweitert werden soll, um ein Entwurfsmuster oder ein Programmiersprachkonzept zu veranschaulichen. Ein Moderator motiviert mit Hilfe eines Rechners und eines Beamers das Ausgangssystem sowie die vorzunehmende Erweiterung und lässt sich dann von den Teilnehmern anleiten, die dazu notwendigen Änderungen am Quelltext vorzunehmen.

Aus den Ergebnissen von letzter Woche haben wir die Liste der zentralen Aspekte für Teachlets (statisch) und Teachlet-Einheiten (dynamisch).

Teachlet

  • Aufgabe
  • Lernziel
  • Lösungsraum
  • Ausgangssystem
  • Implementation
  • Architektur
  • Zielsystem
  • Dokumentation

Teachlet-Einheit

  • Rechner
  • Standard-Ablauf
  • Gemeinsame Sicht (z.B. Beamer)
  • Moderator
  • Teilnehmer (aktive, >= 1)
  • Zwischenergebnisse festhalten
  • Entwurfsdiskussion
  • Interaktion

Ich fange einfach mal so an, dass ich die bisherige Definition Satz für Satz versuche zu aktualisieren und dabei die Begriffen im Hinterkopf zu haben. Auf zum ersten Satz:

Ein Teachlet ist eine interaktive Lehreinheit, in der ein lauffähiges Stück Software um eine klar definierte Funktionalität erweitert werden soll, um ein Entwurfsmuster oder ein Programmiersprachkonzept zu veranschaulichen.

Was passt an diesem Satz nicht?

Ich würde zunächst die Interaktivität gerne mehr unterstreichen, da Teachlets unstreitbar in hohem Maße interaktiv sind und das eins der definierenden Elemente ist. Wenn einfach nur "interaktiv" da steht, gibt das einen großen Interpretationsspielraum (manch einer würde evtl. Vorlesungen als interaktiv beschreiben, wenn Fragen gestellt werden können).

Der Begriff der lauffähigen Software ist in dieser Form sinnvoll.

Statt der Erweiterung der Funktionalität würde ich mir eine größere Flexibilität für die Aufgabenstellung wünschen. Eine Erweiterung der Funktionalität ist zwar der Normalfall, sollte jedoch nicht vorgeschrieben werden (denkbar wäre etwa auch ein großes Refactoring).

Die Formulierung "ein Entwurfsmuster oder ein Programmiersprachkonzept" ist ebenfalls recht restriktiv und sollte im Hinblick auf andere mögliche Lernziele (bestimmte Algorithmen, Refactorings o.Ä.) verallgemeinert werden.

Mein Versuch eines neuen ersten Satzes, den ich dabei jedoch aus Stilgründen zweiteile:

Ein Teachlet ist eine höchst interaktive Lehreinheit, in der ein lauffähiges Stück Software so verändert wird, dass es eine bestimmte Aufgabenstellung erfüllt. Diese ist so gewählt, dass dadurch ein ganz bestimmtes Lernziel erreicht werden kann.

Kommen wir zum zweiten Satz:

Ein Moderator motiviert mit Hilfe eines Rechners und eines Beamers das Ausgangssystem sowie die vorzunehmende Erweiterung und lässt sich dann von den Teilnehmern anleiten, die dazu notwendigen Änderungen am Quelltext vorzunehmen.

Gut ist hier, dass der Moderator und die Teilnehmer erwähnt werden. Weniger gut ist die Einschränkung auf Rechner und Beamer, die (so der Konsens der Teachlet-Runde) besser auf eine "gemeinsame Sicht" verallgemeinert werden sollte. So wären etwa auch Teachlets denkbar, bei denen sich Teilnehmer und Moderator nicht im selben physischen Raum aufhalten (z.B. Teleconferencing, Teachlets per Internet).

Das Ausgangssystem zu erwähnen ist ebenfalls sinnvoll. Statt einer Erweiterung sollte im o.g. Sinne eher von einer Veränderung gesprochen werden.

Letztlich ist zu diskutieren, inwieweit Teachlets auf die Veränderung von Quelltext festgelegt sein sollten, wo es doch auch z.B. visuelle Programmierung und sicher noch weitere Paradigmen der Softwareentwicklung gibt, in denen der Begriff des Quelltextes zugunsten anderer Implementationsmechanismen wegfällt.

Mal sehen, was wir daraus machen können:

Ein Moderator motiviert das Ausgangssystem sowie die vorzunehmende Veränderung in einer mit den Teilnehmern gemeinsamen Sicht (etwa am Beamer) und lässt sich dann von den Teilnehmern anleiten, die dazu notwendigen Änderungen an der Software vorzunehmen.

Zeit für eine kleine Bestandsaufnahme. Die folgenden Begriffe aus den obigen Listen sind noch nicht untergebracht: Lösungsraum, Implementation, Architektur, Zielsystem, Dokumentation; Rechner, Standard-Ablauf, Zwischenergebnisse festhalten, Entwurfsdiskussion.

Zwei davon würde ich gerne begründet ausklammern: Rechner weil das Vorhandensein eines Rechners durch die Veränderung lauffähiger Software implizit ist, und Standard-Ablauf weil dieser gerade durch die Definition dargestellt werden soll.

Um ein paar der restlichen Aspekte einzubringen, versuche ich jetzt, ein paar neue Sätze zu formulieren:

Für die Lösung der Aufgabe soll ein Lösungsraum mit mehreren möglichen Varianten hinsichtlich der Architektur existieren, um eine Entwurfsdiskussion zu ermöglichen. Der Moderator hat dabei die Aufgabe, die Diskussion zu lenken und Zwischenergebnisse festzuhalten. Nach der gemeinsamen Implementierungsphase ist das Ergebnis die veränderte Software.

Dann ist wohl noch etwas für das Drumherum nötig:

Zum Teachlet gehört weiterhin eine Dokumentation, die für die Vorbereitung relevante Unterlagen wie eine detaillierte Choreographie oder ein ausimplementiertes Zielsystem enthält.

Ich konnte nicht widerstehen, die Choreographie mit aufzunehmen, wenn wir schon das Zielsystem drin haben wollen. Trotzdem zweifle ich noch, ob dieser Satz mit zur elementaren Definition gehören sollte.

Hier ist also der Entwurf 1 der aktualisierten Teachlet-Definition:

Ein Teachlet ist eine höchst interaktive Lehreinheit, in der ein lauffähiges Stück Software so verändert wird, dass es eine bestimmte Aufgabenstellung erfüllt. Diese ist so gewählt, dass dadurch ein ganz bestimmtes Lernziel erreicht werden kann. Ein Moderator motiviert das Ausgangssystem sowie die vorzunehmende Veränderung in einer mit den Teilnehmern gemeinsamen Sicht (etwa am Beamer) und lässt sich dann von den Teilnehmern anleiten, die dazu notwendigen Änderungen an der Software vorzunehmen. Für die Lösung der Aufgabe soll ein Lösungsraum mit mehreren möglichen Varianten hinsichtlich der Architektur existieren, um eine Entwurfsdiskussion zu ermöglichen. Der Moderator hat dabei die Aufgabe, die Diskussion zu lenken und Zwischenergebnisse festzuhalten. Nach der gemeinsamen Implementierungsphase ist das Ergebnis die veränderte Software. Zum Teachlet gehört weiterhin eine Dokumentation, die für die Vorbereitung relevante Unterlagen wie eine detaillierte Choreographie oder ein ausimplementiertes Zielsystem enthält.

Puh, das ist etwas länger ausgefallen als die alte Definition, deckt allerdings auch deutlich mehr ab. Ich hoffe, dass der Ablauf klarer herausgestellt ist.

Ich wiederhole noch mal meine Bitte um Feedback zu diesem Entwurf. Idealerweise soll diese Definition mindestens so lange halten wie die vorherige, daher würde ich mögliche Probleme gerne jetzt schon identifizieren.

Wenn rechtzeitig etwas Feedback kommt, werde ich es bis nächste Woche in den Entwurf einpflegen. Ansonsten werde ich mir bis dahin mal ein paar Gedanken um den Leitfaden für meine Interviews machen. Bis dahin!

Comments

Please DO NOT enter anything into the next three fields, they are used as bait for automated entries. If any of the following fields is not left empty, the comment will not be saved!




End of protection - from here on, you can safely enter data.

Comments may be formatted using Markdown.

emphasis *emphasis* or _emphasis_
strong emphasis **strong emphasis** or __strong emphasis__
new paragraph insert an empty line

quote

> quote
  • unordered
  • list
* unordered
* list
  1. ordered
  2. list
1. ordered
2. list
weblink [weblink](http://www.julian-fietkau.de)
Note: You can only post weblinks if you are authenticated via OpenID.
More and longer examples are available at Daring Fireball.
Axel Schmolitzky
Axel Schmolitzky
2010-08-16 15:04:05

Hallo Julian,

Deine Systematik gefällt mir gut, und auch das Ergebnis lässt sich sehen. Ich versuche mal, die wenigen Stellen, die ich verbesserungsfähig finde, zu überarbeiten. Meine Änderungen habe ich in Klammern gesetzt.

Ein Teachlet ist eine (sehr/stark) interaktive Lehreinheit, in der ein lauffähiges Stück Software so verändert wird, dass es eine (klar definierte) Aufgabenstellung erfüllt. Diese ist so gewählt, dass (durch die Veränderung) ein (klar definiertes) Lernziel erreicht werden kann. Ein Moderator motiviert das Ausgangssystem sowie die vorzunehmende Veränderung in einer mit den Teilnehmern gemeinsamen Sicht (etwa am Beamer) und lässt sich dann von den Teilnehmern anleiten, die dazu notwendigen (Änderungsschritte) an der Software vorzunehmen. Für die Lösung der Aufgabe soll ein Lösungsraum mit mehreren möglichen Varianten hinsichtlich der Architektur existieren, um eine Entwurfsdiskussion zu ermöglichen. Der Moderator hat dabei die Aufgabe, die Diskussion zu lenken und Zwischenergebnisse festzuhalten. Nach der gemeinsamen Implementierungsphase ist das Ergebnis (ein mögliches Zielsystem). (Zu einem) Teachlet gehört weiterhin eine Dokumentation, die für die Vorbereitung relevante Unterlagen wie eine detaillierte Choreographie (und) ein ausimplementiertes Zielsystem enthält.

Soweit mein Überarbeitungsvorschlag.

Janina
Janina
2010-08-18 09:29:58

Hallo Julian,

ich finde deine Neudefinition sehr gut und den ganzen Bericht ebenfalls sehr schön zu lesen. Mir ist, wie ja Axel, vor allem dieser Satz aufgefallen: "Nach der gemeinsamen Implementierungsphase ist das Ergebnis die veränderte Software" Ich würde es ähnlich wie Axel formulieren "Nach der gemeinsamen Implementierungsphase ist das Ergebnis eine der möglichen Varianten des Zielsystems" Was mir noch bei den Teachlets aufgefallen ist: Es ist sehr wichtig am Ende der Diskussionsphase und vor Beginn der Implementation sich auf eines der diskutierten Varianten wenigstens grob zu einigen, sonst kommt es auch während der Implementationsphase wieder zu starken Diskussionen, was wiederrum den Zeitplan meist stark durcheinander wirft. Dies ist vor allem wichtig wenn die verschiedenen Möglichkeiten sich sehr stark voneinander unterscheiden. Soweit was mir noch aufgefallen ist :)

Grüße!

Julian F.
Julian F. (via julian-fietkau.de)
2010-08-19 00:14:37

Danke für eure Anmerkungen! Soweit ich das erkennen kann, sind das ja weitgehend Stilfragen und Details, ich sehe auch gerade nichts, wogegen ich widersprechen müsste. Demnächst gibt's dann ein Update der Definition.