Squeak-EToys mit meinen Kindern - Woche 3

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Squeak-EToys mit meinen Kindern - Woche 3

Harald Mueller-2
Squeak-EToys mit meinen Kindern - Woche 3

[Erstes Mal gesendet am 2.10.2004]

Hallo -

Weiter geht's bei uns mit Squeak!

Einmal eine Generalbemerkung: Je länger ich Squeak-Etoys kenne, desto großartiger finde ich es - auch wenn ich viele Sachen bemängle: Das Ding ist einfach wirklich gut. Ich sehe von meinem geistigen Auge fast problemlose Wege von Squeak

* zur Welt des Software-Engineering (inklusive der Probleme)
* zur Welt der "angewandten Informatik": Zu verstehen, wie man Computer *für* andere Problembereiche einsetzt (als Techniker, Physiker, aber auch Designer, ...)

* und sogar zur allgemeinen Technik: Wie sich eine elektronische Schaltung oder eine abgedeckte Mechanik (verborgen, aber messbar) "dynamisch" verhält, erforscht und durchdenkt man nicht anders als bei einem Programm.

Ein etwas steinigerer Weg ist der zur Science: Der Grund ist, dass die "intuitive Dynamik" von Squeak-EToys (wie die "nicht-intuitive Dynamik" von Software überhaupt) mit der "Fixpunkt-Statik" der Mathematik und Physik enorm schwer zu verbinden ist (wer einmal die Zusammenführung von der ebenfalls "intuitiven" Turingmaschinen und präziser, formaler Mathematik - etwa im Haltetheorem - gemeistert hat, weiß, wovon ich rede). Aber das scheint ein Grundsatzproblem zu sein - und es ist fraglich, ob wir mit dynamischen Systemen hier *überhaupt* so leicht Verständnis schaffen: Bei der klassischen Mathematik gibt es eigentlich kein "Verhalten" eines "Systems" - damit ist der Sprung hier schon sehr groß ....


Nun zu Aktuellem: Die erste Hausaufgabe war (kurz zusammengefasst - steht auf einem anderen Rechner):

"Zeichne wieder ein Auto ... und eine Straße ...
Und auch ein Lenkrad, mit dem Du das Auto lenken kannst. Wenn sich das Lenkrad um 10 Grad dreht, soll sich das Auto um 1 Grad drehen - dann kannst Du leichter lenken. Wenn Du willst, kannst Du nun ein paarmal die Straße entlangfahren ...

Mache nun einen Notstopp: Wenn das Auto von der Straße herunterfährt, soll es sofort stoppen. Es gibt sicher mehrere Wege, wie man das erreichen kann; wenn eine Möglichkeit nicht funktioniert, diskutiert miteinander - vielleicht fallen Euch weitere Möglichkeiten ein."

- Lukas hat die Aufgabe während der Woche gelöst.
- Katrin hat gemeinsam mit mir und unter zu viel Unterbrechungen durch Lukas gestern eine Lösung entwickelt - wobei die Unterbrechungen "tödlich fürs Denken" sind: Da muss ich mir noch etwas einfallen lassen, wie die kleine Schwester sicher die Chance hat, unabhängig und in ihrem Tempo und auf ihre Art über eine Lösung nachzudenken ...


Ein paar Dinge, die mir aufgefallen sind - weil sie alle (auch) mit fehlenden (? - oder von uns nicht gefundenen) Features von EToys zu tun haben, wieder einmal weiternummeriert:

11. Ich muss ein wenig ausholen:
Lukas ist ein "Techniker", ein "Lego-Getriebe-Bauer", ein "Wie funktioniert das?-Frager" - kurz, er denkt so wie ich. Damit fällt er in die Kategorie der "kids who were like us" (siehe <A HREF="www.squeakalpha.org:8080/super/310">www.squeakalpha.org:8080/super/310, im Abschnitt "Our Own Work"). Aber wie Alan Kay schreibt, ist das eigentlich der "uninteressante" Teil der Kinder in Bezug auf das Lernen von "Science". Außerdem ist er ein versierter Computerspieler und kann daher z.B. den Mauszeiger ohne Probleme auf die kleinen Dreiecke und schmale "Handles" setzen.

