Humboldt Universität Berlin

Mathematisch-naturwissenschaftliche Fakultät II

Institut für Informatik

Hauptseminar Fachdidaktik

                                                                                   

   

Stoffverteilungsplan

Dozent:            S. Spolwig

Studenten:        Dominique Haas (158913)
                        Carsten Günther (157829)


1.   Inhaltsverzeichnis

1.     Inhaltsverzeichnis. 2

2.     Vorwort.. 3

3.     Stoffverteilungsplan.. 5

3.1       Begründung des Stoffverteilungsplans. 8

4.     Theoretischer Teil.. 10

4.1       Sachanalyse. 10

4.1.1        Objektorientierte Softwaretechnik. 10

4.1.2        Die UML. 12

4.1.3        Vorgehensmodelle. 18

4.2       Stundenentwürfe. 21

4.2.1        Die Einführung. 21

4.2.2        Der Software-Lebenszyklus. 23

5.     Praktischer Teil.. 25

6.     Literaturverzeichnis. 25

7.     Anhang.. 25

 


2.   Vorwort

Dieses Dokument ist die Studienarbeit zum Hauptseminar „Fachdidaktik der Informatik“ an der Humboldt Universität Berlin. Aufgabe war es, für das zweite Halbjahr des dreijährigen Informatikkurses der gymnasialen Oberstufe einer Berliner Schule einen Stoffverteilungsplan zu erarbeiten, dessen Ziel die Einführung einer Programmiersprache sein sollte.

Eine weitere Vorgabe war, dass im ersten Halbjahr eine allgemeine Einführung in die Informatik vermittelt wurde. Zusammen mit der „Informationstechnischen Grundbildung“ setzen wir deshalb die nachfolgenden Punkte:

o       Abriss der Geschichte der Informatik

o       Bedienung des PC

o       Grundsätzlicher Umgang mit dem Internet

o       Grundkenntnis über Strukturelemente der Benutzerschnittstelle von Betriebssystem und Anwendungsprogrammen

o       Kenntnis der Bestandteile einer Datenverarbeitungsanlage

o       Zahlensystem (das duale, oktale, hexadezimale Zahlensystem)

o       Zahlendarstellungen und das Rechnen in diesen

o       Darstellung von Zeichen (ASCII, Unicode)

o       logische Verknüpfungen

o       Grundbegriffe (Programm, Algorithmus, Daten etc.)

in unserem Stoffverteilungsplan als gegeben voraus. Aus diesem Grund beschäftigen wir uns dann an den entsprechenden Stellen nur mit der Umsetzung der entsprechenden Sachverhalte in der von uns verwendeten Programmiersprache Java.

Im von uns dargestellten Stoffverteilungsplan geht es um die Einführung der Sprache Java als Werkzeug des Informatikunterrichts. Diese Einführung basiert auf den Konzepten der Objektorientierung. Da wir uns im wesentlichen auf grundlegende Sprachelemente von Java stützen, sollte dieser Plan leicht auf andere objektorientierte Sprachen, wie beispielsweise Delphi, übertragbar sein, wenn dies erforderlich ist.

Neben der reinen Vermittlung der objektorientierten Sprache Java ist es das Anliegen unseres Konzeptes, den Schülern einen ganzheitlichen Überblick über den Prozess des Software Engineering zu vermitteln. Zu diesem Zweck bringen wir in einem überwiegend theoretischem Teil die Themen

o       Phasen der Softwareentwicklung

o       Konzepte der Objektorientierung

o       Methoden des Software Engineering

o       UML als Werkzeug des Entwicklungsprozesses

unter. Diese sind unseres Erachtens für ein Verständnis der „Programmierung im Großen“ notwendig. An dieser Stelle ist es auch unsere Intention, den Schüler einige Arbeitstechniken  der Berufswelt nahe zu bringen. Die Herangehensweise an die Erstellung eines (Software-)
Produkts ist als eine solche Arbeitstechnik zu sehen. Wir sind der Überzeugung, dass die allgemeinbildenden Schulen etwa ab Klasse 9 vermehrt berufsweltvorbereitend tätig werden sollten, um den Schüler den Übergang aus der Schutzzone Schule in die Berufswelt weicher vollziehen zu lassen.

Wir entschieden uns neben persönlichen Präferenzen aus Gründen der Motivation für Java. Diese Programmiersprache ist bei den Schülern beiderlei Geschlechts eng mit dem Begriff Internet verbunden (wenn auch teilweise in einem verklärten Bild). Somit sehen die Schüler schon zu Beginn des Halbjahres einen praktischen Nutzen des angebotenen Lehrstoffs für sich, was unserer Erwartung nach zu einem größeren Engagement der Schüler im Unterricht zur Folge hat. Weiterhin können sich die Schüler kostenlos die aktuelle Version der Program­mierumgebung aus dem Internet downloaden und auf dem heimischen Rechnern schulische Erkenntnisse vertiefen oder eigene Projekte entwickeln. Für unseren Stoff­verteilungsplan folgt daraus, dass wir im Laufe des Halbjahres auf die Besonderheiten der Applet-Programmierung eingehen müssen.

Hinsichtlich der Zeit waren uns lediglich 17 Wochen mit jeweils drei Stunden vorgegeben. Wir gingen deshalb von einer Einzelstunde von 45 min und einer Doppelstunde von 90 min Länge aus. Auch das Niveau der Schüler konnten wir beliebig wählen, wenn auch eine 11. Klasse einen gewissen Anspruch impliziert. Wir entschieden uns deshalb vereinfachend von einer Klasse auf gutem Leistungsniveau bei hoher Lernbereitschaft auszugehen. Hinsichtlich der Geschlechtlichkeit gehen wir von einer Gleichverteilung aus. Im Text werden wir keine geschlechtliche Scheindifferenzierung vornehmen, da dies lediglich die Lesbarkeit ver­schlechtert und keinerlei Information enthält.


3.   Stoffverteilungsplan

OOP, Software engineering  [1 Stunde je Woche]

Woche

Thema / Grobziel / Beispiel

Feinziele

1

Einführung

·    Organisation des Halb­jahres

·    Vorstellung des Spiels „Reversi“

·    schriftliches Abtesten des Vorwissens

 

2-3

Phasen der
Softwareentwicklung

·         Die Schüler sollen die Phasen beschreiben können

(Zahnarztprogramm)

Diskussion

Schülervortrag

Die Schüler können …

¼  die Phase der Analyse beschreiben

