Es wird Zeit, dass die Etoys-Squeak-Gemeinde hierzulande allmählich aus ihrem Dämmerschlaf erwacht, damit sie nicht eventuell vom "Panther" aufgefressen wird.
"Panther is a Scratch modification that offers greater manipulation, such as blocks that create, move, show, and hide lists and variables, has the ability to clone and delete sprites, and offers external file manipulation." Von kompetenter Seite ist zu erfahren: Panther schließt die Lücke zum textuellen Programmieren. Eigene Bausteine können in Smalltalk-Code selbst geschrieben werden (Variables -> "Make a block"), ebenso kann man den Quellcode zu den Skripten inspizieren (Rechtsklick -> "show tuples" bzw. "edit block"). Es geht um die Frage: Welche visuelle Sprache (mit der Möglichkeit des Übergangs zum textuellen Programmieren) eignet sich am besten für den Informatik-Anfangsunterricht (ab Primarstufe)? R. B. |
On Fri, 18 Nov 2011, R. Baumann wrote:
> Es geht um die Frage: Welche visuelle Sprache (mit der Möglichkeit des > Übergangs zum textuellen Programmieren) eignet sich am besten für den > Informatik-Anfangsunterricht (ab Primarstufe)? Ich selber habe mich, ehrlich gesagt, weitgehend von der Idee verabschiedet, einen gleitenden Übergang vom visuellen zum textuellen Programmieren zu suchen. Für imperative Strukturen ist das ganz in Ordnung. Da ist es auch schön, in Etoys auf die Textversion von Skripten zugreifen zu können, wobei mir hier die wenig sprechenden Variablennamen 't1' nicht so zusagen. Nachdem ich aber OOP unterrichten soll, bleibt in meinen Augen immer eine große Hürde, die mich dazu veranlaßt, nach dem visuellen Programmieren einen echten Schnitt zu setzen und in einer rein textorientierten Programmierwelt weiterzuarbeiten: Die Erzeugung der Objekte. Die ist in beiden Programmierwelten völlig verschieden. Visuell male ich Objekte oder hole sie aus irgendwelchen Lagern. In der 'echten OOP' muß ich erst einmal einen Konstruktor schreiben. Das fehlt im visuellen völlig, ist aber zugleich der erste und, ich denke, auch wichtige Schritt, den ich bislang aber nicht organisch aus z.B. Etoys heraus lösen konnte. Markus P.S. Panther kannte ich bislang noch nicht. Wenn es wie Scratch ist, dürfte es für den Durchschnittsgymnasiasten leichter zu bedienen sein als Etoys - weniger Verstecktes in der Bedienoberfläche. Freilich sehen Etoys-Projekte am Ende besser aus, weil man die ganze Welt zur Verfügung hat. |
In reply to this post by R. Baumann
On Fri, 18 Nov 2011, R. Baumann wrote:
> "Panther is a Scratch modification that offers greater manipulation, such as > blocks that create, move, show, and hide lists and variables, has the > ability to clone and delete sprites, and offers external file manipulation." > > Von kompetenter Seite ist zu erfahren: Panther schließt die Lücke zum > textuellen Programmieren. > Eigene Bausteine können in Smalltalk-Code selbst geschrieben werden > (Variables -> "Make a block"), ebenso kann man den Quellcode zu den Skripten > inspizieren (Rechtsklick -> "show tuples" bzw. "edit block"). > > Es geht um die Frage: Welche visuelle Sprache (mit der Möglichkeit des > Übergangs zum textuellen Programmieren) eignet sich am besten für den > Informatik-Anfangsunterricht (ab Primarstufe)? die Möglichkeit, per Block Sprites clonen zu können. Das geht ein wenig in Richtung Klassenkonzept, was Etoys mit den Geschwistern ja auch bietet. Wie viel das Schreiben eigener Blöcke wirklich wert ist, weiß ich nicht so recht. Das sieht mir eher nach einem Feature für Cracks aus, die ohnehin schon Smalltalk können. Es stellt sich allein schon die Frage, welche Funktionalitäten solch eigene Blöcke haben sollen. Wenn man vom vorhandenen ausgeht, zielt es Richtung Datenzugriffe ab. Ansonsten bleiben noch Dinge, die sich nicht mit Sprites oder Stiftspuren am Bildschirm darstellen lassen. Im Blick auf objektorientierte Modellierung und Programmierung - unter diesem Paradigma steht der derzeitige Informatikunterricht schießlich, fehlen mir aber zwei Dinge ganz wesentlich - es sind die gleichen Dinge, die ich seit jeher auch bei Scratch vermisse (vielleicht liest du ja mit, Jens :) ): 1. Auch Panther arbeitet offenbar nur mit Broadcast-Nachrichten. Das macht es richtig schwer, Sprites eigene Methoden mit einem Methodennamen beizubringen. (Rückgabewerte wären mir für den Einstieg ins Programmieren egal.) Ich hätte wahnsinnig gerne etwas in der Art "sende an [Katze][machPurzelbaum]" oder "sende an [Katze][machPurzelbaum] und warte" Dann könnte ich bei der Katze sinnvollerweise ein Skript mit dem Kopf "wenn ich [machPurzelbaum] erhalte" bauen und müßte mir nicht immer einen Kopf darum machen, ob eigentlich ein anderer Sprite auch Purzelbäume machen kann. Wie hier schon öfter angeklungen, geht es bei der Objektorientierung doch eigentlich um eine Nachrichtenorientierung - Nachrichten mit Empfänger. So muß ich immer tricksen: "sende an alle [Katze_machPurzelbaum]". Das interessiert die anderen Sprites aber doch gar nicht, oder jedenfalls nicht immer. 2. Wenn schon Variablen, dann bitte auch Sprite-wertige Variablen. Es scheint in Panther Variablen zu geben, die zumindest den Namen eines Sprites verwalten - aber ist das nur der String oder wirklich ein Zeiger auf den Sprite? Etoys hat das alles, wird aber beim Kachelprogrammieren leicht etwas unübersichtlich (Scratch hat da z.B. beim Rechtsklick die Option, etwas aufzuräumen). Allerdings ist es in Etoys z.B. richtig gut, daß man Skripte verschiedener Darsteller gleichzeitig sehen kann. Vielleicht wäre es da schön, wenn man in Etoys seine Skripte nicht direkt in der Welt bauen würde, sondern in einer Klappe, die z.B. auch eine verkleinerte Vorschau der Welt enthält. Oder wenn es in der Navigationsklappe eine einfach zu bedienende Ansichtsauswahl gäbe: - Alle gerade offenen Skripte minimieren - Alle gerade offenen Skripte maximieren und die anderen Darsteller nur in einer Miniwelt in einer Ecke darstellen - Etoys-Standardansicht: Alles bunt durcheinander ;) Was meinst du, Bert? Markus |
On 20.11.2011, at 20:32, Markus Schlager wrote:
> Etoys hat das alles, wird aber beim Kachelprogrammieren leicht etwas unübersichtlich (Scratch hat da z.B. beim Rechtsklick die Option, etwas aufzuräumen). Allerdings ist es in Etoys z.B. richtig gut, daß man Skripte verschiedener Darsteller gleichzeitig sehen kann. Vielleicht wäre es da schön, wenn man in Etoys seine Skripte nicht direkt in der Welt bauen würde, sondern in einer Klappe, die z.B. auch eine verkleinerte Vorschau der Welt enthält. Oder wenn es in der Navigationsklappe eine einfach zu bedienende Ansichtsauswahl gäbe: > - Alle gerade offenen Skripte minimieren > - Alle gerade offenen Skripte maximieren und die anderen Darsteller nur in einer Miniwelt in einer Ecke darstellen > - Etoys-Standardansicht: Alles bunt durcheinander ;) > > Was meinst du, Bert? > > Markus Das sollte mal jemand als Vorschlag auf die Entwicklerliste posten. Oder wenigstens auf die Squeaklandliste, da lesen außer den Lehrern auch die Entwickler mit. - Bert - |
Panther ist in vielerlei Hinsicht bemerkenswert!
Das erstaunlichste dabei ist, dass es spontan von einer Gruppe Kindern und Jugendlicher ganz ohne Beteiligung von Erwachsenen entstanden ist. Die Panther-Entwickler kamen aus verschiedenen Ländern und haben sich auf der Scratch Webseite getroffen und ihre Entwicklungen über das Scratch Forum miteinander abgestimmt. Dabei haben sie im wesentlichen den Scratch Quellcode nach Features durchforstet, mit denen John Maloney mal irgendwann experimentiert hat (z.B. Clonen von Sprites), die aber in Scratch nicht offiziel "freigeschaltet" worden sind. Teilweise arbeiten sie jetzt an BYOB und Snap mit. Markus, die Idee "Nachrichten" nicht nur "an alle" senden zu können, sondern auch an einzelne Sprites, ist vielleicht nicht wirklich das, wonach Du suchst. Ich glaube, dass hier die Nomenklatur "Nachrichten" dem Missverständnis Vorschub leistet, dass das irgendwas mit "message passing" à la Objektorientierung zu tun hat. In Wahrheit sind Scratch-Nachrichten wohl eher Ereignisse (events), denn es können z.B. auch keine Argumente mitgegeben werden. Gleiches gilt für Scratch-Skripte, die m.E. keine Methoden iSv Smalltalk sind, sondern eher "Event-listeners". Scratch ist nicht objektorientiert, dazu fehlt es an Vererbung und eben an Message Passing, und man müsste sich schon ziemlich verbiegen, Objektorientierung anhand von Scratch zu lehren. Gleiches gilt - glaube ich zumindest - auch für Etoys. In BYOB haben wir in der aktuellen Version 3.1.1 prototypische - also nicht klassenbasierte - Vererbung im Stil von Henry Lieberman, und auch echtes Message Passing, die Kursmaterialien speziell zu dieser Art von OO in BYOB sind aber zurzeit noch in der Mache für das Sommersemester 2012. |
Hallo, Jens!
*lach* Ganz Smalltalk besteht aus kontextorientierten Event- oder genauer Message - Listeners, genannt "Objekte" Have fun, Guido Stepken Am 21.11.2011 um 14:42 schrieb Jens Mönig <[hidden email]>: > Panther ist in vielerlei Hinsicht bemerkenswert! > > Das erstaunlichste dabei ist, dass es spontan von einer Gruppe Kindern und > Jugendlicher ganz ohne Beteiligung von Erwachsenen entstanden ist. Die > Panther-Entwickler kamen aus verschiedenen Ländern und haben sich auf der > Scratch Webseite getroffen und ihre Entwicklungen über das Scratch Forum > miteinander abgestimmt. Dabei haben sie im wesentlichen den Scratch > Quellcode nach Features durchforstet, mit denen John Maloney mal irgendwann > experimentiert hat (z.B. Clonen von Sprites), die aber in Scratch nicht > offiziel "freigeschaltet" worden sind. Teilweise arbeiten sie jetzt an BYOB > und Snap mit. > > Markus, die Idee "Nachrichten" nicht nur "an alle" senden zu können, sondern > auch an einzelne Sprites, ist vielleicht nicht wirklich das, wonach Du > suchst. Ich glaube, dass hier die Nomenklatur "Nachrichten" dem > Missverständnis Vorschub leistet, dass das irgendwas mit "message passing" à > la Objektorientierung zu tun hat. In Wahrheit sind Scratch-Nachrichten wohl > eher Ereignisse (events), denn es können z.B. auch keine Argumente > mitgegeben werden. Gleiches gilt für Scratch-Skripte, die m.E. keine > Methoden iSv Smalltalk sind, sondern eher "Event-listeners". Scratch ist > nicht objektorientiert, dazu fehlt es an Vererbung und eben an Message > Passing, und man müsste sich schon ziemlich verbiegen, Objektorientierung > anhand von Scratch zu lehren. Gleiches gilt - glaube ich zumindest - auch > für Etoys. In BYOB haben wir in der aktuellen Version 3.1.1 prototypische - > also nicht klassenbasierte - Vererbung im Stil von Henry Lieberman, und auch > echtes Message Passing, die Kursmaterialien speziell zu dieser Art von OO in > BYOB sind aber zurzeit noch in der Mache für das Sommersemester 2012. > > -- > View this message in context: http://forum.world.st/Wer-kennt-Panther-tp4084535p4091514.html > Sent from the Deutsch (German) mailing list archive at Nabble.com. |
In reply to this post by Jens Mönig
Hallo Jens,
On Mon, 21 Nov 2011, Jens Mönig wrote: [...] > Markus, die Idee "Nachrichten" nicht nur "an alle" senden zu können, sondern > auch an einzelne Sprites, ist vielleicht nicht wirklich das, wonach Du > suchst. Ich glaube, dass hier die Nomenklatur "Nachrichten" dem > Missverständnis Vorschub leistet, dass das irgendwas mit "message passing" à > la Objektorientierung zu tun hat. In Wahrheit sind Scratch-Nachrichten wohl > eher Ereignisse (events), denn es können z.B. auch keine Argumente > mitgegeben werden. Gleiches gilt für Scratch-Skripte, die m.E. keine > Methoden iSv Smalltalk sind, sondern eher "Event-listeners". Scratch ist > nicht objektorientiert, dazu fehlt es an Vererbung und eben an Message > Passing, und man müsste sich schon ziemlich verbiegen, Objektorientierung > anhand von Scratch zu lehren. Gleiches gilt - glaube ich zumindest - auch > für Etoys. gut... ;) Ich selber benutze Scratch und Etoys jedenfalls tatsächlich zur Hinführung zum objektorientierten Denken. In Etoys zumindest habe ich dabei sogar das Gefühl, Vererbung zu nutzen, wenn ich mir für das Objekt, das ich brauche, etwas möglichst passendes aus dem Lager suche und dem dann zusätzliche Skripte und Variablen beibringe. Daß Scratch z.B. im eigentlichen Sinn gar nicht objektorientiert ist, tut mir dabei nicht weiter weh. Was die Kinder mit den Sprites vor sich haben, sind zumindest in einem naiven Sinn Objekte, die etwas tun können. Was die Schüler in der 7. Klasse dabei lernen sollen sind zum einen algorithmische Denkweisen, die sich in den Skripten widerspiegeln, zum anderen aber, daß man einem Objekt etwas sagen muß (eine Nachricht schicken/eine Methode aufrufen), damit es etwas tut. Da kann ich mir in Scratch mit dem "sende an/wenn ich erhalte" zumindest angenehm einfach hinbasteln und bin, ehrlich gesagt, auch glücklich. Fehlt mir nur, daß ich events auch gezielt für einen bestimmten Sprite auslösen kann. (Lernen sollen die Kinder das Methodenaufrufkonzept eigentlich anhand von Objekten in Vektorgrafiken und Textdokumenten. Es geht da um Nachrichten der Art 'blauesRechteck.wechsleFüllfarbe(rot)'.) Scratch und Etoys sind richtig feine Werkzeuge - und es tut mir aufrichtig leid, daß manche Informatiklehrer wie ich sie gnadenlos für unsere eigenen Zwecke bzw. die des Lehrplans mißbrauchen. (Das ist später mit BlueJ z.B. sicher auch nicht anders, vermute ich.) Es gibt momentan keine besseren Werkzeuge für den Unterrichtseinsatz - oder ich kenne sie zumindest nicht. Markus |
"BBC-Kolumnist Bill Thompson
findet: Nur wer Hardware und Software versteht, ist ein mündiger
Bürger. Auch iPhones entsperren zu können, sei wichtig – wegen
Apples Zensur."
Den vollständigen Artikel gibt es unter: http://www.zeit.de/digital/internet/2011-11/bill-thompson-digitale-bildung Gruß, Mirek |
Free forum by Nabble | Edit this page |