Thesen Head

These 5 zu These 6

Verwende didaktisch konzipierte Klassenbibliotheken

 

Home   

 


Thesen Text

Der Programmieranfänger ist bei beim Lesen von längeren Programmen (mit mehr als 10 bis 20 Zeilen Code) sehr oft überfordert und nicht in der Lage, wichtige Teile von weniger wichtigen zu unterscheiden. Er verirrt sich besonders dann in einem „Wald“ von Code, wenn das Programm eine graphische Benutzeroberfläche (ein Graphics User Interface, GUI) aufweist. Verglichen mit dem algorithmischen und damit inhaltlich interessanten Teil ist nämlich das GUI mit seiner typischen Ereignissteuerung codeintensiv. Andererseits wäre ein Verzicht auf ein GUI ein Rückschritt in die Urzeiten der Kommandozeilen-Programme und für die Motivation des Lernenden, der sich an maus- und menugesteuerte Benutzeroberflächen gewöhnt hat, verheerend. Ein Ausweg aus diesem Dilemma ist möglich, wenn man geeignete didaktisch konzipierte Klassen einsetzt, die dem Anfänger ebenso natürlich erscheinen wie die vordefinierten Klassen der Programmiersprache. Besonders motivierend ist der Einsatz von Bildschirmgrafik, denn für viele Menschen sagt ein Bild mehr als tausend Worte.

Im Buch wird aus diesen Gründen zu Beginn eine Klasse mit Schildkröten (Turtles) eingesetzt, die sich auf dem Bildschirm bewegen. Da man davon ohne weiteres mehrere Exemplare erzeugen kann, eignet sich die Turtleklasse hervorragend für die Einführung in die objektorientierte Programmierung (OOP). Eine auf dem Bildschirm sichtbare Schildkröte wird von jedermann ganz natürlich als ein Objekt aufgefasst, das Eigenschaften (Farbe, Blickrichtung, usw.) und Verhalten (gehe vorwärts, drehe nach links, usw.) besitzt. Zudem eignet sich die Richtungsgrafik der Turtles hervorragend, um rekursive Muster (Fraktale, usw.) zu erzeugen.

Obschon die Turtle mehr als ein Spielzeug ist, kann eine allzu einseitige Ausrichtung des Lehrgangs auf die Turtlegrafik auch kontraproduktiv sein, da der Lernende, gerade wenn er besonders begabt ist, bereits nach kurzer Zeit aus dem methodisch wohlpräparierten Glashaus ausbrechen möchte, um sich mit den professionellen Programmierern zu messen. Daher wird die Unterstützung durch die didaktischen Klassenbibliotheken sukzessive reduziert und im zweiten Teil des Buches nach der Behandlung der Swing-Klassen nur noch wenig eingesetzt. Ein Spezialfall ist die Klasse Console, die sich immer wieder für alle Arten von Tests, schnelles Ausprobieren von Codeteilen (Prototyping) und Demonstrationen hervorragend eignet.

Bei der Behandlung der Konzepte der OOP wird eine gewisse Vollständigkeit angestrebt. Im Gegensatz dazu wird kein Versuch unternommen, eine Übersicht über die mehr als 2000 Klassen umfassende Java-Bibliothek ( JFC, Java Foundation Class) zu vermitteln oder einzelne Klassen daraus möglichst vollständig zu beschreiben. Bekanntlich „erdrückt“ die riesige Klassenbibliothek der JFC den Anfänger mehr, als dass sie ihn anspornt. Allerdings werden wichtige Klassen der JFC dann besprochen und verwendet, wo dies wegen der Praxisrelevanz notwendig erscheint. Es ist eine wichtige Zielsetzung des Buches, den Lernenden im Laufe des Studiums in die Lage zu versetzen, seine spezifischen Probleme mit den im Buch erworbenen Kenntnissen von Java und unter Beizug der Dokumentation der JFC ohne Verwendung der Hilfsklassen selbständig zu lösen.