¼  die Phase der Systemdefinition beschreiben

¼  die Phase des Entwurfs beschreiben

¼  die Phase der Implementierung beschreiben

¼  die Phase des Tests beschreiben

¼  die Phase der Systemintegration beschreiben

¼  die Probleme der Wartung erklären

4-9

Konzepte der OO

·         Die Schüler sollen Prin­zipien der OO benen­nen und erklären können

(„Vier gewinnt“ als Programm und Spiel)

Gruppenarbeit

Schülervorträge

Lehrer-Schüler-Gespräche

 

Die Schüler können …

¼     den Begriff des Objekts erklären

¼     die Merkmale (Eigenschaften und Verhalten) benennen.

¼     den Begriff der Klasse erklären

¼     Klassen mit dem UML - Symbol darstellen

¼     den Unterschied zwischen der Klasse, dem Objekt und der Instanz erklären

¼     den Begriff Schnittstelle erklären

¼     die fundamentalen Konzepte der OO benennen

¼     den Begriff der Abstraktion in der OO erläutern

¼     den Begriff der Kapselung erklären

¼     den Begriff der Vererbung erklären

¼     die Notwendigkeit des Polymorphismus erläutern

¼     beispielhaft die Funktionsweise von Nachrichten beschreiben

¼     den Begriff der Assoziation erklären

¼     den Begriff der Aggregation erklären

¼     die Vorteile der OO benennen

10-11

1. Klassenarbeit

Besprechung und Rückgabe

 


 

OOP, Software engineering  [1 Stunde je Woche]

Woche

Thema / Grobziel / Beispiel

Feinziele

12-15

OO-Analyse und OO-Design mittels UML

·     Die Schüler können ein reales Problem …

¼ analysieren

¼ modellieren

¼ mittels UML visualisieren

(Getränkeautomat)

Gruppenarbeit

Schülervortrag

 

Die Schüler können …

¼     aus einem realen Problem die Klassen gewinnen

¼     die Verhaltensweisen und Eigenschaften selektieren

¼     die Beziehungen der Objekte untereinander feststellen

¼     aus den gefundenen Fakten ein System modellieren

¼     die Ergebnisse aller Phasen der OOA und OOD mit Hilfe der UML-Diagramme (Klassendiagramm, Sequenzdiagramm und Zustandsdiagramm) visualisieren und dokumentieren

16-17

2.Klassenarbeit

Besprechung und Rückgabe

 

 


Einführung in die OOP mit JAVA [2 Stunden je Woche]

Woche

Thema

Grobziele

1-2

1. Einführung der Entwicklungsumgebung anhand eines vorgegebenen Programms Vier – Gewinnt

Die Schüler können

-   die Entwicklungsumgebung bedienen (compilieren, linken, starten, debuggen).

-   mit dem Debugger arbeiten

-   Fehlermeldungen interpretieren

-   Fehler unterscheiden (Syntax- ,Laufzeit -, logische Fehler)

-    die Funktionsweise eines Compilers erläutern

3

2. Aufbau und Arbeitsweise eines Programms anhand eines vorgegebenen Programms Vier – Gewinnt

Die Schüler können

-    das Sprachkonzept erkennen und anwenden.

-    die Syntax mittels EBNF deuten und lesen (dieses wird immer wieder an geeigneten Stellen (Schleifen, Zuweisungen usw.)  wiederholt.)

-    Kontrollstrukturen erkennen


 

Woche

Thema

Grobziele

4

3. Den Quellcode des Programms Vier – Gewinnt sollen die Schüler analysieren und die Funktionsweise verstehen.

Die Schüler können

-    das Klassenkonzept der SW erkennen.

-    die Objekte im Programm mit dem des Brettspiels identifizieren und in eine Verbindung setzen.

-    die Software Realisierung einer Klasse durchführen

-    Speicherverwaltung sehr grob (Deklaration, Definition, Initialisierung von Objekten)

5-9

Einführung in die imperative Programmierung innerhalb von OOP in Java. Nachdem die Schüler in der Lage sind eine Klasse in Java umzusetzen, wird die imperative Programmierung durch Umsetzung von Methoden und Variablen eingeführt.

Die Erläuterung folgender Themen erfolgt auch immer mit Bezug auf EBNF.

Folgende OOP Themengebiete in Java werden behandelt:

-       Aufbau einer Klasse

-       Variablen (Datenelemente einer Klasse)

-       Methoden

Folgende imperative Programmiertechniken sollen gelehrt werden:

-       Zuweisungen

-       Schleifen

-       Kontrollstrukturen

-       Bedingungen

-       Variablen- und Datentypenkonzept

10 - 12

Das Programm “Vier‑Gewinnt“ soll in ein Spiel “Drei‑Gewinnt“, welches zu dritt gespielt wird, umgewandelt werden. Dazu ist es u.a. notwendig eine eigene Klasse zu erstellen (ableiten).

Folgende OOP  Themengebiete in Java werden behandelt:

-       Konstruktoren

-       new Operator

-       Kapselung

-       Vererbung

-       Polymorphismus

-       Überladen

 

13-17

Projekt Reversi

 

 

 

Der Lehrplan beinhaltet eine deduktive Methode um das Konzept der Objekt Orientierung zu lehren. Das Grundgerüst besteht aus zwei in der realen Welt bekannten Beispielen. Anhand des Brettspiels Vier – Gewinnt werden die Grundkonzepte OOA, OOD und OOP erläutert und geübt. Die Vertiefung der Lerninhalte erfolgt mit dem zweiten Beispiel Reversi. Das zweite Beispiel Reversi ist als Halbjahr begleitendes Projekt zu verstehen. In diesem Projekt sollen die Schüler zum einen parallel zu den im Unterricht erlernten Methoden der OOA und OOD an Ihren Projekt umsetzen und zum anderen in den letzten 5 Wochen selbstständig  an Ihren Projekt die OOP durchführen.

 

Groblernziele:

Ø   Die Schüler sollen die Konzepte der OOA, OOD und OOP kennen.

Ø   Die Schüler sollen ein reales Problem mittels OOA und OOD in ein Modell überführen können.

Ø   Die Schüler sollen ein OO – Modell grafisch (UML) darstellen können.

Ø   Die Schüler sollen ein OO – Modell mittels OOP implementieren.

Ø   Die Schüler können mit einer Software Entwicklungsumgebung arbeiten.

Ø   Die Schüler kennen die Grundelemente und Strukturen der Programmiersprache Java.

