Etoys/Squeak vs. Scratch (Diskussionsbeitrag von Ralf Romeike)

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

Etoys/Squeak vs. Scratch (Diskussionsbeitrag von Ralf Romeike)

R. Baumann
Im (neuen) Heft 163/164 der Zeitschrift ist ein Diskussionsbeitrag von  Ralf Romeike erschienen, der sich kritisch mit Etoys/Squeak auseinandersetzt und die Überlegenheit von Scratch als Werkzeug der informatischen Bildung nachzuweisen sucht. Mit Recht stellt er gewisse Mängel von Etoys/Squeak fest; doch wird der denkende Leser, der im gleichen Heft einen Aufsatz zur objektorientierten Modellierung mit Smalltalk/Squeak findet, rasch die Unwesentlichkeit der Einwände erkennen.

Den entscheidenden Vorzug von Etoys/Squeak kann Romeike nicht abstreiten, nämlich dessen Offenheit: die Tatsache, dass kein Unterschied zwischen Werkzeug und Produkt besteht. Benutzer und Entwickler haben gleiche Möglichkeiten und Rechte (wie Bert Freudenberg einmal zutreffend festgestellt hat). In Bezug auf die informatische Bildung heißt dies, dass Schüler und Schülerinnen in ihrer Rolle als Benutzer zugleich Entwickler sind, dass sie also einerseits, das Softwaresystem erkundend, am Vorbild lernen und andererseits dieses System aus- und umgestalten, gegebenenfalls verbessern können. Damit wird die Forderung der modernen Lern¬theorie erfüllbar, „dass sich Wissen nicht ‚übertragen‘ lässt, sondern vielmehr in kon¬kreten Situationen jeweils neu auf dem Hintergrund der eigenen Erfahrungswelt konstruiert werden muss“ (Bildungsstandards Informatik, 2008, S. 5).

Etoys/Squeak ist ein Werkzeug, das allen möglichen didaktischen Systemen und Produkten, wie beispielsweise Scratch, im Hinblick auf die genannten Ziele informatischen Lernens turmhoch überlegen ist. Es ist an der Zeit, dass die Squeak-Gemeinde dies offensiv vertritt und durch Unterrichtsvorschläge überzeugend nachweist.

R. Baumann
Reply | Threaded
Open this post in threaded view
|

Re: Etoys/Squeak vs. Scratch (Diskussionsbeitrag von Ralf Romeike)

Ralf Romeike
Lieber Herr Baumann, hallo Liste,

Am 04.11.2010 20:19, schrieb R. Baumann:
> die Überlegenheit von Scratch als Werkzeug der informatischen Bildung
> nachzuweisen sucht.

Nein, ich male eben nicht nur schwarz/weiß. Ich habe mich bemüht,
verschiedene Aussagen Ihres vorausgegangenen Artikels, die m.E. so nicht
haltbar sind (z.B. Scratch in der Oberstufe sei eine Missachtung der
Fähigkeiten der Schüler), fundiert zu kritisieren.
Dazu gehören auch verschiedene Begründungen, warum sich Scratch "besser"
zum Einstieg in die Programmierung eignet, u.a. unter der Prämisse,
Kreativität zu fördern, was Ihnen, trotz gesetztem Ziel, m.E. in Ihren
Beispielen nicht gelungen ist. Schade, dass Sie die "Einwände" nur als
unwesentlich abtun. Wenn Sie einmal 25 Schüler der 7. Klasse mit den
Werkzeugen unterrichten, werden Sie vermutlich schnell merken, dass die
Argumente eben nicht unwesentlich sind.

Ein "Werkzeugstreit", zumal solch ähnlicher Werkzeuge, bringt uns aber
nicht weiter. Wichtig wäre es wirklich aufzuzeigen, wie man mit
Etoys/Squeak guten weiterführenden Informatikunterricht machen kann. Und
warum auch nicht als Fortführung nach einem Einstieg mit Scratch? Die
Grundlagen sind ähnlich und wären gelegt. Leider habe ich noch nicht
viele überzeugende Beispiele gesehen, würde mich aber über solche freuen!

