Smalltalk, Squeak / EToys für den Schulunterricht ...

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

Smalltalk, Squeak / EToys für den Schulunterricht ...

stepken
Hallo Squeaker!

Ich habe vor ca. 2 Jahren so einige Projekte mit Kiddies begonnen, die
auf Squeak 3.9 basierten, natürlich auf Squeak / EToys aufbauend. Ich
war eigentlich schon richtig begeistert, zumal die Kiddies da
Logikkacheln irgendwie zurecht schieben und die Dinge alle anfangen,
sich zu bewegen.

Ein, wie ich mal sagen möchte, sauberes, didaktisches Konzept.

Ich habe dann ungefähr 60 kleine Tutorials geschrieben, alle für 3.9,
die dann leider nicht in der Version auf squeak.de mehr liefen. Schade,
dachte ich, aber die werden es schon hinbekommen, das mit der "Abwärts -
Kompatibilität". Egal, nicht so wichtig.

Was mich immer schon störte an Squeak - das sagten mir auch einige
Lehrer, dass man damit irgendwie keine professionellen Anwendungen
zusammen basteln kann. Der Anteil an Smalltalk in der Industrie ist ja
nicht so hoch, wohl aber stark ansteigend. Für die Kiddies also nicht so
optimal. Das ist der Grund, warum viele Lehrer im Informatikunterricht
auf Java gewechselt haben, *die* Anwendungssprache fast überall (neben
.NET). Dort aber ist die GUI so komplex und universell zu erlernen, dass
das kaum im Unterricht zu schaffen ist.

Ich habe mir dann den Unterricht in verschiedenen Schulen angeschaut.
JAVA Tutorials, JBlue Libraries und die Kinder müssen satte 3 A4-Seiten
an Definitionen eintippen, damit überhaupt erst einmal ein blauer Kreis
auf dem Bildschirm erscheint ... Die sassen da, völlig demotiviert,
viele wählten Informatikunterricht wieder ab.

Naja, habe ich mir gedacht, schreibe doch mal eine Smalltalk Lib für
dynamische Bewegungen, so als Erweiterung für EToys, Stichwort "Physics
Engine". So wo Gegenstände voneinander abprallen oder z.B. ein Auto über
eine Landschaft fährt, über Hügel springt. (auf www.squeak.de zu laden)

Das war der Beginn eigentlich einer Lib, die Kinematik darstellt. Ich
bin noch dran.

In der Zwischenzeit suchte ich nach einer Möglichkeit, Squeak zu
beschleunigen. Nun, Frank Lesser bastelt am Dolphin NG, was auch
kostenlos für Schulen auf der Homepage zu laden ist.

DNG erreicht C-Geschwindigkeit und man kann professionelle Anwendungen
damit bauen. Der Editor ist schon Klasse, da er einen
Vervollständigungs-Modus beherrscht.

Warum eigentlich nicht EToys auf Dolphin portieren?

Dann schaut ich mich nach Compilern für Smalltalk um, und wurde auf LLVM
aufmerksam, schaut mir an, wer das Tool für welche Programmiersprachen
einsetzt. Der JavaScript V8 - Interpreter vom Chrome Browser nutzt den.
Allerdings ist das nun ein Jitter, also der übersetzt in
Maschinensprache. Tolles Ding, dachte ich mir, geht ab, wie Luzie.
JavaScript ist ja Smalltalk von den internen mentalen Modellen sehr
ähnlich, also bastelte ich auf dem LLVM Ruby Projekt (siehe Orange
Programmiersprache) mir so etwas wie einen Mini - Smalltalk - Compiler
zusammen. Etwas rudimentär und seltsam, weil ein Ruby dann Smalltalk in
Maschinensprache übersetzt.
Aber das Teil ist sauschnell, viel schneller als Squeak, stellt ich
fest. C-Speed.

