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)?
Ich habe mir das jetzt ein wenig angesehen. Was mir gut gefällt, ist z.B. 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