Katrin dagegen ist ein literarischer Mensch: Sie kann seit ihrem vierten Lebensjahr lesen, liest (man könnte fast sagen: "verbraucht") pro Tag bis zu einigen 100 Seiten, schreibt lange Aufsätze und spricht (und denkt wohl auch) "nach der Schrift" (im Gegensatz zu uns Eltern, die eine österreichische Umgangssprache "pflegen"). Außerdem ist sie fast 2 Jahre jünger als Lukas und nicht "computer-versiert"; wenn schon, dann liebt sie die Tastatur, aber nicht so sehr die Maus.

Erstaunlicher (für mich! - und wohl für andere "Techniker" - aber sicher nicht für sie ...) Effekt bei der Hausaufgabe:

An der Stelle, wo man die Richtung des Lenkrad an den Drehwinkel des Autos ("... drehe Dich um ...") koppeln muss, schreibt(!!) sie ohne einen Fehler in das Feld nach "um" den Text(!) "Lenkrads Richtung". Von einer idealen Umgebung würde ich mir tatsächlich erwarten, dass das genau dasselbe bewirkt wie die "drag and drop"-Methode - aber EToys reagiert darauf leider mit einer schrecklichen Fehlermeldung ...

Ich selber wäre nie auf die Idee mit dem "langwierigen Tippen" gekommen - aber für jemand, für den Sprache ein "Primärmedium" ist (und nicht "die Struktur dahinter"), ist dies wohl ein viel "direkterer" Zugang  als "direct(!) manipulation".

Quintessenzen für mich:
 - erstaunlich und wichtig!, wie "anders" jemand denken kann ...
 - ... und wie daher vorsichtig und offen und ja nicht "vorgebend" und "voreingestellt" sein darf, wenn man jemandem erklärt, wie man ein Ziel erreicht ...

 - ... und zuletzt, dass ich von EToys(2) erwarten würde, dass es diesen Zugang auch unterstützt :-) (siehe auch unten 13.)


12.
Lukas' erste Lösung hat sich aus der "Fahrautomatik" entwickelt: "gehe vorwärts um" in einen Test legen, der durch einen "Sensor" (sieht Farbe) gesteuert wird.

Mit Katrin hat sich eine andere Lösung ergeben: Sie hat gesagt "... dann soll das da [das Skript] stoppen". Darauf habe ich vorgeschlagen, unter den Skripts ein "Stopp-Skript" zu suchen - und tatsächlich, da gibt es unter "scripting" (noch nicht übersetzt) ein "stoppe Script <emptyScript>". Ein Stück darunter gibt's dann sogar ein "stop all"! - hört sich doch gut an ...

Also: Dieses Skript rausziehen, Test dazu (hat länger gedauert ... übergehe ich hier), und ausprobieren: Geht nicht ?!?!?! Ich habe dann vorgeschlagen (obwohl ich nicht steuern will ...), doch hinten bei "emptyScript" den Namen des "vorwärts"-Skripts auszuwählen - dann hat's funktioniert!

Aber: "stoppe Skript <Skriptname>" ist mir klar. Aber was ist dann "stop all <Skriptname>"? Und wieso gibt es kein "stop all" ohne Parameter (was noch immer nur alle Skripts *dieses* Objekts stoppen würde).

