[Squeak-ev] Squeak im Unterricht

Markus Gaelli gaelli at emergent.de
Die Jun 1 09:44:22 UTC 2004


Hallo Klaus,
>
> Ich bräuchte, um's zu verstehen, eine grobe Liste der Schritte, die 
> man macht, um eine solche Aufgabe _mit EToys_ zu lösen.
>
> Beispiel auf die klassische Weise (schnell und naiv skizziert):
>
>    1. Vorüberlegungen:
>       1. Fibonaccis sind eine Folge von ganzen Zahlen.
>       2. Man benötigt zu Berechnen der Zahlen zwei "Zustände": die 
> aktuelle Zahl und die vorige Zahl.
Die sind die gleichen.
>    2. Programmieren -> ClassBrowser
>       1. Ich richte also eine Klasse ein mit zwei Instanzvariablen 
> ('akt' und 'letzt'), die von #new auf '1' gesetzt werden.
>       2. Es gibt eine Methode 'weiter', die letztendlich 
> akt:=letzt+akt und  letzt := akt ausführt (aber richtig!)
>       3. Es gibt eine Methode 'wert', die mir 'akt' zurückliefert.

Die Idee ist, _drei_ Texte in ein "FibonacciFeld" zu werfen, diese mit 
Zahlen zu bestücken, und dann in jeder Runde den dritten in den 
zweiten, den zweiten in den ersten zu kopieren, und in den dritten die 
Summe vom ersten und zweiten zu packen. Also ganz analog Deinem 
Vorgehen, nur dass ich direkt Objekte nehme und zwar gleich drei davon.

Aus Supplies (Esther, schimpf bitte nicht mit mir,  hab grad ein 
englisches Squeak da... ;-) ein Playfield und die Texte holen und auf 
den Bildschirm werfen (Texte in Playfield).
Benennen ("Fibonacci1" oder so), eine "1" eintragen, das Teil zweimal 
kopieren (grünes Halo ist in dem Fall ok, da kein Verhalten geteilt 
wird).
Dann das FibonacciFeld "verantwortlich" machen, das heißt von ihm 
mittels des Auges einen "Viewer" öffnen, ein neues Skript erzeugen, und 
aus den Viewern der Fib1 bis Fib3 untenstehendes zusammenstöpseln. 
(Reglerwert findet sich in der "Text"-Kategorie der Text-Morphs und 
dient dem numerischen Setzen und Lesen von Werten.
Ein Trick ist im _ersten_ Feld am Anfang ein Leerzeichen zu setzen, das 
wird ja ohnehin gleich überschrieben.
-------------- nächster Teil --------------
Übersprungener Inhalt vom Typ multipart/appledouble-------------- nächster Teil --------------

Viele Grüße,

Markus



>    3. Testen
>       - In einem Transcript probiere ich diesen Entwurf aus.
>
> Squeak erlaubt es mir, den Zyklus schnell und ohne überflüssigen 
> Ballast auch wiederholt zu durchlaufen.
>
> Erweiterungen der Aufgabe, Thema: OOP-Programmierpraxis:
>
>    * Schreibe eine Methode 'wert: n', die die n-te Fibonacci-Zahl 
> erzeugt.
>    * Erweitere diese Aufgabe so, dass beliebige arithmetische und 
> geometrische Folgen modelliert werden können. Entwerfe die 
> Klassenhierarchie.
>
> Erweiterung der Aufgabe, Thema: GUI
>
>    * Schreibe einen Button-Morph, der die aktuelle Fibonacci-Zahl als 
> Beschriftung trägt und bei Betätigung 'weiter' aufruft.
>
> Erweiterung in Richtung Programmier-Paradigmen:
>    * Unendliche Folgen in imperativen und _funktionalen_ Sprachen.
>
> kf
>