Ø   Die Schüler können selbstständig mit Hilfe von Entwicklungsumgebungshilfe, Fachbücher und Internet) neue Klassen für ein Problem zu finden und anwenden zu können.

 

Der letzte Punkt ist ein wichtiger aber zugleich auch ein schwer bzw. sehr zeitintensives Groblernziel. Man sollte ihn als eine Option verstehen, den Schüler mit gewissen Vorkenntnisse erreichen können.


3.1    Begründung des Stoffverteilungsplans

Um das zweite Halbjahr des dreijährigen Informatikkursen nicht nur zur Erlernung einer Programmiersprache zu verwenden, haben wir die unsymmetrische Aufteilung der Unter­richts­stunden je genutzt, um den Unterricht in einen mehr theoretischen und einen mehr praktischen Teil zu splitten. Weiterhin haben wir uns entschlossen, den Fokus bei der Programmiersprache auf die grundlegenden Elemente zu setzen. Diese Elemente werden in ihrer allgemeinen Syntax wie in der von Java gezeigt. Dadurch können die Schüler diese in fast unveränderter Form auch in anderen Programmiersprachen wiedererkennen. Dies macht beispielsweise einen Schulwechsel aus Sicht des Fachs Informatik unproblematischer.

Im praktischen Teil erfahren die Schüler zunächst den Umgang mit dem Werkzeug „integrierten Entwicklungsumgebung“ IDE (Integrated Development Environment). Hierbei lernen sie auch den Probanden, das Programm „Vier gewinnt“ kennen, welches sie dieses Jahr intensiv untersuchen werden. An diesem lernen sie gleich zu Beginn das Grundgerüst einer Java-Applikation kennen. Anschließend erlernen die Schüler im praktischen Teil die imperativen Sprachelemente. Die Datenverarbeitung erfolgt auch bei der OOP im wesentlichen durch die imperative Umsetzung von Algorithmen in den Methoden. In der zweiten Hälfte des Schuljahr widmet sich der praktische Teil den objektorientierten Elementen der Sprache Java.

Zu diesem Zeitpunkt sind den Schülern die Konzepte und die Terminologie der OO bereits aus dem theoretischen Unterrichtsteil vertraut. An dieser Stelle tritt ein wichtiger Punkt unseres Stoffverteilungsplans heraus. Wir konfrontieren die Schüler mehrmals mit den grundlegenden Unterrichtsinhalten. Bei diesen Begegnungen ist stets eine andere Sicht im Vordergrund. Wir beabsichtigen damit eine tiefe und langfristige Verwurzelung dieser Inhalte in den Köpfen der Schüler. Auch bei den nur einmal erwähnten Inhalten gehen wir davon aus, dass sie von den Schülern besser in das so geschaffene Assoziationsgeflecht integriert werden können. Es ist also unsere Absicht, nicht nur kurzfristiges Klausurwissen zu erzeugen, sondern einen nachhaltigen Zuwachs an Wissen und Fertigkeiten bei den Schülern zu erreichen.

Das gleiche Ziel hat eine andere Einrichtung unseres Konzeptes, die im Stoffverteilungsplan nicht sichtbar ist. Während der Schulpraktika konnten wir beobachten, dass einige Schüler das Fach nach dem Klingeln bis zur nächsten Einheit ‚et acta’ legten. Des weiteren verstrichen zu Beginn jeder Stunde etwa zwei bis drei Minuten bis Ruhe einkehrte und die Anwesenheit geführt war. Zudem gab es immer ein paar Schüler, die regelmäßig mit fadenscheinigen Ausreden zu spät kamen. Aus diesen Gründen fängt jede Einheit mit einem Kurztest an. Der Kurztest besteht aus einer Frage mittleren Schwierigkeitsgrads zu Basiswissen oder zu in diesem Halbjahr behandelten Unterrichtsinhalten. Dies können ein Begriff, ein Programm­fragment (5 – 10 Zeilen) oder Bildschirmausschnitt sein. Damit wollen wir eine kontinuier­liche Auseinandersetzung mit dem Unterrichtsinhalten bewirken und dem kurzfristigen Klausurlernen begegnen.


Die Motivation der Schüler, sich am Unterrichtsgeschehen zu beteiligen, hat ebenfalls großen Einfluss auf die Lernergebnisse. Aus diesem Grund haben wir Unterrichtgegenstände gewählt, die den Schülern Spaß machen. Die einfachen Strategiespiele „Reversi“ und „Vier gewinnt“ sind dafür sehr gut geeignet. Sie besitzen wenige einfache Regeln und eine geringe Anzahl einfacher Spielelemente. Wir wählten „Vier gewinnt“, das wir fertig implementierten, für die Erarbeitung der Unterrichtinhalte und die Erstellung des Spiels „Reversi“ als Programm zum Üben und Festigen des Gelernten. Die Aussicht ein brauchbares und vorzeigbares Produkt aus dem Unterricht mitzunehmen, halten wir für einen zusätzlichen Anreiz für die Schüler.

Im theoretischen Teil des Unterrichts behandeln wir anfänglich die Phasen der Software­entwicklung, die alle Vorgehensmodelle beinhalten. Dies bezweckt, den Schülern zu zeigen, welche Stellung die Programmierung bei der Softwareherstellung hat. Danach erlernen die Schüler die Konzepte und Begriffe der OO in Zusammenhang mit der Modellierung eines kleinen Ausschnitts der Welt. Dabei lassen wir die Schüler die Konzepte und Elemente im Programm „Vier gewinnt“ suchen. Gleichzeitig zeigen wir ihnen, dieses Modell mittels ausgewählter Diagramme der UML zu beschreiben. Mit dem folgenden Abschnitt streifen wir mit dem Unterrichtgegenstand leicht die theoretische Informatik (Automatentheorie). Primär dient dieser Block der Festigung des bisher Gelerntem an einem Beispiel und der Einführung des Wasserfallmodells als Beispiel eines Vorgehensmodell. Wir haben trotz seiner Verpönung dieses Modell gewählt, da es in der Literatur für kleine Projekte immer noch die erste Wahl zu sein scheint. Alle anderen Modelle können erst bei größeren Projekten ihre Vorteile ausspielen. Würden wir diese verwenden, bezweifeln wir, das die Schüler sie als sinnvolle Hilfsmittel anerkennen würden. Damit bestünde die Gefahr, dass sie doch das Hacken favorisieren. Der Abschluss des Halbjahres steht ganz der Vollendung des Projekts „Reversi“ zur Verfügung