[Eine Idee von Lukas habe ich erst jetzt gerade zusammengebracht - und damit wieder etwas über die "Orthogonalität" von EToys gelernt: Wenn das Auto über den Straßenrand fährt, sollte "der Stop-Knopf gedrückt werden!". Ok - da alles Skripts hat, muss der Stopknopf sicher auch eines haben, wo man ihn "drücken" kann. Problem: Ich kann den Stopknopf nicht auswählen :-( :-(

... durch Zufall drücke ich mehrmals auf Alt-Maus - und sehe plötzlich, wie das Viereck der Handles seine Größe ändert: Nach 4 oder 5 Versuchen bin ich sicher, dass man damit die Handles der geschachtelten Objekte "durchsteppen" kann! - und jetzt ist es leicht: Nach ein wenig Suche finde ich "Stop button" "feuer", hänge das an den Sensor der Autos - und schon stoppt alles: Ein richtiger "Notstopp"!]

13.
Namensgebung: Katrin - verständlich, oder? - denkt sich für jedes Objekt, das sie gezeichnet hat, einen Namen aus - nicht einfach eine Bezeichnung; ein "Name" - fast ein "Kosename": Also ein Wort, das sich vollständig mit dem Bezeichneten "verbindet". So hießen ihre zwei ersten Autos "Blauto" und "Rosauto". Bei der Hausaufgabe nannte sie das Lenkrad "Lenkrad für Hausaufgabe" - für sie schon "nur ein schnell hingeschriebener Name - da muss ich noch nachdenken, wie ich es richtig nennen will"

[Nebenbei: "Lenkrad für Hausaufgabe" ... was die Implementierung für ihr Vorgehen mit dem direkt Eintippen "Lenkrads Richtung" - also einer Abkürzung des Objektnamen - noch etwas aufwendiger machen würde ...)].

Lukas - "Techniker" (ok - ich schreibe hier meinen Kindern schon "Stereotypen" zu - soll man eigentlich nicht!) lässt die Namen "Zeichnung", "Zeichnung1" usw. hemmungslos stehen; erst wenn er mit den Skripts durcheinanderkommt, wählt er sich kürzere Namen - und dann "asd", "a" usw.: Eine alte Programmiererkrankheit, die auch bei Erwachsenen schwer wegzukriegen ist (die -zig Variablen mit Namen wie "temp1", "helper2" usw. ....).

Vorschlag für Etoys(2): Wenn man bei einem neuen Objekt auf Keep drückt, wird man nach einem Namen direkt gefragt - *ohne* Vorgabe! Natürlich kann man noch immer "asd" eingeben ... ...

14. Platz: Schon für eine Straße, 4 Skripts, einen Betrachter und die "Ampel" (stop/step/go) haben wir zuwenig Platz! Mit Herumschieben geht es ganz gut - aber da ist der Nachteil, dass das angeklickte Ding immer in den Vordergrund springt - die Straße verdeckt dann die Autos und Skripts. (nicht durchdachte) Ideen (- vielleicht gibt es das ja schon irgendwie/wo?):

* Man kann Dingen sagen "immer im Hintergrund bleiben" (z.B. die Straße).
* Man kann eine Gruppe von Dingen "minimieren" - dann stehen sie um den Faktor 3..10 verkleinert in der Ecke (genauso wie die kleinen Grafiken an einem Betrachter).

* Man kann mehrere "Bildschirme" haben und hin- und herspringen (unter X-Systemen gibt's das schon lange) - dann kann man sich die Skripts woanders hinlegen. Nachteil: Man sieht nicht mehr alles ... ... ...

So - das war's.

Regards
Harald


Reply | Threaded
Open this post in threaded view
|

Re: Squeak-EToys mit meinen Kindern - Woche 3

Stefan Schmiedl
Harald M. Müller (2004-10-22 09:49):

>
> - Lukas hat die Aufgabe während der Woche gelöst.
> - Katrin hat gemeinsam mit mir und unter zu viel Unterbrechungen durch
> Lukas gestern eine Lösung entwickelt - wobei die Unterbrechungen
> "tödlich fürs Denken" sind: Da muss ich mir noch etwas einfallen lassen,
> wie die kleine Schwester sicher die Chance hat, unabhängig und in ihrem
> Tempo und auf ihre Art über eine Lösung nachzudenken ...

Unbedingt. Und zwar schnell, bevor sich Katrin daran gewöhnt und
vielleicht die Lust verliert. Die Kids brauchen ein eigenes Notebook :-)

> 11. Ich muss ein wenig ausholen:
> Lukas ist ein "Techniker", ein "Lego-Getriebe-Bauer", ein "Wie
> funktioniert das?-Frager" - kurz, er denkt so wie ich. Damit fällt er in
> die Kategorie der "kids who were like us" (siehe
> www.squeakalpha.org:8080/super/310, im Abschnitt "Our Own Work"). Aber
> wie Alan Kay schreibt, ist das eigentlich der "uninteressante" Teil der
> Kinder in Bezug auf das Lernen von "Science". Außerdem ist er ein
> versierter Computerspieler und kann daher z.B. den Mauszeiger ohne
> Probleme auf die kleinen Dreiecke und schmale "Handles" setzen.

Hehe ... einer von denen, die ihren Weg auch trotz (nicht wegen!)
aller Bemühungen machen werden :-)

> Katrin dagegen ist ein literarischer Mensch: Sie kann seit ihrem vierten
> Lebensjahr lesen, liest (man könnte fast sagen: "verbraucht") pro Tag
> bis zu einigen 100 Seiten, schreibt lange Aufsätze und spricht (und
> denkt wohl auch) "nach der Schrift" (im Gegensatz zu uns Eltern, die
> eine österreichische Umgangssprache "pflegen"). Außerdem ist sie fast 2
> Jahre jünger als Lukas und nicht "computer-versiert"; wenn schon, dann
> liebt sie die Tastatur, aber nicht so sehr die Maus.

Bring ihr vi bei, und lass sie viel an einer Linux-Konsole spielen 8-}

> An der Stelle, wo man die Richtung des Lenkrad an den Drehwinkel des
> Autos ("... drehe Dich um ...") koppeln muss, schreibt(!!) sie ohne
> einen Fehler in das Feld nach "um" den Text(!) "Lenkrads Richtung". Von
> einer idealen Umgebung würde ich mir tatsächlich erwarten, dass das
> genau dasselbe bewirkt wie die "drag and drop"-Methode - aber EToys
> reagiert darauf leider mit einer schrecklichen Fehlermeldung ...

Oh je ... ich kann's dir nachfühlen, ich hasse es auch, wenn ich sieben
Mal klicken muss, statt drei Buchstaben zu schreiben.

> Quintessenzen für mich:
>  - erstaunlich und wichtig!, wie "anders" jemand denken kann ...
>  - ... und wie daher vorsichtig und offen und ja nicht "vorgebend" und
> "voreingestellt" sein darf, wenn man jemandem erklärt, wie man ein Ziel
> erreicht ...

Und genau an der Stelle bauen die meisten Lehrpläne Mist, aber darüber
will ich mich jetzt nicht schon wieder auslassen.

>  - ... und zuletzt, dass ich von EToys(2) erwarten würde, dass es diesen
> Zugang auch unterstützt :-) (siehe auch unten 13.)

unbedingt! Wenn man in ein Feld schreiben kann, dann muss das System
auch was mit dem Geschriebenen anfangen. Vielleicht ist es einfach ein
Problem mit der deutschen Sprache? Schon mal "wheel's direction"
probiert?

> 12.
> Lukas' erste Lösung hat sich aus der "Fahrautomatik" entwickelt: "gehe
> vorwärts um" in einen Test legen, der durch einen "Sensor" (sieht Farbe)
> gesteuert wird.
>
> Mit Katrin hat sich eine andere Lösung ergeben: Sie hat gesagt "... dann
> soll das da [das Skript] stoppen". Darauf habe ich vorgeschlagen, unter
> den Skripts ein "Stopp-Skript" zu suchen - und tatsächlich, da gibt es
> unter "scripting" (noch nicht übersetzt) ein "stoppe Script
> <emptyScript>". Ein Stück darunter gibt's dann sogar ein "stop all"! -
> hört sich doch gut an ...
> Also: Dieses Skript rausziehen, Test dazu (hat länger gedauert ...
> übergehe ich hier), und ausprobieren: Geht nicht ?!?!?! Ich habe dann
> vorgeschlagen (obwohl ich nicht steuern will ...), doch hinten bei
> "emptyScript" den Namen des "vorwärts"-Skripts auszuwählen - dann hat's
> funktioniert!