Dann fragte ich mich, womit Matz seinen neuen Ruby 1.9 - Interpreter
gebaut hatte. YARV. Ok, dachte ich mir, schau Dich mal um, wo es
vielleicht ein paar Smalltalk - Grammatiken gibt ... natürlich fand ich
auch welche ... also kurz gesagt, ich habe ich ein vollständigen
Smalltalk-Compiler laufen, ähnlich GNU Smalltalk, aber dahinter nicht
GNU Lightning als Jitter, sondern LLVM. Zusammengebaut aus ... hmmm, wie
soll ich sagen .... Fundstücken aus dem Internet. 1 Woche habe ich
gebraucht. Nun dachte ich, vielleicht kann ich ja Squeak darauf portieren.

Tja, dachte ich, Compilerbau ist dank LLVM bzw. YARV zum Kinderkram
geworden. Apropos - Mein Compiler läuft auch auf ARM, PPC, Sparc, Intel,
.... Prozessoren (noch ungetestet). Ein paar Kleinigkeiten fehlen noch,
z.B. SMP-Fähigkeit, Multi-Threading .... Kann man aber in der Schule
unterrichten. http://llvmruby.org/wordpress-llvmruby/

Und dann stieß ich auf etwas, das verschlug mir fast den Atem.

http://hotruby.yukoba.jp/test-web/Box2DFlashAS3.html

Noch interessanter ist, dass man die Dinge in der Bewegung mit der Maus
greifen kann, also z.B. die Raupe kann man aus dem Ring mit der Maus
"herausziehen". Mann kann sogar mit etwas Energie die Ketten von der
Raupe entfernen. Auch kann man die umfallenden Domino-Steine
beeinflussen, e.t.c. Kinematik pur, in Echtzeit!!!!!

Das alles läuft alles äusserst flüssig in einem Javascript Interpreter,
der die Programmiersprache RUBY auch noch emuliert. Und das dann noch
schneller, als Squeak vermutlich jemals werden wird ;-)

Apropos: Der Code dazu findet sich unterhalb dieser "Rube Goldberg"
Maschine. Mit Pfeiltasten links und rechts finden sich mehr Beispiele.
Ich muss sagen, ich war baff!

Ruby ist, nebenher gesagt, eine Programmiersprache (siehe JRuby), die
auch wegen ihrer Effizienz und Java-Kompatibilität in der Industrie
verwendet wird. Von den inneren, mentalen Modellen her ähnlich
orthogonal, wie Smalltalk, also ideal als "Lehrsprache" geeignet.

Nun frage ich mich, ob man vielleicht, nachdem man ein wenig EToys mit
den Kids gemacht hat, nicht als Lehrer HotRuby im Firefox - Browser
unterrichten sollte. Der Editor ist ja gleich mit drin!

Interessanter als E-Toys sind diese "Crazy Machines" zum
Selberprogrammieren für Kiddies allemale!

Mir ist irgendwie die Lust am Kinematik - Projekt für Squeak vergangen.
Das ganze Squeak - Projekt ist nur noch eine einzige Baustelle. Ich
weiss nicht mehr, ob Morphic so noch bestehen bleiben wird, wenn Pharo
erst einmal fertig ist.

Ich frage mich ernsthaft, was all die klugen Denker beim PHARO-Projekt
so treiben, ob die da nicht an etwas arbeiten, was irgendwie immer
weniger Sinn macht.

Was für mich Sinn noch macht, ist z.B. das "FROM NAND to Tetris in 12
Steps":

http://www.youtube.com/watch?v=JtXvUoPx4Qs

Das Projekt, denke ich, werde ich in Deutsch mal übersetzen. Scheint mir
immer notwendiger, angesichts der Mächtigkeit von Tools, wie LLVM ;-)
Auch für Schulen gut geeignet.

Und dann frage ich mich, was noch für die Uni's zu Lehren übrig bleibt ;-)

Viele Grüße, Guido Stepken