Dokumentationen zum Unterricht erfolgen auf dem Schulserver. Dort werden auch die Unterrichtsmaterialien zur Verfügung gestellt. Zur Informationsbeschaffung dienen die Onlinehilfen der Produkte. Des weiteren vor allem für die theoretischen Inhalte das Internet. Während der Erstellung des Stoffverteilungsplans haben wir dies hinreichend geprüft.

 

3.2    Begründung des Stoffverteilungsplans für den Java Teil

Warum Java?

Die Menge an Lernstoff die dieser Stoffverteilungsplan vorsieht ist nur dann zu schaffen, wenn die Schüler die Möglichkeit haben zu Hause zu arbeiten. Dies bedeutet, dass die Schüler die gleiche Entwicklungsumgebung zu Hause zur Verfügung haben sollten wie in der Schule. Da Java bzw. forte for java Freeware sind, können alle Schüler zu Hause mit der selben Entwicklungsumgebung arbeiten, Ich halte nichts davon, wenn man in der Schule z.B. Delphi benutzt und somit die Schüler zu Hause auf Raubkopien angewiesen sind. Lizenzrecht ist ein wichtiger Bestandteil des Informatikunterrichts und sollte nicht unterwandert werden.

 

3.2.1   Einführung in die Entwicklungsumgebung {4 Stunden}

In dieser Lerneinheit sollen die Schüler in der Lage sein die Mindestaufgaben einer Entwicklungsumgebung aufzuzählen und zu bedienen. Die Lerneinheit soll deduktiv bearbeitet werden. Zunächst wird das Programm Vier Gewinnt auf den Rechnern der Schüler installiert. Die sollen ohne tiefer den Quellcode zu analysieren den Sourcecode compilieren, debuggen (simulieren) und das entstandene ablauffähige Programm starten. Hierbei ist es wichtig die Grundbegriffe wie z.B. Programm, compilieren, linken usw. wie auch die Grundkonzepte des Programmierens mittels den Schüler in Definitionen zu fassen. Um das Debuggen zu üben, sollen die Schüler einen Fehler in den Code erzeugen und versuchen den mittels dem Simulator zu finden. Als nächsten Schritt veranlasst man die Schüler bei dem jeweiligen Nachbar einen Fehler zu generieren. Natürlich werden diese Schritte für jede Fehlerart (Syntax- ,Laufzeit -, Semantikfehler usw. ) separat behandelt.

Bei der Wahl einer geeigneten Entwicklungsumgebung sollte man folgende Punkte berücksichtigen.

Sie sollte:

Ø       übersichtlich und einfach bedienbar sein.

Ø       die wichtigsten Funktionen logisch aufgebaut haben.

Ø       für die Schüler auch zu Hause erhältlich sein.

Denn dieser Stoffverteilungsplan ist recht kompakt und ohne das die Schüler zu Hause arbeiten können nicht durchzuführen.

 

3.2.2   Aufbau und Arbeitsweise eines Programms {2 Stunden}

Anhand des vorgegebenen Programms Vier – Gewinnt soll den Schülern das Grundkonzept eines Programms erläutert werden. Insbesondere soll auf den Compiler und auf die Syntax eines Programms eingegangen werden. Dabei wird auch auf die Dokumentation der Syntax (EBNF) erläutert.

 

3.2.3    Quellcodeanalyse {2 Stunden}

Diese Lerneinheit sollte in einem engen Zusammenhang mit der Lerneinheit „Konzepte der OOP“ stehen. Das heißt, das zuerst die benötigten Konzepte der OOP behandelt werden und  die Umsetzung dann durch die Quellcodeanalyse erfolgt.

Den Sourcecode des Programms Vier – Gewinnt wird durch die Schüler mittels OOA analysiert. Zunächst wird das Klassendiagramm von den Schülern gemeinsam erarbeitet. Hierbei sollte bereits auf die Trennung vom Algorithmus und den GUI Klassen geachtet bzw. hingewiesen werden. Es wird versucht ein Interaktionsdiagramm in einem Lehrer – Schüler Dialog zu erstellen. Dann werden den einzelnen Klassen und Objekte Aufgaben zugeordnet. Je nach dem wie Leistungsstark die Klasse ist, muss der Lehrer bei den eben beschriebenen Aufgaben mittels Vorgabe helfen. Hier sollte erwähnt werden, dass das Programm mit weniger Klassen besser zu vermitteln sei. Aber um die Konzepte der OO zu verdeutlichen wurde darauf extra verzichtet. Das Speicherkonzept von Variablen und Objekten wird mittel Beispielen des Programms Vier – Gewinnt erläutert. Die Schüler sollen selbstständig die Objekte erkennen und nennen.

 

3.2.4   Einführung in die imperative Programmierung {16 Stunden}

In dieser Lerneinheit sollen die Schüler die Grundprinzipien (Operatoren, Zuweisungen, Anweisungen, Alternativ – Anweisungen und Schleifen) der imperativen Programmierung kennen lernen. Die Modellierungsmethoden der imperativen Programmierung (Flussdiagramm, Strukturdiagramm)  sollen dabei mit eingebunden werden. Auch die Definition und Deklaration von Variablen eines Objektes soll vermittelt werden. In einem geringen Umfang wird das Speicherkonzept mittels Simulationsbeispielen erläutert.

 

3.2.5   Erweiterung des Spiels Vier – Gewinnt um einen Computerspieler

In dieser Lerneinheit wird auf die wesentliche Umsetzung der OOP eingegangen. Die Schüler müssen eine Klasse Computerspieler von der Klasse Spieler ableiten und erweitern, eine eigene Klasse Strategie (nicht im Computerspieler realisiert, damit es besser austauschbar ist) entwickeln und die graphische Darstellung Computerdialog von der Klasse Spielerdialog ableiten. Dabei wird den Schülern gelehrt, wie in Java die OOP Konzepte Vererbung, Kapselung, Polymorphismus und Überladen umgesetzt werden. Bei der Klasse Strategie wird auf den Begriff Algorithmus näher eingegangen und erläutert.

 

3.2.6   Projekt

Es stehen zwei Projekte zur Auswahl. Entweder erstellen die Schüler ein neues Spiel Reversi oder wandeln das Java Applikation Vier - Gewinnt in ein Java Mobile Applikation (Einsatz z.B. für Handy) um. Je nach Leistungsstand der Schüler muss vom Lehrer dementsprechend viel vorbereitet und begleitend geholfen werden. Das Projekt dient in erster Linie zur Vertiefung der erlernten Kenntnisse und weniger um die Erschließung neuer Lerngebiete.

 


