Hallo Guido!
Erst einmal vielen Dank für deine Anmerkungen. Wie es aussieht, muß ich wohl ein paar Sachen erzählen, um das eine oder andere verständlicher zu machen.
Zunächst einmal zu mir selber: Im Grunde habe ich von Squeak und Smalltalk keine Ahnung, komme auch nicht aus der Informatik, sondern bin von meiner Ausbildung her (reiner) Mathematiker (war einmal in der algebraischen Geometrie zu Hause) und Lehrer für Mathematik und Physik mit einer berufsbegleitenden Nachqualifikation für Informatik. Eine Sache, die in meinem Tutorial passiert, ist daher z.B. ein schlichtes Mitprotokollieren meines eigenen Erlernens von Smalltalk.
Was sich ohnehin woanders in für mich brauchbarer Form findet. habe ich (soweit für meine Zwecke nötig) verlinkt, aber nicht dupliziert - dazu gehören natürlich drive-a-car und lunar-lander sowie die sonstigen Standardprojekte. Diese Dinge finden sich z.B. in Heiko Schröders Tutorial, auf das ich die Schüler als erstes auch angesetzt habe. In meine Folien aufgenommen habe ich dagegen (in meinen Augen) grundlegende Techniken im Umgang mit eToys, die ich, ehrlich gesagt, nirgends vernünftig dokumentiert gefunden habe, sondern durch Herumprobieren und (kontinuierliches) Mitlesen von Mailinglisten gelernt habe. Squeak als Entwicklungsumgebung findet sich immerhin fremdsprachig dokumentiert, aber die Begeisterung meiner Schüler, sich Informationen aus französischen oder spanischen Quellen zusammenzusuchen, hält sich in Grenzen.
Zum Sinn und Zweck des Tutorials:
An sich geht es hier nicht (primär) um Squeak, sondern um den Informatikunterricht an einem bayerischen Gymnasium, momentan in der 11, Jahrgangsstufe, künftig (und dann nicht mehr nur an einigen wenigen Gymnasien wie bislang) dann (ab Schuljahr 2008/9) in der 10. Klasse. Dadurch steht es in einem Kontext (Lehrplan), der auch erklärt, warum UML und Flußdiagramme hier eine wesentliche Rolle spielen. Das große Thema im Unterricht heißt nicht 'Programmieren' sondern 'Ablaufmodellierung'. Squeak/Smalltalk hat die Rolle eines Beispiels, um Modellierungstechniken umzusetzen. Was die Lehrerbildung in Bayern anbelangt, werden die Kollegen vermutlich primär auf Java getrimmt, was sich wohl auch in den (noch zu schreibenden) Schulbüchern widerspiegeln wird. Was ich hier mache, ist, Alternativen auszuprobieren und sie in einem Lehrernetzwerk auch ein wenig zu propagieren. Die letzten Jahre habe ich mit Python gearbeitet (das ist auch der Grund, warum in den Folien der Heron-Algorithmus (noch nur) in Python implementiert ist - ich wußte in dem Moment schlicht noch nicht, wie man das in Smalltalk macht).
Der Grund, warum ich auf Smalltalk gestoßen bin, sind zwar die eToys, aber die sind in der Unterstufe relevant. Dort lernen die Schüler (bei mir mittlerweile mit Scratch) die Grundstrukturen imperativer Programme. In Klasse 10 soll dann das objektorientierte Paradigma im Mittelpunkt stehen, und Squeak bietet in meinen Augen die schöne Möglichkeit, hier das Innenleben des aus der Unterstufe vertrauten Werkzeugs zu erkunden. Deshalb probiere ich das dieses Jahr aus.
Was ich gerne wüßte - eine Frage an die produktiv arbeitenden Squeaker:
Wie sieht der typische Workflow bei GUI-Programmierung in Squeak aus? Baut ihr GUIs üblicherweise via Maus aus Morphen zusammen und erzeugt daraus dann irgendwie neue Klassen, oder ist der typische Weg doch der, alles quelltextorientiert im Browser zu konzipieren? (Nach Erlernen der Grundkonzepte, sollen die Schüler schließlich ein 'typisches' Projekt umsetzen.)
Warum ausgerechnet Squeak 3.9:
Die eToys sind hier nur eine Randerscheinung. Die Ablaufmodellierung soll in einer typischen Programmierumgebung erprobt werden, also geht es um Smalltalk. Soviel ich auf den Mailinglisten gelernt habe, sind dafür die images von squeak.org 'zuständig'. Abgesehen davon bin ich zu wenig Fachmann, um die Qualitäten verschiedener images wirklich würdigen zu können.
Unterrichtlicher Kontext:
Das große Thema in den vier Unterrichtsjahren heißt Modellierung unter objektorientierten Vorzeichen. Was die Schüler lernen sollen, ist übersichtliche und strukturierte Darstellung von 'Information'. Kurz gesagt, ist das wichtigste der Umgang mit verschiedenen Formen von Diagrammen und die Erkenntnis, daß diese ein richtig wertvolles Vehikel sind. Alles was mit Rechnern zu tun hat (also z.B auch das Programmieren) ist ein *Neben*produkt des Unterrichts.
Immer vorausgesetzt, daß die Schüler überhaupt qualifiziertes Lehrpersonal haben, lernen sie:
6. Klasse (bislang 10. Klasse):
Klassen und Objekte. Dazu gehört ganz massiv (vereinfachtes) UML, an sich auch Datenkapselung (wie von Dir angesprochen) und das Nachrichtenkonzept). Umgesetzt wird das (in meinen Augen eher ungeeigneterweise) mit Vektorgraphiken, Textdokumenten, Präsentationen und Hypertext.
7. Klasse (im Moment eben auch 11. Klasse):
Ablaufmodellierung, insbesondere die klassischen imperativen Strukturen. Im Prinzip z.B. eine Sache für eToys, denen bislang aber die Schleifen fehlten. Scratch paßt hier wie die Faust aufs Auge. Von der Modellierung her propagieren die Schulbücher an dieser Stelle Struktogramme - ich selber finde Flußdiagramme 'besser'.
9. Klasse (ab 2007/8):
Datenflüsse und Datenmodellierung, insbes. auch ER-Modell und Datenbanken
10, Klasse (ab 2008/9, im Moment auch noch 11. Klasse):
OOM und OOP, mehr 'M' als 'P'. Konkrete Umsetzung steht noch aus. (Wer Smalltalk propagieren will, kann gern die Schulbuchverlage anbohren.)
Wesentliche Grundkonzepte sind den Schülern, für die das Tutorial gedacht ist, also bereits vertraut (etwas das Objekt-Konzept). Zudem gibt es im Unterricht auch einen Lehrer, der den roten Faden etwas ziehen kann.
Ein Vergleich mit anderen Programmiersprachen ist in dem Kontext bedeutungslos, weil das hier für die Mehrheit der Schüler die erste Sprache ist, die sie überhaupt lernen. Squeakspezifische Spezialtricks sind auch sekundär, da die Schüler primär 'typische' Dinge lernen sollen. Freilich sind sie ein wenig das Salz in der Suppe, aber an der Stelle muß ich auch offen erklären, daß ich die wenigsten selbst kenne. Squeak eröffnet sich mir auch erst nach und nach. (Da geht es unter anderem auch noch um so Probleme wie sich nicht mehr öffnen oder speichern lassende Projekte - 'Unterricht in Echtzeit' ;-) )
Schöne Grüße
Markus ----------------------------------------------- Markus Schlager m.slg(at)gmx.de