Lieber Rüdeger Baumann,
Den Übergang zur Smalltalk-Programmierung mit dem Fehlen der Wiederholungskachel in Squeak zu motivieren, halte ich für wenig zwingend. Die naheliegende Reaktion aus meiner Sicht wäre die, dann eben Etoys zu benutzen, wie generell eher Konsens sein dürfte, daß man zum Kachelprogrammieren besser ein Etoys-Image benutzt.
Ich habe auch einmal mit Etoys (damals noch Squeak) begonnen, weil mir der Wechsel zur Textansicht bei den Skripten gefallen hat und ich an einen ähnlichen Weg dachte, wie der im Buch beschrieben wird. Aber das erste, was mich daran gestört hat, waren dann diese aussagekräfitgen Parameternamen der Form 't1', das zweite die eingeschränkten Editormöglichkeiten der Skriptfenster.
Die eigentliche Einschränkung, die ich beim Kachelprogrammieren empfinde, ist das Fehlen von Methoden mit mehreren Parametern. Das kann man zwar auch schaffen, wenn man einen Parameter vom Typ 'player', also Darsteller benutzt und dessen Attribute im Skript auswertet, aber das ist eher trickreich als naheliegend.
In meinen 10. Klassen taucht der Smalltalk-Quelltext aber meist aus ganz anderen Gründen auf: Schüler programmieren etwas, bei dem sie sich (und manchmal auch erst einmal ich mich) wundern, warum das nicht (immer) klappt. Mit den Kacheln sieht man das nämlich nicht immer.
Konkretes Szenario: Die Schüler programmieren bei mir ein Tausammler-Spiel, in dem ein Käfer Tautropfen einsammeln muß. Entscheidend ist hier, daß es mehrere Tautropfen gibt, die alle Geschwister sind.
Lösung 1: Die Tropfen warten auf den Käfer.
Lösung 2: Der Käfer sucht die Tropfen.
Anschließend läuft der Tropfen dem Käfer hinterher oder der Käfer transportiert ihn - das ist egal, wie herum.
Die Schüler programmieren das zuerst für einen Tropfen und erweitern es anschließend auf mehrere Tropfen. Was üblicherweise passiert, ist folgendes:
Die Schüler mit Lösung 1 haben keine Probleme. Zumindest ein Teil der Schüler mit Lösung 2 beklagt sich irgendwann, dass der Käfer immer denselben Tropfen mitnimmt, egal welchen er gerade überlappt.
Die Kachelskripte sehen praktisch gleich aus:
"Käfer überlappt Tropfen" oder umgekehrt. Wer bei den Kacheln wen überlappt ist egal. Einziger Unterschied: Bei Lösung 1 ist das ein Skript des Tropfens, bei Lösung 2 ein Skript des Käfers.
Verschieden werden die beiden Skripte aber, sobald man in die Textversion blickt: Da steht als einmal "self überlappt Käfer" und einmal "self überlappt TropfenSoundSo". Und daran läßt sich auch erklären, warum Lösung 2 ein Problem hat und wie man das mit "überlappt irgendein" noch lösen kann. Zugleich sehen die Schüler hier eine Stelle, an der die Kacheln einen echten Schwachpunkt haben, weil sie etwas verbergen - es gibt kein 'self'.
Anschließend wechsle ich aber direkt zum Programmieren mit Workspace und Browser, weil die Syntaxvervollständigung einfach angenehm ist, und ich ohnehin dorthin will/muß.
Markus