4.   Theoretischer Teil

4.1    Sachanalyse

4.1.1   Objektorientierte Softwaretechnik

Die uns umgebende Welt besteht aus Objekten die miteinander in Wechselwirkung stehen. Diese Objekte besitzen Eigenschaften und weisen bestimmte Verhalten auf. Verhalten und Eigenschaften bilden die Merkmale eines Objekts. Objekte mit gleichen Merkmalen werden in Kategorien zusammengefasst. Objekte sind demzufolge Exemplare dieser Kategorien mit einer bestimmten Ausprägung der Eigenschaften (Farbe: rot, grün, blau) oder gegebenenfalls des Verhaltens (sich fortbewegen: gehen, fahren, fliegen). Ein Objekt kann auch eine Kategorie sein. Beispielsweise ist ein Auto ein Objekt der Kategorie Fahrzeug und gleichzeitig eine Kategorie für eine Vielzahl weiterer Objekte. Die wiederum Kategorien darstellen, bis man zum einzigartigen Objekt in dieser Hierarchie wie zum Beispiel dem VW Passat Variant mit der Fahrgestellnummer WVWZZZ08154711 vorgedrungen ist.

Dieser Gedankengang bildet die Grundidee objektorientierter Softwareentwicklung. Mittels Software simulieren wir immer einen kleinen Ausschnitt dieser aus Objekten bestehenden Welt. In unser so gewonnenes Modell nehmen wir nur Objekte, Eigenschaften und Verhalten hinein, die für die Simulation des uns interessierenden Ausschnitts von Interesse sind. Dieser Vorgang wird Abstraktion bezeichnet. Sie kann als Filterung der Objekte verstanden werden, bei der nur die für die Aufgabe relevanten Eigenschaften und Verhalten übrig bleiben.

Die Basis objektorientierter Softwareentwicklung bilden diese Objekte. In der Terminologie der Objektorientierung werden aus den Kategorien Klassen, aus den Eigenschaften Attribute und aus den Verhalten Methoden (bzw. Operationen). Häufig wird synonym für Objekte auch Instanzen einer Klasse verwendet, wenn es sich bei diesen um ein konkretes Exemplar handelt. Die Objekte modellieren fest abgrenzbare Dinge oder Konzepte des realen Anwendungsgebietes. Sie besitzen eine Identität, einen Zustand, der durch die Werte seiner Attribute gegeben ist und ein Verhalten in Form seiner Methoden hat.


Ein weiterer wichtiger Aspekt der Objektorientierung in der Softwaretechnik ist die Kapselung. Durch die Kapselung oder „information hiding“ verbergen die Objekte ihre innere Struktur und Funktionsweise vor anderen Objekten. Damit wird ein direkter Zugriff auf die Attribute (und gegebenenfalls interne Funktionen) verhindert. Um ihre Dienste anderen Objekten zugänglich zu machen, besitzen die Objekte Schnittstellen. Mit Hilfe der öffentlichen Schnittstellinformation über die Methoden und deren Parameter können andere Objekte Attribute lesen oder bearbeiten bzw. Methoden des betreffenden Objekts nutzen. Die einzige Möglichkeit, die Dienste eines Objekts zu nutzen, besteht darin, ihm eine Nachricht zu schicken. Mit dem Versand einer Nachricht ist der Aufruf einer Methode gemeint. Um die Analogie zur realen Welt wieder herzustellen, solle das Radio dienen. Um die Dienste des Objekts Radio zu nutzen, muss ein Objekt Mensch nicht wissen, wie ein Radio die Klänge produziert. Das Objekt Mensch muss lediglich wissen, wie er über die Schnittstelle in Form der Bedienelemente für Lautstärke, Senderwahl, Klang etc. den Zustand des Objekts Radio verändert.

Eine weitere Säule des Gebäudes objektorientierter Softwaretechnik ist die Vererbung. Objekte erben die Merkmale ihrer Klasse und gegebenenfalls auch die von allgemeineren (generelleren) Superklassen. Wie Eingangs dieses Kapitels am Beispiel           
Fahrzeug-Auto-…-VW Passat Variant gezeigt, ist Vererbung ein Konzept mit dem wir unsere reale Welt einteilen (kategorisieren). Hierbei führen wir in Richtung Oberklasse (Superklasse) eine Generalisierung (Verallgemeinerung) und in Richtung der Objekte bzw. Unterklassen eine Spezialisierung durch. Die Superklassen definieren allgemeine und in vielen Objekten benötigte Attribute und Operationen, die bei Bedarf in den Unterklassen überschrieben oder verfeinert werden können.           
Dient eine Klasse nur als Superklasse von der keine Exemplare abgeleitet werden können, ist diese eine abstrakte Klasse. Diese enthalten meist nur Attribute und Schnittstellen­beschreibungen der Methoden. Die Implementierung dieser Methoden muss in den abgeleiteten Klassen erfolgen.

Der Polymorphismus (Vielgestaltigkeit) ist ebenfalls ein elementares Konzept der objektorientierten Softwaretechnik. Es ist die Fähigkeit von Objekten oder Operationen verschiedene Formen anzunehmen. Beispielsweise kann ein Objekt der Klasse Queue (Warte­schlange) Objekte der Klasse Druckauftrag oder Kundennummern verwalten. Der Polymorphismus von Klassen ist in Java nicht vorgesehen und soll hier deshalb nicht interessieren. Für Operationen hingegen ist er auch in Java von Interesse. So gibt es den ad-hoc- Polymorphismus durch das Überladen von Operatoren wie dem „+“. Mit diesem können sowohl zwei Integer, zwei Fließkommazahlen und zwei Strings mit einander verknüpft werden. Je nach dem wird eine Integeraddition, eine Fließkommaaddition oder ein Konkatenation ausgeführt. Beim Parameterpolymorphismus wird die zu verwendende Form der Methode anhand impliziter oder expliziter Parameter ausgewählt.  
Auch hier liefert die Analogie zur realen Welt leicht ein Beispiel. „Er steuert ein Auto“, „er steuert ein Kraftwerk“, „er steuert seine Mimik“ sind nominell dieselben Operationen, aber die eigentliche Handlung bei dieser Operation ergibt sich erst im Kontext mit dem jeweiligen Objekt.

 


4.1.2   Die UML