Es gibt einen Unterschied zwischen Steuern und Helfen. Katrin hat sich
selbst an das Problem hingesteuert, und indem du ihr die Handhabung des
Systems erklärst, hilfst du ihr da wieder raus.

Besonders hilfreich ist es, wenn du auch keine Ahnung hast, wie es gehen
könnte und selber suchen musst. Aber dann darfst du nicht deine
Suchalgorithmen ultraschnell abspielen sondern musst es so langsam
machen, dass Katrin nicht nur die Lösung selbst sieht, sondern auch den
Weg, auf dem du dazu gekommen bist. So erfährt sie nicht nur die
Antwort, sondern bekommt auch Meta-Informationen über das System und
noch dazu Meta-Meta-Infos darüber, wie man sowas findet.

>
> Aber: "stoppe Skript <Skriptname>" ist mir klar. Aber was ist dann "stop
> all <Skriptname>"? Und wieso gibt es kein "stop all" ohne Parameter (was
> noch immer nur alle Skripts *dieses* Objekts stoppen würde).
>
> [Eine Idee von Lukas habe ich erst jetzt gerade zusammengebracht - und
> damit wieder etwas über die "Orthogonalität" von EToys gelernt: Wenn das
> Auto über den Straßenrand fährt, sollte "der Stop-Knopf gedrückt
> werden!". Ok - da alles Skripts hat, muss der Stopknopf sicher auch
> eines haben, wo man ihn "drücken" kann. Problem: Ich kann den Stopknopf
> nicht auswählen :-( :-(
> ... durch Zufall drücke ich mehrmals auf Alt-Maus - und sehe plötzlich,
> wie das Viereck der Handles seine Größe ändert: Nach 4 oder 5 Versuchen
> bin ich sicher, dass man damit die Handles der geschachtelten Objekte
> "durchsteppen" kann! - und jetzt ist es leicht: Nach ein wenig Suche
> finde ich "Stop button" "feuer", hänge das an den Sensor der Autos - und
> schon stoppt alles: Ein richtiger "Notstopp"!]

Hoffentlich haben das die Kinder gesehen! klick, klick, klick, alt-klick
hoppla, jetzt hat sich was getan. klick? aha  alt-klick aha! nochmal
alt-klick ... AHA!

hmmmm... ich hoffe, du verstehst, was ich da meine.

s.
--
Stefan Schmiedl

Reply | Threaded
Open this post in threaded view
|

Re: Squeak-EToys mit meinen Kindern - Woche 3

Olaf Hamann-2
Sorry, daß ich mich hier so reinmische,
aber ich lese diesen sehr lebendigen, interessanten Thread schon eine Weile
und bei dem Stichwort 'Literatur' kann ich meine Finger nicht bändigen.


Stefan Schmiedl wrote:

>Harald M. Müller (2004-10-22 09:49):
>
>  
>
>>Katrin dagegen ist ein literarischer Mensch: Sie kann seit ihrem vierten
>>Lebensjahr lesen, liest (man könnte fast sagen: "verbraucht") pro Tag
>>bis zu einigen 100 Seiten, schreibt lange Aufsätze und spricht (und
>>denkt wohl auch) "nach der Schrift" (im Gegensatz zu uns Eltern, die
>>eine österreichische Umgangssprache "pflegen"). Außerdem ist sie fast 2
>>Jahre jünger als Lukas und nicht "computer-versiert"; wenn schon, dann
>>liebt sie die Tastatur, aber nicht so sehr die Maus.
>>    
>>
>
>Bring ihr vi bei, und lass sie viel an einer Linux-Konsole spielen 8-}
>
>  
>
Und LISP!  Vielleicht wird sie das (später?) auch mögen.
(Ein Mann mit (Tasche  (in der sind Schluessel Geld und Bindfaden)) geht
in das (Haus ( in dem die Frau wohnt)))
"Nun hole mal mit car und cdr den Schluessel aus der Tasche und wer
wohnt im Haus?"

Mich hat es jedenfalls angesprochen, daß ich mit lesbaren,
verständlichen Sätzen die
ersten Programmiererfahrungen sammeln konnte. Wer weiß, vielleicht
findet sich ja auch noch ein Lisp-Interpreter auf SqueakMap.

Ach, und noch was wegen der vi-Anregung:
im Emacs gibt es einen Befehl  dissociated-press oder ähnlich, der einen
Text
im Buffer ganz hervorragend verwürfelt - dabei kommen lustige Wörter
zustande - vielleicht
wäre das auch was für Literaturfreudige und Wortfans.


Viele Grüße,

Olaf Hamann




Reply | Threaded
Open this post in threaded view
|

Re: Squeak-EToys mit meinen Kindern - Woche 3

Bert Freudenberg-3
Am 28.10.2004 um 23:21 schrieb Olaf Hamann:

> Und LISP!  Vielleicht wird sie das (später?) auch mögen.
> (Ein Mann mit (Tasche  (in der sind Schluessel Geld und Bindfaden))
> geht in das (Haus ( in dem die Frau wohnt)))
> "Nun hole mal mit car und cdr den Schluessel aus der Tasche und wer
> wohnt im Haus?"
>
> Mich hat es jedenfalls angesprochen, daß ich mit lesbaren,
> verständlichen Sätzen die
> ersten Programmiererfahrungen sammeln konnte. Wer weiß, vielleicht
> findet sich ja auch noch ein Lisp-Interpreter auf SqueakMap.

Natürlich :-)

        http://minnow.cc.gatech.edu/squeak/1410

