{"id":2420,"date":"2013-09-30T13:05:17","date_gmt":"2013-09-30T11:05:17","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=2420"},"modified":"2013-09-30T13:05:17","modified_gmt":"2013-09-30T11:05:17","slug":"sonnenfinsternis-in-der-schule-die-eclipse-ide-erfolgreich-im-informatikunterricht-einsetzen","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2013\/09\/sonnenfinsternis-in-der-schule-die-eclipse-ide-erfolgreich-im-informatikunterricht-einsetzen\/","title":{"rendered":"Sonnenfinsternis in der Schule. Die Eclipse-IDE erfolgreich im Informatikunterricht einsetzen"},"content":{"rendered":"<p>Viel wurde \u00fcber das F\u00fcr und Wider von Java im schulischen Unterricht diskutiert. Fakt ist jedoch, dass heute viele Lehrpl\u00e4ne Java als Programmiersprache auflisten und neue Lehrkr\u00e4fte an den Universit\u00e4ten mit dieser imperative objektorientierte Programmiersprache in Kontakt kommen und sich schon aus diesem Grunde heute f\u00fcr Java entscheiden. Steht die Entscheidung f\u00fcr eine Programmiersprache fest, ist die Wahl der Entwicklungsumgebung (neudeutsch IDE f\u00fcr \u201eIntegrated Development Environment\u201c) nicht einfacher. Im Allgemeinen steht als Basis f\u00fcr die Entwicklung von Java-Programmen das <i>Java SE<\/i> von Sun; es besteht aus Compiler und Laufzeitumgebung (JVM) und einer Reihe Tools. Das Java SE \u2013 fr\u00fcher J2SE \u2013 steht in zwei Spielarten zum Download bereit: Java Runtime Environment (JRE) und Software Development Kit (SDK), auch JDK genannt. (Sun macht es einen mit h\u00e4ufigen Umbenennungen nicht einfach.) Das JDK bildet f\u00fcr den Schulunterricht eine gute Basis, da die kompletten Quellen der Java-Typen beiliegen und diese von Eclipse f\u00fcr die API-Dokumentation benutzt werden.<\/p>\n<p>Ohne zus\u00e4tzliche Installation einer Entwicklungsumgebung erm\u00f6glicht das JDK sofort auf einem Windows oder Unix-System die Java-Entwicklung. Sun liefert die Kommandozeilenprogramme <i>javac <\/i>zum \u00dcbersetzen der Quellen und <i>java<\/i> zum Ausf\u00fchren der Programme mit aus. Eine grafische Entwicklungsumgebung enth\u00e4lt das JDK oder JRE zwar nicht, doch da bei einem zeitgem\u00e4\u00dfen Betriebssystem ein Editor zur Standardinstallation geh\u00f6rt, lie\u00dfe sich dieser zum Schreiben des Java-Quellcodes verwenden. Der Quellcode kann mit dem Editor erstellt und gespeichert werden und eine Kombination von <i>javac<\/i> und <i>java<\/i> auf der Kommandozeile kann zum \u00dcbersetzen und Ausf\u00fchren der Programme genutzt werden. Das hat zwei Schw\u00e4chen, wobei sich die erste auf die Betriebssysteme und Editoren bezieht. Unter Windows gibt es f\u00fcr Textdateien standardm\u00e4\u00dfig nur Notepad, was den Quellcodeautor durch fehlende farbliche Hervorhebung der Schl\u00fcsselworte und Zeichenketten nicht gro\u00dfartig unterst\u00fctzt. Immerhin produzierte der Markt in den letzten Jahren qualitative (auch freie) Alternativen, etwa Notepad++. Unter Linux leben dann gleich mehrere Editoren nebeneinander. Der zweite Makel ergibt sich durch den Kontextwechsel Texteditor und Kommandozeile. Der Wechsel kostet Zeit und bedarf bei \u2013 bedauerlicherweise nicht auszuschlie\u00dfenden \u2013 Compilerfehlern einer l\u00e4stigen Synchronisation zwischen den von <i>javac<\/i> angezeigtem Fehlerzeilen und dem Editor mit anschlie\u00dfender Fehlerbehebung.<\/p>\n<p>Integrierte Entwicklungsumgebungen versuchen das Manko zu beheben, in dem sie die Vorg\u00e4nge Editieren, Refactoring, \u00dcbersetzen, Ausf\u00fchren und Debuggen n\u00e4her zusammenbringen, also in <i>einer<\/i> Software <i>integrieren<\/i>. Soll eine IDE das Team Kommandozeile und Standard-Editor absetzen, folgt die n\u00e4chste Frage: Welches Produkt? Einige Kriterien allgemeiner Art, ohne auf eine Programmiersprache im Besonderen einzugehen, sind:<\/p>\n<ul>\n<li>Entfallen auf die Software Kosten, ist das eine Bremse f\u00fcr die Verbreitung. Idealerweise sollte die Software kostenlos sein, damit Lizenzkosten nicht anfallen. Kommerzielle Produkte k\u00f6nnten Lernende dazu verf\u00fchren, die Software illegal zu kopieren \u2013 Lehrende sind davon prinzipbedingt auch nicht ausgeschlossen. Diese Form der Urheberrechtsverletzungen darf in keinem Fall geduldet werden. <\/li>\n<li>Die Anforderungen an Hardware und Software (Betriebssystem) stimmt mit der Situation in den Schulen \u00fcberein. Nutzen Schulen nicht Windows, sondern Linux oder MacOS, so muss die IDE auf dem System ohne Problem laufen. <\/li>\n<li>Im besten Fall gibt es eine gute Programmdokumentation, die aufzeigt, welche Voraussetzungen die Software hat und wie sie sich starten, bedienen und konfigurieren l\u00e4sst. <\/li>\n<\/ul>\n<p>F\u00fcr Java gibt es nach 15 Jahren Pr\u00e4senz eine gro\u00dfe Anzahl Entwicklungsumgeben. F\u00fcr Industrieprogrammierer eignen sich allerdings nur vier wirklich: Eclipse (Eclipse Foundation), NetBeans (Sun Microsystems), JDeveloper (Oracle Corporation), IntelliJ (JetBrains). In der Entwicklergemeinde hat Eclipse die meisten Anh\u00e4nger und ist die beliebteste IDE \u00fcberhaupt. Aber rechtfertigt dies, auch im Unterricht die Lernenden mit Eclipse zu besch\u00e4ftigen? Sollten nicht vielleicht Alternative in Betracht gezogen werden? Als Argumente f\u00fcr und gegen Eclipse lassen sich anf\u00fchren:<\/p>\n<ul>\n<li>Eclipse ist frei und quelloffen. Es gibt viele Zus\u00e4tze \u2013 Plugins genannt \u2013 etwa f\u00fcr UML-Diagramme. Da Eclipse eine Rahmenwerk ist, welches auch andere Programmiersprachen unterst\u00fctzt, die im Unterricht eine weitere Rolle spielen k\u00f6nnen, wie PHP, muss sich der Lernende nur in eine Umgebung eingew\u00f6hnen. <\/li>\n<li>Eclipse l\u00e4uft unter diversen Betriebssystemen, wie Linux, Mac OS und Windows. Die Installation und der Betrieb l\u00e4uft ohne Eingriff in System-Dateien und ist auch auf Rechnern mit eingeschr\u00e4nkten Benutzerrechten m\u00f6glich. <\/li>\n<li>Die Hardwareanforderungen sind nicht unerheblich. Die Rechner sollten 128 MB Hauptspeicher haben und schneller als 500 MHz sein. Der Festplattenbedarf f\u00fcr ein Java-Projekt liegt inklusive einiger Eclipse-Zus\u00e4tze bei etwa 500 MB. <\/li>\n<li>Es gibt internationalisierte Versionen, insbesondere eine deutschsprachige Oberfl\u00e4che. <\/li>\n<li>Der erste Blick auf die gestartete Oberfl\u00e4che ist mit etwa 20 Symbolen, 10 Men\u00fczeilen und insgesamt 100 Men\u00fceintr\u00e4gen in der Java-Perspektive beunruhigend. <\/li>\n<li>Die Oberfl\u00e4che von Eclipse l\u00e4sst sich flexibel anpassen und \u201eentschlacken\u201c, sodass nur noch wenige Symbole Einsteiger verwirren k\u00f6nnen. <\/li>\n<li>Eclipse hat gegen\u00fcber anderen Umgebungen den Vorteil, dass der Editor besonders Spracheinsteigern hilft, sich mit der Syntax von Java \u201eanzufreunden\u201c. Dazu unterschl\u00e4ngelt Eclipse \u00e4hnlich wie moderne Textverarbeitungssysteme fehlerhafte Stellen. <\/li>\n<li>Vom im Editor geschriebenen zum ausgef\u00fchrten Programm liegt eine transparente \u00dcbersetzung mittels des im Hintergrund ablaufenden Java-Compilers. Eclipse st\u00f6\u00dft beim Speichern automatisch den Compiler an, und aktualisiert in dem Zyklus die Fehlermeldungen. Da die Fehleranzeige unterschiedlich aktuell ist, m\u00fcssen Lernende die Aktualisierung der Anzeige verstehen. <\/li>\n<li>Die IDE bietet notwendigen Hilfen beim Entwickeln, wie etwa automatische Codevervollst\u00e4ndigung. <\/li>\n<li>Eclipse setzt auf dem Java SDK auf und unterst\u00fctzt jede gew\u00fcnschte Java-Versionen. <\/li>\n<li>Lernende k\u00f6nnten mit ihrem Wissen im Umgang mit Eclipse vor den Lehrenden sein, was im Unterricht immer eine Herausforderung ist. Nicht jeder Lehrende f\u00fchlt sich wohl in der Haut, wenn Sch\u00fcler im Stoff weiter sind und unangenehme Fragen stellen, und kann den Wissensvorsprung seiner Lernenden produktiv im Unterricht einbringen. <\/li>\n<li>Mit F1 ist die API-Dokumentation der Java-Typen und Eigenschaften in einem eigenen Unterfenster (in Eclipse <i>View<\/i> genannt) sofort zu sehen. <\/li>\n<\/ul>\n<p>Die Eclipse IDE ist sehr leistungsf\u00e4hig und die Einarbeitung kostet Zeit. Bei jeder Software steht der Lehrende vor dem Problem, eine Produktschulung zu geben, die unterschiedlich lang dauern kann. Eclipse ben\u00f6tigt eine l\u00e4ngere Einarbeitungszeit als ein vergleichsweise einfacher Notepad, und die Zeit geht von der wertvollen Unterrichtszeit ab, die zur Vermittlung wichtiger Konzepte ben\u00f6tigt wird. Nach eigener Erfahrung als Java-Dozent mit drei Jahren Eclipse-Erfahrung in der Lehre kann ich Entwarnung geben, denn die Grundlagen zu Eclipse sind in 45 Minuten vermittelt und das erste \u201eHallo Welt\u201c-Java-Programm implementiert.<\/p>\n<p>Von den Vorteilen von Eclipse m\u00f6chte ich zwei n\u00e4her ausf\u00fchren:<\/p>\n<ul>\n<li>Die syntaktische Pr\u00fcfung parallel zum Schreiben ist eine unglaubliche Hilfe. Vielen Lehrenden ist es schmerzlich bewusst, dass die wertvolle Unterrichtszeit mit der Vermittlung und Korrektur von syntaktischen Dingen wie Semikolon am Ende, geschweiften Klammen und \u00e4hnlichen Dingen dahinschmilzt. Mit roten Schlangenlinien unter fehlerhaften Stellen und einer Gl\u00fchbirne zur automatischen Korrektur k\u00f6nnen Lernende leichter die Fehler erkennen und korrigieren. (Die Gl\u00fchbirne ist aber Fluch uns Segen zugleich: Ein unreflektierter Gebrauch f\u00fchrt dazu, dass Fehler durch Varianten korrigiert werden, die Lernende nicht kennen, und ohne nachzudenken, irgendeine L\u00f6sung akzeptieren, ohne den Fehler selbst erkannt zu haben.) <\/li>\n<li>Eclipse eignet sich f\u00fcr den Schulunterricht genauso wie f\u00fcr ernsthafte Entwicklung. Das erm\u00f6glicht fortschrittliches Arbeiten der Lernenden zuhause. <\/li>\n<\/ul>\n<p>Problemorientierter Unterricht soll nicht hei\u00dfen, dass die Lernenden laufend Probleme mit der IDE haben. Dennoch l\u00e4sst sich Eclipse so vorbereiten, dass Schwierigkeiten minimiert werden. Dazu einige Grundlagen. Nach dem Download von Eclipse unter <i><a href=\"http:\/\/www.eclipse.org\/downloads\/\">http:\/\/www.eclipse.org\/downloads\/<\/a>&#160;<\/i>ist f\u00fcr Windows ein Zip-Archiv auszupacken. Im ausgepackten Ordner befindet sich das Hauptprogramm <i>eclipse.exe<\/i>. Nach dem Start muss ein Pfad f\u00fcr den <i>Workspace<\/i> vergeben werden; das ist ein Verzeichnis, in dem Eclipse die Projekte ablegen kann (aber nicht muss) und Konfigurationsdateien speichert. Einem Workspace k\u00f6nnen beliebige viele Java-Projekte zugeordnet sein, aber eine Eclipse-Instanz kann nur einen Workspace zu einer Zeit ge\u00f6ffnet haben. Wurde Eclipse zum ersten Mal gestartet, folgt ein Willkommens-Bildschirm (der geschlossen werden kann) auf der Arbeitsoberfl\u00e4che \u2013 die <i>Workbench<\/i> genant wird. F\u00fcr die Java-Programmierung muss ein neues Java-Projekt angelegt werden. Dazu ist im Men\u00fc <i>File &gt; New &gt; Project &gt; Java Project<\/i> zu w\u00e4hlen. Nach der Angabe eines Projektnamens im Dialog l\u00e4sst sich eine Java-Klasse in das Java-Projekt setzen. Dazu wird <i>File &gt; New &gt; Class<\/i> verwendet. Nach Eingabe eines Klassen- und Paketnamens kann optional der Schalter f\u00fcr einen Rumpf der main()-Methode aktiviert werden. Nach dem Abschluss des Dialoges \u00f6ffnet sich ein Editor mit der neuen Klasse. An der Stelle ist interessant, den Begriff <i>View<\/i> zu erkl\u00e4ren. Eine View ist alles das, was im Fenster im abgerundeten Bereich zu sehen ist. Dazu geh\u00f6ren: der Package-Explorer, die Outline, die Console, der Editor selbst. Welche Views gerade sichtbar sind, bestimmt die <i>Perspektive<\/i>. Es kann immer nur eine Perspektive zu einer Zeit sichtbar sein und welche das ist, ist in der Symbolleiste oben rechts abzulesen. Im Editor k\u00f6nnen Lernende jetzt das obligatorische System.out.println(&quot;Hallo Welt&quot;); schreiben und mit der automatischen Fehlerpr\u00fcfung experimentieren. Nach dem Speichern und ohne rote Kringel ist das Programm korrekt. Um es auszuf\u00fchren bietet Eclipse mehrere M\u00f6glichkeiten. Eine ist, im Editor das Kontextmen\u00fc aufzurufen und unter <i>Run As &gt; Java Application<\/i> zu w\u00e4hlen. Die Ausgabe steht im Konsolenfenster.<\/p>\n<p><a href=\"http:\/\/www.tutego.de\/blog\/javainsel\/wp-content\/uploads\/clip_image002.jpg\"><img loading=\"lazy\" decoding=\"async\" title=\"clip_image002\" style=\"border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px\" border=\"0\" alt=\"clip_image002\" src=\"http:\/\/www.tutego.de\/blog\/javainsel\/wp-content\/uploads\/clip_image002_thumb.jpg\" width=\"244\" height=\"163\" \/><\/a><\/p>\n<p>Abbildung 1: Eclipse mit Fehleranzeige<\/p>\n<p>Die genannten Schritte zum lauff\u00e4higen Beispiel sind zu vollziehen, wenn man mit einer neuen Installation von Eclipse beginnt. F\u00fcr den Unterricht k\u00f6nnen diverse Dinge vorbereitet werden:<\/p>\n<ul>\n<li>Eclipse ist schon ausgepackt und ein Symbol zum Starten von Eclipse ist im Men\u00fc des grafischen Betriebssystems eingetragen. <\/li>\n<li>Eclipse wurde schon gestartet und ein Workspace zugewiesen. Der Schalter bei der Angabe des Workspace-Pfades wurde gesetzt, dass der Dialog nicht immer wieder kommt. Der Willkommens-Schirm ist schon geschlossen. <\/li>\n<li>Im Workspace gibt es ein leeres Java-Projekt. Idealerweise trennen <i>src\/<\/i>&#8211; und <i>bin\/<\/i>-Order die Java-Quellcode-Dateien und die Java-.class-Dateien. <\/li>\n<li>Das Java-Projekt enth\u00e4lt ein Beispielprogramm mit der Konsolenausgabe, was nur gestartet werden muss. <\/li>\n<\/ul>\n<p>Haben Lehrende dies mit einer Eclipse-Installation schon gemacht, und etwa das Workspace-Verzeichnis unter das Eclipse-Installationsverzeichnis gelegt, kann dieses Eclipse-Verzeichnis einfach auf andere PCs \u00fcbertragen werden. Die PCs \u201eerben\u201c damit diese Standardeinstellungen.<\/p>\n<p>Neben der M\u00f6glichkeit, ein erstes Projekt schon direkt eingestellt zu haben, ist weiterhin interessant, die Oberfl\u00e4che zu vereinfachen. Dazu k\u00f6nnen einige Views wie <i>Hierarchy<\/i> oder <i>JavaDoc<\/i> geschlossen werden. Was genau in eine Perspektive f\u00fcr Views eingerichtet sind, und was zum Teil f\u00fcr Men\u00fcpunkte eingeblendet sind, bestimmen Einstellungen unter <i>Window &gt; Customize Perspective\u2026<\/i><\/p>\n<p>Eclipse bietet eine Reihe von M\u00f6glichkeiten, die jeden Informatikunterricht bereichern. Dazu z\u00e4hlen insbesondere die Refactoring-M\u00f6glichkeiten, um Bezeichner umzubenennen oder automatisch Schnittstellen aus Java-Klassen zu extrahieren. Die IDE ist sehr leistungsf\u00e4hig, m\u00e4chtiger als das, was im Unterricht je angesprochen werden k\u00f6nnte. Dennoch finden Nutzer immer wieder neue Kniffe, die sie gerne mit anderen teilen und die sie zum Erforschen anregen. Insbesondere die Gl\u00fchbirne, die Fehler automatisch korrigiert, hat es Lernenden meiner Erfahrung nach angetan. Zu den Eclipse-Erweiterungen \u2013 den Plugins \u2013 geh\u00f6ren Produkte wie das Eclipse Web Tools Platform (WTP) das im B\u00fcndel <em>Eclipse IDE for Java EE Developers<\/em> eingebracht ist, die Eclipse erweiterte Funktionalit\u00e4t im Bereich XML, Datenbanken oder Web-Entwicklung geben. Mit dem WPT lassen sich etwa XML-Dokumente mit syntaktischer Hervorhebung und paralleler Fehlerpr\u00fcfung schreiben, Datenbankverbindungen aufbauen und Tabellen visualisieren und einfache Web-Anwendungen mit JavaServer Pages schreiben. Das auch frei verf\u00fcgbare Plugin Omondo (<i><a href=\"http:\/\/www.omondo.com\/\">http:\/\/www.omondo.com\/<\/a><\/i>) gibt Einblicke in die UML-Entwicklung und kann Klassendiagramme mit Quellcode synchron halten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Viel wurde \u00fcber das F\u00fcr und Wider von Java im schulischen Unterricht diskutiert. Fakt ist jedoch, dass heute viele Lehrpl\u00e4ne Java als Programmiersprache auflisten und neue Lehrkr\u00e4fte an den Universit\u00e4ten mit dieser imperative objektorientierte Programmiersprache in Kontakt kommen und sich schon aus diesem Grunde heute f\u00fcr Java entscheiden. Steht die Entscheidung f\u00fcr eine Programmiersprache fest, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"class_list":["post-2420","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2420","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=2420"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2420\/revisions"}],"predecessor-version":[{"id":2421,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/2420\/revisions\/2421"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=2420"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=2420"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=2420"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}