Die Unified Modeling Language UML ist eine Modellierungssprache zur Unterstützung der Systementwicklung. Ziel der UML ist es, den Entwurfsprozess derart zu organisieren, dass ihn alle Beteiligten (Kunde, Analytiker, Programmierer etc.) verstehen.

Die UML bietet zehn Diagrammtypen an. Diese ermöglichen es das zu modellierende System unter verschieden Aspekten zu betrachten. Die einzelnen Diagrammtypen überschneiden sich zum Teil ganz beträchtlich. Aus diesem Grund ist bei jeder Systementwicklung einzeln zu entscheiden, welche Ansichten auf das System tatsächlich benötigt werden.

Nachfolgend werden die Diagrammtypen kurz und überwiegend grafikbasiert vorgestellt. Die Grafik entstammen der Website der Firma „Orientation in Objects” www.oio.de, die eine sehr gelungene UML-Kurzreferenz beinhaltet.

Mit Hilfe von Stereotypen können bestehende UML-Elemente umfunktioniert werden, wenn ihr System ein spezielles Element benötigt. So lassen sich mehrere Attribute unter einem Namen zusammenfassen oder ein Klassensymbol für Schnittstelle verwenden. Stereotypen sind durch die sie einschließenden spitzen Klammern gekennzeichnet.

Pakete dienen der Gruppierung von grafischen Elementen. Damit lassen sich beispielsweise Teilsysteme darstellen. Notizen dienen der zusätzlichen Erklärung, um Diagramme gegeben­en­falls informativer zu gestallten.

 

Klassenstrukturdiagramm

Das Klassenstrukturdiagramm visualisiert die Klassen mit ihren Attributen und Operationen. Weiterhin zeigt es die Beziehungen zwischen den Klassen untereinander. Die Klasse wird durch ein Rechteck symbolisiert. Das Rechteck ist durch zwei horizontale Linien unterteilt. Oben steht der Klassenname, in der Mitte die Attribute und unten die Methoden.

Will man ein spezielles Objekt (Instanz einer Klasse) darstellen, benötigt man ein Objektdiagramm. Die Darstellung gleicht dem Klassensymbol mit dem Unterschied, dass dessen Attribute und Operationen bestimmte Werte haben und der Name der Instanz vom Klassennamen durch einen Doppelpunkt getrennt unterstrichen wird.

 


Anwendungsfalldiagramm

Anwendungsfälle sind eine Menge von Szenarios über den Einsatz des zu entwickelnden Systems. Jeder beschreibt ein Folge von Schritten. Sie wird vom einem Akteur ausgelöst. Ein solcher Akteur kann ein Mensch, ein anderes System oder die Zeit sein. Das Resultat des Szenarios muss einem Akteur einen Nutzen bringen. Anwen­dungsfälle sind also Konstrukte, die dem Analytiker in Zusammenarbeit mit dem Anwender helfen, den Einsatz des Systems und den beabsichtigen Nutzen zu bestimmen. Anwendungsfalldiagramme dokumentieren diese Szenarios.

Zustandsdiagramm

Mit ihnen kann der Lebenszyklus eines Objektes anhand von Zuständen und Zustands­änderungen beschrieben werden. Objekte ändern ihren Zustand als Folge von Ereignissen. Das Zustandsdiagramm zeigt die möglichen Zustände eines Objektes, deren Übergänge sowie Anfangs- und Endpunkt der Sequenz an. Sie helfen Analytikern, Designern und Programmierern, das Verhalten von Objekten unter dynamischen Aspekten zu verstehen. Es zeigt die Zustände mit Zustandsvariablen und Aktivität sowie die auslösenden Ereignisse.


Sequenzdiagramm

In einem Sequenzdiagramm wird gezeigt die Interaktion der Objekte des Systems über die Zeit. Es stellt somit die zeitliche Dynamik des Systems dar. Die Zeit verläuft als gestrichelte Linie von jedem Objekt (Rechteck) vertikal nach unten. Rechtecke auf der Lebenslinie repräsentieren die Aktivierung des Objekts. Ein Pfeil, der die Lebenslinien verbindet, stellt eine Nachricht dar. Es lassen sich Verzweigung und Iterationen darstellen.

Kollaborationsdiagramm

Dieser Diagrammtyp zeigt ähnlich wie das Sequenzdia­gramm das Zusammenspiel der Objekte. Um Sequenzinforma­tionen darstellen zu können, erhalten die Beschriftungen der Nachrichten Nummern, die die Reihenfolge repräsentiert und durch einen Doppelpunkt von der Nachricht getrennt ist. Man kann sie auch als erweiterte Objekt­diagramme betrachten.

 


Aktivitätsdiagramm

Das Aktivitätsdiagramm ist eine Erweiterung des Zustandsdiagramms. Im Gegensatz zu diesem hat es den Fokus auf den Aktivitäten und ähneln damit dem Flussdiagramm. Es zeigt Schritte, Verzweigungen und Nebenläufigkeiten. Die Aktivitäten werden durch oval verformte Rechtecke repräsentiert. Waagerechte Balken symbolisieren Anfang bzw. Ende von Nebenläufigkeiten. Mittels sogenannter Schwimmbahnen können die Verantwortlichkeiten für Aktivitäten dargestellt werden.

Komponentendiagramm

Das Komponentendiagramm stellt reale, auf einem Computer existierende Software­komponenten, dar. Über die Schnittstelle kann auf die Komponente zugegriffen werden. Es können Beziehungen zwischen den Komponenten gezeigt werden.


Einsatzdiagramm

Einsatzdiagramme zeigen die physische Seite des fertigen Systems. Ein System setzt sich aus Knoten zusammen. Diese werden als Würfel dargestellt. Bei den Knoten unterscheidet man den Prozessor und das Gerät. Im Gegensatz zum Gerät kann der Prozessor Komponenten ausführen. In der Regel bieten Knoten eine Schnittstelle zur Außenwelt.


4.1.3   Vorgehensmodelle

Vorgehensmodelle dienen der Benennung und Strukturierung der Phasen (Tätigkeiten) bei der Software­entwicklung. Das Vorgehensmodell muss Folgendes leisen. Es muss…

¼      die zeitliche Abfolge der Phasen organisieren.

¼      sicherstellen, dass das Entwicklungsteam das zu lösende Problem vollständig verstanden hat.

¼      ein Team mit einem großen Rollenspektrum einkalkulieren.

¼      die Kommunikation zwischen den Beteiligten fördern.

¼      Feedback zwischen den einzelnen Phasen beachten.