Beste Grüße,
Ralf

PS: Wer die LOG-IN-Artikel nicht kennt aber lesen möchte, kann mir gern
eine Mail senden, dann schicke ich sie zu.
Reply | Threaded
Open this post in threaded view
|

Re: Etoys/Squeak vs. Scratch (Diskussionsbeitrag von Ralf Romeike)

Andreas.Raab
On 11/4/2010 4:18 PM, R. Romeike wrote:
> PS: Wer die LOG-IN-Artikel nicht kennt aber lesen möchte, kann mir gern
> eine Mail senden, dann schicke ich sie zu.

Ja bitte.

Ciao,
   - Andreas
Reply | Threaded
Open this post in threaded view
|

Re: Etoys/Squeak vs. Scratch (Diskussionsbeitrag von Ralf Romeike)

Guido Stepken
In reply to this post by Ralf Romeike
Überlegen ist nun Etoys/Squeak aus pädagogischer Sicht sicherlich in
vielerlei Hinsicht. Es kommt bei den Kiddies kaum Frust auf, Spiel
überwiegt. Wenn ich mir allein überlege, wie lange ich für so einen
Quatsch in C++ oder Java bräuchte?

#(1 2 3 4) + 5.

#(6 7 8 9)

#(3 #(3 4) #(5 6 7)) * 3.1415.

#(9.4245 #(9.4245 12.566) #(15.7075 18.849 21.9905))


6 Dinge allerdings machen mir Kopfschmerzen:

1. Einmal Smalltalk - die wollen nie wieder andere Programmiersprachen
erlernen!

2. Smalltalk ist Hacken, kein modernes Software Engineering, wie man
z.B. mit JAVA und BlueJ lernen kann.

3. Multiprozessorunterstützung fehlt bislang (RoarVM kommt wohl bald)

4. Erziehung zur Frusttrationstoleranz. Sich mal auch "durchbeissen
müssen" durch Bits und Bytes

5. Sinnlos erworbenes Wissen, da kein Entscheider Squeak einsetzen wird.

6. Zu hohes Abstraktionsniveau für Einsteiger


zu 6)

The Elements of Computing Systems: Building a Modern Computer from First
Principles ... Von Noam Nisan,Shimon Schocken
http://books.google.de/books?id=THie6tt-2z8C&printsec=frontcover&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false

Wer sich das in Ruhe mal durchliest, wird viele neue Erkenntnisse haben.
Nicht nur, dass das pädagogische System von Shocken sich nicht nur um
Programmierung dreht, sondern ebenfalls um den Entwurf der dazu
gehörigen Hardware, was elementare Einblicke in die Wechselwirkung von
Hard - und Software gibt, kein - man kann einen Computer mit Hardware
simulieren und im Betrieb beobachten. Und später das auch in FPGA oder
ASIC giessen. So erfährt man auch, was es mit diesen Firmware - Treibern
unter Linux auf sich hat! ;-) Z.B. ist es recht anschaulich erklärt, wie
man ein PONG Spiel mit nur wenigen hundert Byte realisiert.

Ich verwende das System zur Ausbildung von Informatik - Studis an der
Berliner Uni. Erinnert mich an die Zeit, wo ich selber noch Chips
gelötet habe.

zu 3)

Schaue ich mir das neue C++0x, die Programmiersprache GO, Haskell an, so
komme ich mit diesen Werkzeugen zu jedem Ziel. Automatische
Parallelisierung steckt bereits in den neuen Libraries.

In Kürze werden alle Computer Mehrprozessorsysteme sein, ARM, INTEL,
GPGPU's sogar massiv. Ein Parallelrechner mit 512 Prozesoren ist für
unter 1000€ zu haben!

