<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.0.4630.0">
<TITLE>Squeak-EToys mit meinen Kindern - Woche 3</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<P><FONT SIZE=2 FACE="Courier New">[Erstes Mal gesendet am 2.10.2004]</FONT>
</P>
<P><FONT SIZE=2 FACE="Courier New">Hallo - </FONT>
</P>
<P><FONT SIZE=2 FACE="Courier New">Weiter geht's bei uns mit Squeak!</FONT>
</P>
<P><FONT SIZE=2 FACE="Courier New">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</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">* zur Welt des Software-Engineering (inklusive der Probleme) </FONT>
<BR><FONT SIZE=2 FACE="Courier New">* zur Welt der "angewandten Informatik": Zu verstehen, wie man Computer *für* andere Problembereiche einsetzt (als Techniker, Physiker, aber auch Designer, ...)</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">* 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.</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">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ß ....</FONT></P>
<BR>
<P><FONT SIZE=2 FACE="Courier New">Nun zu Aktuellem: Die erste Hausaufgabe war (kurz zusammengefasst - steht auf einem anderen Rechner):</FONT>
</P>
<P><FONT SIZE=2 FACE="Courier New">"Zeichne wieder ein Auto ... und eine Straße ...</FONT>
<BR><FONT SIZE=2 FACE="Courier New">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 ...</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">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."</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">- Lukas hat die Aufgabe während der Woche gelöst.</FONT>
<BR><FONT SIZE=2 FACE="Courier New">- 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 ... </FONT></P>
<BR>
<P><FONT SIZE=2 FACE="Courier New">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:</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">11. Ich muss ein wenig ausholen:</FONT>
<BR><FONT SIZE=2 FACE="Courier New">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 </FONT><A HREF="www.squeakalpha.org:8080/super/310"><U><FONT COLOR="#0000FF" SIZE=2 FACE="Courier New">www.squeakalpha.org:8080/super/310</FONT></U></A><FONT SIZE=2 FACE="Courier New">, 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.</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">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.</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">Erstaunlicher (für mich! - und wohl für andere "Techniker" - aber sicher nicht für sie ...) Effekt bei der Hausaufgabe:</FONT>
</P>
<P><FONT SIZE=2 FACE="Courier New">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 ...</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">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".</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">Quintessenzen für mich:</FONT>
<BR><FONT SIZE=2 FACE="Courier New"> - erstaunlich und wichtig!, wie "anders" jemand denken kann ...</FONT>
<BR><FONT SIZE=2 FACE="Courier New"> - ... und wie daher vorsichtig und offen und ja nicht "vorgebend" und "voreingestellt" sein darf, wenn man jemandem erklärt, wie man ein Ziel erreicht ...</FONT></P>
<P><FONT SIZE=2 FACE="Courier New"> - ... und zuletzt, dass ich von EToys(2) erwarten würde, dass es diesen Zugang auch unterstützt :-) (siehe auch unten 13.)</FONT></P>
<BR>
<P><FONT SIZE=2 FACE="Courier New">12.</FONT>
<BR><FONT SIZE=2 FACE="Courier New">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.</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">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 ...</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">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!</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">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).</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">[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 :-( :-( </FONT></P>
<P><FONT SIZE=2 FACE="Courier New">... 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"!]</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">13. </FONT>
<BR><FONT SIZE=2 FACE="Courier New">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"</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">[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 ...)].</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">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. ....).</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">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 ... ...</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">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?):</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">* Man kann Dingen sagen "immer im Hintergrund bleiben" (z.B. die Straße).</FONT>
<BR><FONT SIZE=2 FACE="Courier New">* 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).</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">* 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 ... ... ...</FONT></P>
<P><FONT SIZE=2 FACE="Courier New">So - das war's.</FONT>
</P>
<P><FONT SIZE=2 FACE="Courier New">Regards</FONT>
<BR><FONT SIZE=2 FACE="Courier New">Harald</FONT>
</P>
<BR>
</BODY>
</HTML>