¼      Arbeitsergebnisse formulieren, die den Kunden über den Stand der Arbeiten informieren, aber unnötigen Schreibaufwand ausschließen.

¼      in einem kurzen zeitlichen Rahmen ein für den Kunden sinnvolles Produkt erbringen

Folgende Phasen sind in den verschiedenen Vorgehensmodellen in mehr oder weniger ausgeprägter Form enthalten.

Analyse

è     durchführen einer Ist-Analyse der Arbeitsprozesse und des bestehenden Systems, in denen das zu entwickelnde System eingesetzt werden soll (anfallende Daten, Informationsfluss, Anwender, Anwendungsfälle, vorhandene Systeme etc.)

è     durchführen einer Soll-Analyse des zu entwickelnden Systems (Funktionen, Ober­flächen, Antwortzeiten, Bedienbarkeit, etc.)

è     ermitteln der nichtfunktionalen Anforderungen (Hardwareressourcen, MTBF, etc)

Die resultierenden Anforderungen sind nach verschiedenen Kriterien zu beurteilen (ökonomisch, technisch und human). Das Ergebnis ist ein Lasten- und Pflichtenheft. Dieses ist oft auch Vertragsgrundlage.

Systemdefinition

è     Abgrenzung des Gegenstandsbereichs

è     Modellierung der internen Abläufe

è     Modellierung der Datenstrukturen

è     Festlegung des technischen Grundkonzepts

è     Erstellung einer Basisarchitektur

è     Definition der Mensch-Maschinen-Interaktion

Entwurf

è     Zerlegung des Systems in Komponenten

è     Festlegung der Beziehungen zwischen den Komponenten

Ziel dieser Phase soll die Komplexität der Gesamtaufgabe reduzieren, die Änderbarkeit und Wiederverwendbarkeit der Komponenten gewährleisten und die arbeitsteilige Implemen­tierung vorbereiten.

Implementierung

Sie ist die Programmierung der Komponenten entsprechend des Entwurfs. Zur Entwurfsphase besteht keine scharfe Trennung. Die arbeitsteilige Programmierung erfordert die Einhaltung von Regeln sowie die Koordinierung der Implementierung der einzelnen Komponenten.

Testphase

Auf Basis der Spezifikation und Systemdefinition wird das System getestet. Hierbei sind Komponententest, der Integrationstest, Systemtest und der mittels realer Anwendungsdaten durchgeführte Abnahmetest zu unterscheiden.

Systemintegration

Es erfolgt die Übertragung des Systems in seine Einsatzumgebung. Diese Phase beinhaltet auch die Anwenderschulung und organisatorische Veränderung. Zur Systemintegration müssen auch die Dokumentationen fertig werden.

Wartung

Hier werden während der Anwendung des System aufgetreten Fehler behoben. Es werden kleine Funktionsanpassungen vorgenommen. Es erfolgt die Anpassung an neue Hardware und Betriebssystemversionen. Die Grenze zwischen Wartung und Weiterentwicklung ist teilweise nicht auszumachen.

Diese Phase ist nicht zu unterschätzen, da hier durchschnittlich 60% - 80% des Aufwandes anfallen.

4.1.3.1    Code and fix

Es wird gleich programmiert und mündet im Austesten und Zusammenfügen der Bausteine.

4.1.3.2    Wasserfall-Modell

 

Dieses Modell ist gekennzeichnet durch die Einteilung des Entwicklungsprozesses in sequentiell aufeinander folgender Phasen. Ausgangspunkt, Vorgaben, Handlungen und Ergebnisse der einzelnen Phasen sind exakt definiert. Die Ergebnisse der einen Phase sind die Vorgaben der Nachfolgenden. Die meisten Phasenmodelle lassen ein Rückspringen zu früheren Phasen zu, wie es in der Praxis die Regel ist. Diese Modelle sind in der Praxis nach wie vor weit verbreitet. Anhand der Meilensteine genannten Zwischenergebnisse ist eine Terminplanung möglich. Problematisch ist die Vorwegnahme aller Anforderungen und die fehlende Einbindung von Lernprozessen der Teammitglieder während der Software­ent­wicklung. Die Herstellung sowie Einsatz und Wartung werden getrennt betrachtet

4.1.3.3    Spiralmodell

Es ist die Weiterentwicklung des Phasenmodells, das die Schwie­rigkeiten der Ermittlung der Anforderungen und der Lern­prozesse berücksichtigt. Dies erfolgt, indem die Phasen zyklisch mehrfach durchlaufen werden, bis das System fertig ist. Auch hier werden Her­stellung sowie Einsatz und Wartung getrennt betrachtet.

 

 

 

4.1.3.4    Zyklische Modelle

Die Idee hinter diesem Modell ist, dass die erstellte Software nicht mehr als finales Produkt, sondern als Folge von Versionen betrachtet wird. Somit kommt es zu einer Verschränkung von Herstellung und Einsatz. Die Wartung geht dabei in der Pflege der Version und der Entwicklung der Nächsten auf. Auf Seite der Herstellung ist eine hohe Parallelität der einzelnen Tätigkeiten möglich.

 

 

4.1.3.5    Prototyping

In diesem Modell schaffen Prototypen eine Basis der Kommunikation zwischen allen Beteiligten, wobei experimentelle und praktische Erfahrungen zwischen verschieden Entwürfen gesammelt werden können. Prototypen sind bedingt lauffähige Muster des zukünftigen Softwaresystems. Sie lassen sich in Demonstrationsprototypen, funktionale Prototypen, Labor- und Pilotprototypen unterteilen. Je nach Sichtweise unterscheidet man exploratives (Anwendersicht), experimentelles (Entwickler) und evolutionäres (kontinuierliche Weiterentwicklung) Prototyping.


4.2    Stundenentwürfe

4.2.1   Die Einführung

Zeit / Phase

 

LZ

Unterrichtsinhalte

AuS

Medien

Didaktische

Funktion

08:00

ca. 10 min

08:10

 

Begrüßung

L legt die Inhalte des Halbjahrs in seinem zeit­lichen Rahmen dar

L erklärt die organisator­ische Struktur des Unterrichts

L nennt Bezugsquellen für Java

L trägt das Reglement vor

 

LV

 

Beamer

 

Motivation

Organisation

PÜ             L.  Kennt ihr Reversi ! Wenn nicht müssen wir das jetzt ganz schnell nachholen !

I

08:10 Uhr

ca. 20 min

00:30 Uhr

 

LZ 1

L erklärt Reversi und teilt Spiele aus