Smalltalk besitzt z.B. im Gegensatz zu Haskell keinerlei eingebauten
Parallelismus. In Haskell sind alle verwendeten Algorithmen
*GRUNDSÄTZLICH* parallelisierbar. Keine Library, die nicht
vollautomatisch alle verfügbaren Prozessoren ausnutzt. C++0x wird da
kaum hinterher stehen, GO ebenso. Smalltalk ist zwar theoretisch auf der
RoarVM lauffähig, aber *ALLE* verwendeten Algorithmen in den Libraries
sind Single - Prozessor Algorithmen. Smalltalk müsste, um eine Zukunft
zu haben, angesichts der MP - Welle, *komplett* eingestampft und mit
Parallelalgorithmen völlig neu implementiert werden.

Zu RoarVM siehe: http://forums.instantiations.com/viewtopic.php?f=12&t=5523

Damit komme ich zu 5.)

Es ist für einen Schüler einfach vertane Zeit, Smalltalk zu lernen, wenn
er nach Schulschluß einen Nebenjob in einer Programmierfirma mit C++0x
oder Java haben könnte.

MfG, Guido Stepken
Reply | Threaded
Open this post in threaded view
|

Re: Etoys/Squeak vs. Scratch (Diskussionsbeitrag von Ralf Romeike)

Markus Schlager-2
Hallo Guido,

On Fri, 5 Nov 2010, Guido Stepken wrote:

[...]
>
> 5. Sinnlos erworbenes Wissen, da kein Entscheider Squeak einsetzen wird.
[...]
>
> Zu RoarVM siehe: http://forums.instantiations.com/viewtopic.php?f=12&t=5523
>
> Damit komme ich zu 5.)
>
> Es ist für einen Schüler einfach vertane Zeit, Smalltalk zu lernen, wenn er
> nach Schulschluß einen Nebenjob in einer Programmierfirma mit C++0x oder Java
> haben könnte.

Das mag sein, aber derartige Schüler sind in meinen Augen eine recht
kleine Minderheit (diejenigen, die dann z.B. bei dir an der Uni
aufschlagen), die sich ohnehin schon selber mit C++ oder C#
auseinandergesetzt hat, ehe sie bei mir dann in der 10. Klasse eine
objektorientierte Sprache lernen soll. Bei der Mehrheit der Schüler ist
das zentrale Lernziel m.E. weniger das Beherrschen einer Sprache, als
vielmehr die Einsicht, daß sich die Planungs- und Modellierungsansätze,
die hier trainiert werden, auch im richtigen Leben (jenseits von Bits und
Bytes) sinnvoll einsetzen lassen.

Schöne Grüße

Markus
Reply | Threaded
Open this post in threaded view
|

Re: Etoys/Squeak vs. Scratch (Diskussionsbeitrag von Ralf Romeike)

Markus Schlager-2
In reply to this post by Ralf Romeike
On Fri, 5 Nov 2010, R. Romeike wrote:

> Ein "Werkzeugstreit", zumal solch ähnlicher Werkzeuge, bringt uns aber
> nicht weiter. Wichtig wäre es wirklich aufzuzeigen, wie man mit
> Etoys/Squeak guten weiterführenden Informatikunterricht machen kann. Und
> warum auch nicht als Fortführung nach einem Einstieg mit Scratch? Die
> Grundlagen sind ähnlich und wären gelegt. Leider habe ich noch nicht
> viele überzeugende Beispiele gesehen, würde mich aber über solche freuen!

Das ist genau der Weg, den wir bei uns bestreiten:

7. Klasse, einstündig:   Ablaufmodellierung mit Scratch

10. Klasse, zweistündig: OOM mit Etoys, dann OOP mit einer 'klassischen'
Programmiersprache. Bei mir wird es diesmal Smalltalk mit Pharo.

Hoffentlich schaffe ich es dieses Jahr, mein Programm ordentlich und
veröffentlichbar zu dokumentieren.