Müsste man mal schauen ob der noch läuft.

- Bert -


Reply | Threaded
Open this post in threaded view
|

Re: Squeak-EToys mit meinen Kindern - Woche 3

Stefan Schmiedl
In reply to this post by Olaf Hamann-2
Olaf Hamann (2004-10-28 23:21):

> Sorry, daß ich mich hier so reinmische,

willkommen!

> Und LISP!  Vielleicht wird sie das (später?) auch mögen.
> (Ein Mann mit (Tasche  (in der sind Schluessel Geld und Bindfaden)) geht
> in das (Haus ( in dem die Frau wohnt)))
> "Nun hole mal mit car und cdr den Schluessel aus der Tasche und wer
> wohnt im Haus?"

Warum hab' ich sowas vor 20 Jahren nicht gesehen?
Eine brillante Idee.

>
> Mich hat es jedenfalls angesprochen, daß ich mit lesbaren,
> verständlichen Sätzen die
> ersten Programmiererfahrungen sammeln konnte. Wer weiß, vielleicht
> findet sich ja auch noch ein Lisp-Interpreter auf SqueakMap.
>

s.

Reply | Threaded
Open this post in threaded view
|

Re: Squeak-EToys mit meinen Kindern - Woche 3

Bert Freudenberg-3
In reply to this post by Olaf Hamann-2

Am 28.10.2004 um 23:21 schrieb Olaf Hamann:

> (Ein Mann mit (Tasche  (in der sind Schluessel Geld und Bindfaden))
> geht in das (Haus ( in dem die Frau wohnt)))
> "Nun hole mal mit car und cdr den Schluessel aus der Tasche und wer
> wohnt im Haus?"

Array compile: 'car ^self isEmpty ifFalse: [self first]'.
Array compile: 'cdr ^self size > 1 ifTrue: [self allButFirst]'.

#(Ein Mann mit (Tasche  (in der sind Schluessel Geld und Bindfaden))
geht in das (Haus ( in dem die Frau wohnt))) cdr cdr cdr car cdr car
cdr cdr cdr car

- Bert -