S spielen Reversi

L erklärt Bauanleitung des Spiels mit Verweis auf das Schulnetz

LV

 

Sp

PA

Reversi

Motivation

Erarbeitung

PÜ             L.  Mit Reversi beschäftigen wir uns das ganze Halbjahr. Ich würde jetzt gern wissen, was ihr noch vom letzten Halbjahr wisst.

II

08:30 Uhr

ca. 15 min

08:45 Uhr

 

 

L teilt Test aus

S stöhnen und bearbeiten den Test

 

AB

Wiederholung

 

Legende der Abkürzungen:

AB       -        Arbeitsblatt                                                               S             -              Schüler

AuS     -        Aktions- und Sozialform                           L             -              Lehrer

PA        -        Partnerarbeit                                                             Sp           -              Spiel

 

Feinlernziele

Die Schüler sollen...
LZ 1    …das Spiel Reversi beherschen

Test

Erklären Sie die nachfolgenden Begriffe.

Programm

Algorithmus

Daten

Variable

Zweierkomplement

Dateisystem

Wie werden folgende Datentypen dargestellt ?

ASCII

Unicode

Integer

Floatpoint

 


4.2.2   Die Phasen der Softwareentwicklung

 

Zeit / Phase

 

LZ

Unterrichtsinhalte

AuS

Medien

Didaktische

Funktion

08:00

ca. 5 min

08:05

 

Begrüßung

Kurztest: Programm, Daten

L gibt das Thema der Stunde

 

 

Tafel

 

Festigung

Motivation

PÜ             L.  Ihr seid jetzt Mitarbeiter der Firma Maxhard Software und werde vom Verband der Zahnärzte beauftragt, ein Programm zur Patientenverwaltung zu entwickeln.

I

08:05 Uhr

ca. 25 min

08:30 Uhr

 

 

 

 

 

 

 

 

 

 

 

LZ 1-2

L gibt Arbeitsauftrag aus (Notwendige Schritte einzeln aufschreiben und an die verdeckte Pinwand heften)

L bestimmt zwei Pinwand­akteure; Klasse soll die gefunden Schritte gruppieren und in eine Reihenfolge bringen

S schreibt Schritte in der herausgearbeiteten Reihenfolge an die Tafel

EA

 

 

 

 

Dis

Pinwand und Zettel

Erarbeitung

 

 

 

 

 

 

 

 

 

Sicherung

PÜ             L.  Gut wir haben sechs Schritte gefunden, aber von deren Inhalt und Bedeutung haben wir nur eine vage Vorstellung. Das müssen wir ändern.

II

08:30 Uhr

ca. 15 min

08:45 Uhr

 

 

S bilden fünf Gruppen die zu jeweils einem Schritt einen Kurzvortrag recherchieren und ein Webdokument erarbeiten

L gibt die Fortsetzung der Recherche als HA auf

GA

 

 

 

 

EA / GA

PC&Internet

Erarbeitung

 

 

 

 

 

Hausaufgabe

 

 


 


Zeit / Phase

 

LZ

Unterrichtsinhalte

AuS

Medien

Didaktische

Funktion

08:00

ca. 5 min

08:05

 

LZ 1-2

Begrüßung

Kurztest: Schritte der Softwareentwicklung

L    erläutert Verlauf der Stunde

 

EA

 

Blatt

 

Festigung

 

Motivation

PÜ             L.  Ihr habt jetzt 10 min Zeit, in den Gruppen die Ergebnisse der Recherchen zusammenzutragen und ein Gruppenmitglied zu bestimmen, das die anderen über euren Schritt informiert.

III

08:05 Uhr

ca. 30 min

08:35 Uhr

 

 

 

 

 

LZ 3-9

 

S tragen Ergebnis der HA in den Gruppen zu einem Kurzvortrag zusammen

S Gruppenmitglieder tragen den anderen S das Ergebnis vor

GA

 

 

SV

eigene Unter­lagen

PC&Internet

Tafel

Beamer

Ergebnis­präsentation

PÜ             L.  Kommen wir noch mal auf die Zahnärzte zurück. Wie seht Ihr jetzt den Gang der Dinge ?

IV

08:35 Uhr

ca. 10 min

08:45 Uhr

 

LZ 3-9

S diskutieren den Inhalt der einzelnen Schritte bezogen auf das Anfangsproblem

Dis

Tafel

Festigung

 

Legende der Abkürzungen:

AB       -        Arbeitsblatt                                                               Ss            -              Schüler

AuS     -        Aktions- und Sozialform                           HA          -              Hausaufgabe

L          -        Lehrer                                                       SV           -              Schülervortrag

An        -        Anwendung                                                GA          -              Gruppenarbeit

EA        -        Einzelarbeit                                                               Dis          -              Diskusion

 


Groblernziel

Die Schüler lernen den Prozess der Softwareentwicklung kennen.

 

Feinlernziele

Die Schüler sollen...
LZ 1    …die Schritte bei der Softwareentwicklung benennen können,
LZ 2    …die Reihenfolge der Schritte benennen können,
LZ 3    …den Schritt der Analyse erklären können,
LZ 4    …den Schritt der Systemdefinition erklären können,
LZ 5    …den Schritt des Entwurfs erklären können,
LZ 6    …den Schritt der Implementierung erklären können,
LZ 7    …den Schritt des Tests erklären können,
LZ 8    …den Schritt der Systemintegration erklären können,
LZ 9    …den Schritt des Entwurfs erklären können.

 

4.2.3   Die Schleifenkonstrukte

Kompletter Unterrichtsentwurf siehe Anhang

5.   Literaturverzeichnis

Rechenberg, Pomberger: Informatik Handbuch, Hanser, 1999

H. Balzert: Lehrbuch der Software-Technik, Spektrum akademischer Verlag, 2000

J.-H. Wieken, T. Hoffmann: Objektorientiertes Design ohne Geheimnis,
Heinz Heise Verlag, 1997

J. Schmuller: Jetzt lerne ich UML, Markt+Technik Verlag, 1999

H.-P. Gumm, M. Sommer: Einführung in die Informatik, Oldenbourg Verlag, 2000

V. Claus, A. Schwill: Schüler Duden Informatik, Dudenverlag, 1997

6.   Anhang

Quellcode des Programms Vier – Gewinnt

Unterrichtsentwurf für Schleifenkonstrukte

 

-----------------

Bemerkung: Einige Bilder sind bis zur Klärung der Nutzungsrechte enrfernt.