Ich selber empfinde Scratch als einfacher und robuster zu bedienen, für
die Schüler auch übersichtlicher und weniger fehlerträchtig, was mir als
Lehrer das Arbeiten erleichtert. Die Etoys muß man als Lehrer schon ganz
schön gut kennen, wenn man Schüler als erstes darauf losläßt. Da tauchen
doch immer wieder Smalltalk-Fehlermeldungen auf, die auch mich noch zum
Rätseln bringen. In der 10. Klasse macht mir das aber nichts, weil es eine
Gelegenheit ist, den Schülern auch schon einmal die Smalltalkebene hinter
Etoys zu zeigen. Außerdem sind sie da schon routinierter und haben von
Scratch her ein Gefühl, wie das im Prinzip gehen muß. Trotzdem bleibt es
spannend, wenn sich ein Projekt plötzlich nicht mehr speichern lassen will
oder Schüler kreativ die Etoys-Kacheln per Halo verstümmelt haben.

Schöne Grüße

@Ralf: Könntest du mir die Artikel bitte schicken. Danke.
Reply | Threaded
Open this post in threaded view
|

Re: Etoys/Squeak vs. Scratch (Diskussionsbeitrag von Ralf Romeike)

Guido Stepken
Markus Schlager schrieb:
> Das ist genau der Weg, den wir bei uns bestreiten:
>
> 7. Klasse, einstündig:   Ablaufmodellierung mit Scratch
Auf dem Treffen beim HPI hat Jens Mönig den Nachfolger von Scratch
vorgestellt.

Vorteil: Das didaktisch sehr wertvolle Prinzip der vorgeformten
verschiebbaren, wie Lego ineinander greifenden Logikkacheln hat er auf
ganz Smalltalk ausgeweitet.
Also nicht nur, dass man in Scratch nun - was ja auf der Idee von Etoys
mit seinen Logikkacheln basiert - in einer eigenen
Grafikprogrammiersprache durch schubsen von Kacheln neue Algorithmen
generieren kann, sondern er hat das komplette, darunterliegende
Smalltalk in Logikkacheln überführt, die man hin- und her- schubsen kann.
Diese "Zusatz-GUI" hat er "Elements" genannt.". Sie müsste eigentlich
leicht auf jeden Smalltalk Dialekt übertragbar sein, der auf einem alten
Squeak basiert. (Pharo, ...)

Für mich war das Programmieren wie von einem anderen Stern. (und das
nach 21 Programmiersprachen, die ich inzwischen so gelernt habe).

Das Besondere:

Normalerweise kann man in Etoys oder Scratch keine Funktionen
definieren, ohne in den Quellcode eingreifen zu müssen. Das ist häßlich,
weil man das Konzept des Herumschubsens der Kacheln verlassen muss. Also
didaktisch gesehen ein Bruch. Jens hat es geschafft, dass man auch
Funktionen jeder Art, z.B. auch anonyme Funktionen als sog. "first class
objects" behandeln und als Logikkacheln schubsen kann.

So kann man z.B. als Lehrer unter Scratch mit den Kiddies - ohne
überhaupt die Scratch - typische GUI verlassen zu müssen, Mandelbrot
Fraktale auf den Bildschirm zaubern.

In den Logikkacheln von Scratch stecken ja unsichtbar eine Vielzahl von
impliziten, verborgenen Logiken, die der Anwender nicht sieht, von denen
er nichts ahnt.

Wenn ich aber will, kann ich mir genau diese impliziten Logiken der
Logikkacheln selber als Logikkacheln wiederum anzeigen lassen. Jens
Mönig hat es geschafft, die Programmiersprache Smalltalk selber als
System aus Logikkacheln erscheinen zu lassen, wobei der Übergang zur
grafischen "Kunstsprache" Scratch fliessend wird.

Das Konzept der Logikkacheln ist also selber zu einem "general purpose
system" geworden, mit dem sich alles programmieren lässt. Sogar kann man
mit Jens' System selber neue Logikkacheln erzeugen, ohne die GUI und das
Konzept der Logikkacheln verlassen zu müssen.

Ich kann also jede Abstraktionsebene in Smalltalk nun mit Schubsen von
Logikkacheln bewältigen. Nun auch die unterste, Ebene, also den
Smalltalk Code selber.

Dahinter steckt schon eine ganz erhebliche Denkleistung, die logischen
Elemente der Programmiersprache Smalltalk mit den Logikkacheln von
Scratch so nahtlos zu verbinden. Eine Denkleistung, die vor ihm, denke
ich, keiner der Freaks aus der Informatik je geschafft hat.

Insgesamt eine sehr, sehr beachtliche, eine großartige, philosophische
Denkleistung. Angewandte Modelltheorie pur. Da musste wohl erst ein
Jurist ankommen, um den Informatikern zu zeigen, wo der Hammer hängt.

Dieses System ist nun unter dem Namen "Build Your Own Blog" ("BYOB" -
für Google) frei downloadbar.

Have fun, Guido Stepken
Reply | Threaded
Open this post in threaded view
|

Re: Etoys/Squeak vs. Scratch (Diskussionsbeitrag von Ralf Romeike)

Enrico Schwass-2
In reply to this post by Guido Stepken
Guido Stepken <[hidden email]> writes:

Hallo Guido,

Einige Anmerkungen zu deinen Kopfschmerzen

> 1. Einmal Smalltalk - die wollen nie wieder andere Programmiersprachen
> erlernen!

Das stimmt so nicht. Nur müssen die anderen Sprachen auch
überzeugen. Ich lerne gerade SBCL und auf Scala habe ich auch ein Auge
geworfen. Ganz so ist es also nicht. :)


> 2. Smalltalk ist Hacken, kein modernes Software Engineering, wie man
> z.B. mit JAVA und BlueJ lernen kann.

Pauschalurteil ohne Belege

Auf dieser Seite findet google Alan Kay, Pharo, Smalltalk, etc.

http://softwareengineering.vazexqi.com/


> 3. Multiprozessorunterstützung fehlt bislang (RoarVM kommt wohl bald)

Schön wäre das schon, aber nur ein Bruchteil aller Anwendungen braucht
das überhaupt. Und Videoschnitt macht man nicht mit Smalltalk :)

> 4. Erziehung zur Frusttrationstoleranz. Sich mal auch "durchbeissen
> müssen" durch Bits und Bytes

Slang, Plugins, FFI

> 5. Sinnlos erworbenes Wissen, da kein Entscheider Squeak einsetzen wird.

Was braucht man Entscheider, wenn man sich selbstständig macht?  Der
Kunde/Entscheider muss nicht mal wissen, dass er eine Smalltalklösung
geliefert bekommt. Und Banken und Versicherungen sehen es mitunter ganz
gern, dass man Smalltalk einsetzt.

> In Kürze werden alle Computer Mehrprozessorsysteme sein, ARM, INTEL,
> GPGPU's sogar massiv. Ein Parallelrechner mit 512 Prozesoren ist für
> unter 1000€ zu haben!

Ja, und der 387 wurde 1987 vorgestellt. Die zusätzliche Rechenkraft hat
kaum einer genutzt. Ist dann auch wieder vom Markt verschwunden. Die PS3
hat zwar 5 oder 6 Cores und die werden auch genutzt. Der Aufwand ist
aber erheblich und die Zielgruppe sehr klein.

Die heutige Rechenleistung wird im Bereich Codecs, Forschung, Spiele
gefordert. Alles keine typischen Smalltalkfelder.

> Smalltalk besitzt z.B. im Gegensatz zu Haskell keinerlei eingebauten
> Parallelismus. In Haskell sind alle verwendeten Algorithmen
> *GRUNDSÄTZLICH* parallelisierbar. Keine Library, die nicht
> vollautomatisch alle verfügbaren Prozessoren ausnutzt. C++0x wird da
> kaum hinterher stehen, GO ebenso. Smalltalk ist zwar theoretisch auf
> der RoarVM lauffähig, aber *ALLE* verwendeten Algorithmen in den
> Libraries sind Single - Prozessor Algorithmen. Smalltalk müsste, um
> eine Zukunft zu haben, angesichts der MP - Welle, *komplett*
> eingestampft und mit Parallelalgorithmen völlig neu implementiert
> werden.

