Greenfoot/BlueJ - Didaktisch wertvoll?

[abgespalten von hier: http://forum.byte-welt.net/threads/11234-Get-Methode-eines-Array]

Hat zwar nichts mit dem Thema zu tun, aber arbeitest du mit Greenfoot?

Kurze Antwort: Ne.

@CyborgBeta nicht du :smiley: der TO ^^ kein normaler Mensch arbeitet damit. Da bevorzuge ich lieber Notepad

[anm. d. Red: TO war ursprünglich Waka]

Man kann ja auch mit dem vi unter linux proggen… xD

Ja ich arbeite mit Greenfoot aus den Gründen, dass es 1. ein Schulprojekt ist und da mit Greenfoot gearbeitet wird und 2. ich nicht weiß wie man eine graphische Darstellung mit anderen Compilern macht (Edit: Aber wenn ihr mir da (Online)-Lektüre zu empfehlen könnt: Immer her damit.) Man hat ja glaube ich aus den Fragen erkennen können wie es um meine Programmierkentnisse steht.

@Waka zu zweitens: gar nicht ^^ genau dazu wurde ja Greenfoot bzw BlueJ gemacht. Es soll das Programmieren für Anfänger erleichtern, indem es alles vereinfacht und visualisiert. So wie du es gerade machst (eine Welt aus Kacheln, mehrere Actors), das kann man so einfach nur dort machen. Irgendwie erinnert mich das an diese Wombats die alle Blaetter essen mussten :smiley:

Ich dache, Greenfoot stellt irgendwelche Aufgaben bereit, die man dann bearbeiten knna?

Also ich erinnere mich noch wage daran, aber ich meine es gibt ne Klasse World und Actor. Die Welt wird in Kacheln aufgeteilt und die Actors haben die Möglichkeit, sich darin zu bewegen. Wenn man anfängt, dann ist es halt ganz nett, da man sieht was für Auswirkungen der Code hat und nicht nur ne simple syso Ausgabe. Ist aber (wie Bluej) extrems langsam. Ich weis nicht wieso, aber ich schreibe in deren Editor schneller als das er mir den Code anzeigt. Das kann aber auch an userem Server liegen :slight_smile:

Ich selbst halte GreenFoot (und Ähnliches) auch nicht für didaktisch wertvoll, sondern eher für hinderlich, zumindest, wenn man Java lernen will. Ein Beispiel dafür ist hier z.B. die Unwissenheit des TO über Grafik in Java (AWT, Swing usw) und die Tatsache, dass er denkt, es läge am Compiler. BlueJ/Greenfoot und Zeugs erleichtert evtl. den Einstieg in objektorientierte Programmierung, Java lernt aber man besser über die Insel oder anderen Quellen (ob Online oder in Buchform), die sich mit der Standard-JRE befassen.

Jup. Als Einstieg super, aber hindert. Da muss man dir recht geben :wink: und der code von denen ist grässlich :S

Ich würde es den „Stützrad-Effekt“ nennen: Gerade weil Anfänger gegen die üblichen Problemchen abgepolstert werden, sind diese Umgebungen so ineffektiv. So wie bei Stützrädern fehlt das notwendige Feedback und damit auch das Erfolgserlebnis beim Überwinden der Probleme. Ähnliches gilt für „Laufhilfen“ für Babies, super-schockabsorbierende Laufschuhe oder „moderne“ Methoden zum Lernen der Rechtschreibung (Silbenmethode, Schreiben wie man spricht u.s.w.) - gottseidank scheinen die Schulen damit das Erlernen der Schrift bei den meisten Kindern nur verzögern und nicht verhindern zu können. Bei all diesen Beispielen haben sich „Hilfen“ nachweislich (d.h. durch Studien belegt) als hinderlich erwiesen.

Denkt man etwas genauer darüber nach, ist klar, warum: Krücken sind erst dann sinnvoll, wenn man schon laufen kann. Man kann Anfängern helfen, aber nicht, in dem man das „Fallen“ verhindert, sondern in dem man sie auf Rasen und nicht auf Beton fallen lässt (z.B. ausführliche, verständliche Fehlermeldungen statt Stacktraces). Und in Analogie zum Sprachenlernen: Es ist auch OK, am Anfang weniger und einfachere Worte zu verwenden, aber trotzdem müssen diese richtig verwendet werden. Keiner käme auf die Idee, den Kindern englisch zu lernen, und als Plural „mouses“ und „childs“ durchgehen zu lassen: Die korrekte Form gehört einfach zur Sprache dazu, auch wenn sie „unlogisch“ ist. Und genauso darf man Anfängern statische Methoden (wie main) nicht vorenthalten, weil damit ein grundsätzliches Sprachmittel vorenthalten, und vor allem die wichtige Lektion über die Existenz von Sichtbarkeitsbereichen ausgeblendet wird.

„gottseidank scheinen die Schulen damit das Erlernen der Schrift bei den meisten Kindern nur verzögern und nicht verhindern zu können.“

Leider, leider scheinen sie es bei vielen Kindern, vor allem denen die zu Hause kein Deutsch sprechen, (können, wollen…) fast vollständig zu verhindern.

„genauso darf man Anfängern statische Methoden (wie main) nicht vorenthalten, weil damit ein grundsätzliches Sprachmittel vorenthalten, und vor allem die wichtige Lektion über die Existenz von Sichtbarkeitsbereichen ausgeblendet wird.“

…Und das zum totalen Gedanken Chaos kommt, wenn man auf einmal interfaces, statische methoden, abstrakte Klassen oder enums verstehen will / muss. Ich bin froh das ich Java alleine gelernt habe, und nicht durch die Schule.
Ein Freund von mir, dessen Lehrer diese Sprache einfach komplett falsch beibringt, (so wie du sagtest, wichtige Bausteine ausblenden) und die Schüler ein komplett falsches Verständniss entwickeln. Ich habe ein paar Wochen gebraucht, um
ihm ein bisschen Gui Programmierung (die Basics(!)) beizubringen. Es scheiterte an Objekt erzeugung, Methodenaufrufe und - wer hätts gedacht - Sichtbarkeit.

Die müssen bei dem Lehrer „BlueJ“ benutzen - genau so ein Schwachsinn. Statt es zu erleichtern, erzeugt diese möchte gern ide den eindruck, man könne methoden auf Knopfdruck ausführen sowie Objekte erzeugen, ausserdem könne man ein
Input feld durch einen Parameter erzeugen.

Muss euch da voll und ganz zustimmen :stuck_out_tongue:

Was denkst du denn wie bei mir der Unterricht abläuft? Ich “muss” auch BlueJ nehmen, aber ich mach das halt dann lieber mit jEdit + Terminal. Wie du schon erwähntest, das per Knopfdruck alles möglich ist ist bei uns im Kurs fast genauso verbreitet

Und es dauert wochen bis monate, bis man die die es wirklich wollen zum umdenken gebracht hat…
Naja, wir haben 2 info kurse, mein lehrer ist da zum glück toleranter :slight_smile: → Eclipse Ftw! :wink:
Aber jetzt mal wieder zum Thema zurück ^^

Ihr seid beim Thema ;-). Da das hier eine beliebte Diskussion ist habe ich das Thema abgespalten.