Es wird sich zeigen, was der eingebaute Parallelismus in der Praxis
bringt.

> Es ist für einen Schüler einfach vertane Zeit, Smalltalk zu lernen,
> wenn er nach Schulschluß einen Nebenjob in einer Programmierfirma mit
> C++0x oder Java haben könnte.

http://c2.com/cgi-bin/wiki?MakeItWorkMakeItRightMakeItFast

Ich glaube kaum, dass ein Lehrer im Informatikunterricht C++ in der
gleichen Zeit in dem Umfang unterrichten könnte, wie er Smalltalk
vermitteln kann. Aber wir haben ja eine ausreichende Lehrerdichte hier
auf der Liste. Kann sich ja mal jemand dazu äußern.

Dazu kommt "Lines of code not written"

MakeItWork - MakeItRight. Scheitert da eher der C++ oder der
Smalltalk-Programmierer?

Enno
Reply | Threaded
Open this post in threaded view
|

Re: Etoys/Squeak vs. Scratch (Diskussionsbeitrag von Ralf Romeike)

Stefan Schmiedl
In reply to this post by Guido Stepken
On Fri, 05 Nov 2010 01:38:23 +0100
Guido Stepken <[hidden email]> wrote:

> 6 Dinge allerdings machen mir Kopfschmerzen:

alles nur Einbildung ;->

> 1. Einmal Smalltalk - die wollen nie wieder andere Programmiersprachen
> erlernen!

aber nur, bis sie nach ein bisschen Spielen mit dem Scratchboard
bei Arduino & Co gelandet sind, dann geht's an C und Assembler.

> 2. Smalltalk ist Hacken, kein modernes Software Engineering, wie man
> z.B. mit JAVA und BlueJ lernen kann.

So ein Schmarrn, mit Verlaub. Der Satz hat zu viele "ist". Meinst
du vielleicht

"Smalltalk wird als Hacken unterrichtet, ohne auf Ideen des
modernen Software Engineering einzugehen"?

In dem Fall liegt's am Lehrer, der viel zu oft Opfer des Lehrplans
ist. Oder es ist einer der Sorte, die jede Sprache als "Hacken"
rüberbringen.

> 5. Sinnlos erworbenes Wissen, da kein Entscheider Squeak einsetzen wird.

Ob Wissen sinnlos erworben wurde, weiß man erst, nachdem man seine
Existenz beendet hat, vorher nicht. Ich persönlich sehe meine Bildung
mit Pfadfinder-Philosophie: "Allzeit bereit" oder, noch passender
"Luck favors the prepared"

Beispiel: In meiner Schulzeit hab ich Programmieren auf einem ZX81
gelernt, BASIC und Assembler. Die Kiste ist dann irgendwann verschwunden,
16-, 32- und neuerdings 64-bit Prozessoren erobern den Markt. War das
damals "sinnlos"?

Nö.

Weil ich vor knapp 30 Jahren Programmieren in der Schuhschachte (1k RAM)
mit der Pinzette (Z80 Assembler, "2A 0C 40" anybody?) gelernt habe,
kann ich heute Aufträge im embedded-Bereich an Land ziehen.

> 6. Zu hohes Abstraktionsniveau für Einsteiger

Das ist so wie beim Autofahren, nicht?

> Es ist für einen Schüler einfach vertane Zeit, Smalltalk zu lernen, wenn
> er nach Schulschluß einen Nebenjob in einer Programmierfirma mit C++0x
> oder Java haben könnte.

Hmpf. Und wenn das erste halbe Jahr vorbei ist?

Schau mal auf M. Felleisens Seite
        http://www.ccs.neu.edu/home/matthias/
unten das letzte Zitat an:

On Teaching Programming: Wir sind froh, dass die Absolventen schon Java können. Programmieren müssen wir denen halt noch beibringen. overheard in a German firm, via Mike Sperber

Wenn im Gymnasium schon "Programmieren" unterrichtet werden soll,
dann bitte im Sinne von "Bildung" und nicht von "Ausbildung".

s.