[QUOTE=groggy]Was denkst du denn wie bei mir der Unterricht abläuft? Ich “muss” auch BlueJ nehmen, aber ich mach das halt dann lieber mit jEdit + Terminal. Wie du schon erwähntest, das per Knopfdruck alles möglich ist ist bei uns im Kurs fast genauso verbreitet[/QUOTE]Wenn der Lehrer/Dozent drauf besteht, wage ich mal zu bezweifeln, dass er selbst Java beherrscht. Mit solchen Paketen lernt man nur die Grundlagen der Objekt orientierten Programmierung, aber mit Java hat es nicht sehr viel gemeinsam, nur die JRE, dessen Klassen kaum oder gar nicht zur Verfügung stehen und die Syntax. Ebenso könnte man für Greenfoot auch J# oder C# heranziehen. Frag’ deinen Lehrer mal, welchen Kurs ihr da belegt. Wenn er dann mit “Java” (statt mit “Grundlagen der OOP”) antwortet, würde ich auf Eclipse oder ähnlichem bestehen.
BTW.: lassen sich die Greenfoot-Libs eigentlich auch irgendwo Downloaden und in Eclipse einbinden?

So etwas wäre natürlich gerade für “IT”-Kaufleute interessant. Aber nein, natürlich steckt man die zu den Fachinformatiker Anwendungsentwickler, die richtig Programmieren lernen, aber dadurch nicht voran kommen weil besagte Kaufleute nur Bahnhof verstehen.

Apropos, da hab ich auch noch was zu erzählen: Es gibt bei BlueJ Beispielprojekte -
mit einem haben wir gearbeitet.
Erstens, war der Code von 2002. Da war ich 3. Nichts gegen die Programmierer damals…
Es war so ein Shapes Projekt. Man hat ne „leinwand“ und kann da drauf figuren verschieben und färben,
größe verändern und so weiter.
Dann hab ich mir mal den Code angesehen… Die halten es dort für semantisch sinnvoll, einer Figur zu erlauben, aus sich
selbst heraus die Leinwand nezeichnen zu lassen, sich selbst aus sich selbst heraus von der Leinwand (andere Klasse(!)) zu löschen,
hinzuzufügen und so weiter. Was ist das bitte für ein Schwachsinn? Wenn sich damals jemand den Code angesehen hätte, und sich das gemerkt hätte -
der würde niemals programmieren lernen…

Haha :smiley: meine Rede ^^ @Spacerat soweit ich weis nicht, aber du kannst BlueJ Plugins schreiben :smiley:

[QUOTE=groggy]…aber du kannst BlueJ Plugins schreiben :D[/QUOTE]Nö, kann ich nicht. Liegt aber mehr am System (Prinzip), als am Können. :smiley: