[ Post: a.hermes@fz-juelich.de]

Gymnasium Zitadelle der Stadt Jülich- Fachbereich Informatik

 

Im Hinblick auf das zentrale Abitur ist derKurs Informatik neu gestaltet worden. Große Änderungen betreffen den Einstieg und die Kapitel zu Cient-Serveranwendungen und zur Stufen zwischen Soft- und Harsware. Letzterer orientiert sich unter anderem an der Maschine TOY von Sedgewick, Princeton University und kann die von Segewick vorgestellten Programme ausführen. Er existiert in zwei Versionen: HeXToy für den GK, AssemblerToy für Fortgeschrittene, toy.rar. In einer einfachen Version steht HexToy als Applet hier zum Test zur Verfügung. Sämtliche Materialien und ein vollständig ausgearbeiteter Kurs werden veröffentlich und dürfen für nicht kommerzielle Zwecke im Unterricht enigesetzt werden.

Teile der Materialien haben ihren Platz vom Gymnasium Zitadelle zum Fachseminar Jülich gewechselt.

Die Adresse lautet: http://studsemjuel.nw.lo-net2.de/if/

Jülich, den 30.11.2007
Alfred Hermes

Gepackt oder als PDF

  1. BlueJTurtle (6a) deutsch
  2. BlueJTurtle (6a) english
  3. Komponentenbasierung: Informatiktag NRW in Aachen 2005
  4. Modellrechner SOM als Applikation samt Tutorial
  5. Die neuen Modellrechner HeXToy und AssemblerToy mit Abiturrelevanz
  6. Buch zu HeXToy (Stufen zwischen Soft- und Hardware, 64 Seiten) - PDF
  7. Basiskurs als PDF-Datei (1. Jahr, 260 Seiten) (BlueJ, Turtle, Prototypen, Sortieren, genetische Algorithmen,...)
  8. Vorbereitung auf das Zentralabitur (im Test)

Index (Auswahl)

A: Abstrakt, ADT ,Aktienanalyse, Animation (Ufo, n.l.), Automat, Autostereogramme
B: Binärbaum , BlueJ-Turtle
C: Client
D: Datenstrukturen , Datenstrukturen linar (Text, ZA NRW), Daumenkino
E: Ein/Ausgabe, Einführung, Entwurfsmuster, Ereignisse (Einführung)
F: Fragebaum
G: Gästebuch, Genetische Algorithmen (MVC-Muster, UML) , Graphen
H: Handlungsreisender
K: Komponentenbasierung, Konvexe Hülle, Kryptografie
L: Labyrinth
M: Modellmaschine HeXToy , Modellrechner Som, MouseListener, MVC (Info, Uhr), MVC: selbst programmiert
N: Nebenläufigkeit (n.l.)
O: Objektinteraktion, OOP
P: Philosophenproblem (n.l.)
R: Rechenbaum, Rekursion, Rekursiver Abstieg, Rucksackproblem (0/1), Rundreiseproblem
S: Server, Simulation (Parkhaus, n.l.), SOM, Sortieren ,Stapelrechner, Suchbaum, Syntaktische Analyse
T: Turtlegrafik
U: Uhr (n.l.)
V: v. Neumann-Rechner
Z: Zähler(n.l.), Zelluläre Automaten

Informatik mit Java
Die Reihenfolge der Inhalte entspricht nur bedingt der zeitlichen Abfolge im Unterricht. Man betrachte die Beispiele als Sammlung von Programmierbeispielen. In meinem Unterrricht hat sich als Einstieg eine Einführung in die objektorientierte Modellierung und Programmierung mit Hilfe von BlueJ bewährt. Die Lernenden erfahren von Anfang an die Bedeutung von Klassen und Objekten, von Methoden und Attributen und Kommunikationsmöglichkeiten zwischen Objekten. Eine von mir eigens für BlueJ entwickelte Plottergrafik (BlueJ-Turtle) dient der Visualisierung algorithmischer Vorgänge. Ein Modellrechner demonstriert, wie Basiselemente höherer Programmiersprachen auf eine v.Neumann.Maschine abgebildet werden können. Neben dem Applet existiert eine Applikation mit 13teiligem Lehrgang, die bei mir erfragt werden kann.

Die Java-Applets können nur mit Java fähigen Internetnavigatoren (wie z.B. Netscape, Mozilla,..) betrachtet werden.

Zu einer Reihe der Beispiele finden Sie ausführliche Informationen in LogIn (Beispielsammlung). Bei der Auswahl öffnet sich ein zweites Fenster, das Sie schließen sollten, um zu dieser Seite zurückzukehren.

Die folgenden Beispiele sollen beim Einstieg in Java und in Themen der Informatik helfen.


Liebe Leserin, lieber Leser!

Ihr Interesse an Java und an unserer Seite freut uns sehr. Wir stellen Ihnen nicht nur ausgewählte und erprobte Unterrichtsmodelle zur Verfügung, sondern auch den kompletten Quellcode. Sollten Sie an uns Fragen zu den Beispielen stellen, werden wir diese so weit wie möglich beantworten. Wir bemühen uns,  ein Curriculum für einen zwei- bis dreijährigen Lehrgang zu erstellen und mit Inhalten zu füllen, das den  neuen Möglichkeiten der Sprache Java gerecht wird und traditionelle Inhalte nicht vernachlässigt. Dabei sollen moderne Paradigmen behandelt werden. Dazu zählen neue Formen der Dokumentation und des Entwurfs wie UML-Anätze, MVC-Muster und unterschiedliche Lösungsansätze zu spezifischen Problemen aus dem Bereich der Informatik. Unterrichtadäquate Beispiele zu Fuzzy-Control, zu genetischen Algorithmen zu UML, zu nebenläufigen Prozessen, zur Einrichtung und Verwendung eines HTTP-Servers (Beans, Datenbanken, dynamische Web-Programierung, Cookies), und zur Komponenten basierten Programmentwicklung liegen vor und werden in der Lehrerfortbildung in Informatik der Bezirksregierung Köln behandelt.

Im Klettverlag ist ein Themenheft zu Java (ISBN 717745, Hermes/Schumacher, 1999) erschienen. Dort können Sie viele der Beispiele mit Erläuterungen nachlesen. Der Band führt in Java ein und dient als Nachschlagewerk. Er kann die Lernenden  bei der Behandlung der Algorithmik,  der Projektentwicklung und des objektorientierten Designs im Informatikunterricht begleiten. Das Buch enthält Aufgaben- und Projektideen zur Gestaltung des Informatikunterrichts.

 Alfred Hermes



Themen für die Jahrgangsstufen 11-13
11.1 11.2 12 13

Informatik im ersten Jahr
Einführende Beispiele

Demonstrationen zum Einstieg in die Ereignisorientierung

Hallo-Welt-Beispiele
Die Beispiele dieses Lehrgangs zeigen, wie  Mausereignisse (Klicken, die Maus bewegen oder die Maus bei gedrückter Taste führen) durch die Abfrage der Mauszeigerpositionen ausgewertet werden können. Unter anderem demonstriert die Serie eine einfache Form des Ladens und Positionierens von Photos.

Bevorzugte Alternative (Von der Modellierung zur Programmierung mit BlueJ und der BlueJ-Turtlegrafik)

Einführung in die Objekt orientierte Modellierung mit BlueJ (neu)
(nach: Barnes, Kölling; Objektorientierte Programmierung mit Java, Kapitel 1 bis 3)
Klassen, Objekte, Methoden, Interaktion zwischen Objekten,

Einstieg in die Programmierung mit der Turtle-Grafik

 Die "Turtle"- (Igel-) Grafik eignet sich zur Einführung von Bedingten Anweisungen, Schleifen, einfachen nebenläufigen Prozessen (timer), Auswertung von Mausereignissen(ab Vers. 6A, Jan. 2004)  und Rekursion. Eine spezielle "BlueJ_Turtle" mit entsprechenden Möglichkeiten liegt vor (download: BlueJTurtle.zip).
Autostereogramme (elementar), strukturierte Version(LogIn)

Autostereogramme faszinieren durch die versteckte 3-D-Darstellung. Prinzipiell genügen zu ihrer Herstellung einfache Kontrollstrukturen und einige Methoden der Klasse Graphics. Sie könnnen aber auch mit der BlueJ-Turtle (ab Vers. 5A) erstellt werden. Man nutze die Methoden zum Auslesen von Pixelfarben, zum Zeichnen von Pixeln oder zum Kopieren von Pixeln. Anstatt Pixelfarben am Bildschirm auszulesen, kann die Kopie an einem Modell, wie z.B. einer Matrix von Farbwerten, erfolgen und unter Anwendung der MVC-Architektur dargestellt werden. Man beachte, dass Bildschirmkoordinaten und Matrixfelder vertauscht angesprochen werden.

Kryptographie
Verschlüsselungsverfahren führen zum Thema Sicherheit in Datennetzen und bieten gute Übungsmöglichkeiten im Umgang mit Zeichenketten (String) und Dateien. Sie finden ein Beispiel einer monoalphabetischen Substitution und ein Programm zum RSA-Verfahren (mit Folienvorlagen zu RSA und Sicherheit).


Aktienanalyse

Prototyp einer Ein/Ausgabemaske (erweiterbar)
Es wird eine flexible Maske für standardisierte Beispiele vorgestellt. Sie bietet bis zu drei Eingabefenster mit Beschriftung, ein Listenfeld als Ausgabe, zwei Schaltflächen mit überschreibbaren Funktionen und die Möglichkeit der Darstellung einer Überschrift. Die Maske ist erweiterbar.
Sortieren
    Sortierverfahren, Schleifen, Methoden, Rekursion, Nebenläufigkeit
    MVC-Konzeption

 Behandelt werden die Verfahren durch Austauschen, Vertauschen durch Einfügen, so wie die rekursiven Verfahren durch Mischen und der Quicksort. Zur Umsetzung in BlueJ ersetze man JPanel durch JFrame und übertrage die Größenbestimmung in die Rahmen. Die Steuerung muß nicht mit Steuerelementen erfolgen, wenn in der BlueJ-Umgebung die Methoden direkt aufgerufen werden. In diesem Fall benötigt man keinen nebenläufigen Prozeß.
Die Verwendung der Reflection-Klasse ist als Zugabe gedacht! (download: BlueJ-Version) (Start der BlueJ-Version als Applet)

Ein endlicher Automat (Reihung, Thread)
Dieses Beispiel eines endlichen Automaten zur Überprüfung einer korrekten Zahlendarstellung implementiert den endlichen Automaten als nebenläufigen Prozess. Der Prozess verwendet statische Variablen, die in der Dokumentation zum Programm erläutert werden. Den nebenläufige Prozess können Sie auch leicht durch eine Prozedur ersetzen, wenn Sie die statischen Variablen durch globale ersetzen. Am Ende des ersten Informatikjahres dürfte dieses Thread-Beispiel den Lernenden zugemutet werden können, spätestens am Anfang des zweiten Jahres. Das Beispiel demonstriert den Aufbau der Präsentation eines Kleinprojektes, wie es von Schülerinnen und Schülern erwartet werden sollte.

Lineare Zelluläre Automaten (Reihung, LogIn)

Die Beispiele entstammen dem Buch von Stephen Wolfram: a new kind of science, 2001. Sie zeigen, wie mit einfachen Übergangsregeln komplexe Strukturen erzeugt werden können. Mathematischen Unendlichkeit muss simmuliert werden.

Folgen
    Vererbung, Erweiterbarkeit, OOP

Die Zahlenfolge als abstrakte Klasse. Überschaubare Beispiele zeigen exemplarisch objektorientierten Entwurf und objektorientiertes Programmieren.


Syntaktische Analyse und Berechnung arithmetischer Ausdrücke
    Ausdrücke werden nach dem Verfahren des rekursiven Abstiegs analysiert

Entwurfsmuster/Algorithmen

Das Beispiel der Anzeige einer Uhrzeit führt in das Entwurfmuster MVC ein. Es handelt sich um einen Ansatz, die Komponenten eines Programms in möglichst viele selbständige Abschnitte zu zerlegen. "M" steht für "model", "V" für "view" (Ansicht) und "C" für "control" (Steuerung der Eingabe). Das Prinzip wird auch in den Beispiel "Konvexe Hülle" angewendet.
 
  • Genetische Algorithmen (MVC-Muster, UML) (2. oder 3. Jahr, Projektphase)

  • Gezeigt wird ein sehr vereinfachtes Modell eines genetischen Codes und eines Populationsmechanismus, der auf Kreuzung, Mutation und Angepasstheit an die Umwelt beruht. Ein Demonstrationsprogramm führt Kreuzung und Mutation vor. Als Anwendung des Modells wird ein Funktionsmaximum derart bestimmt, dass die Individuen (x-Werte) sich nach mehreren Generationswechseln um das absolute Maximum versammeln. Der Funktionswert wird mit der Überlebenschance eines Individuums assoziiert.Die Benachrichtigung der Ansicht erfolgt nach jedem Generationswechsel nach dem MVC-Muster. Die Zusammenhänge zwischen Population und Individen sind als Komposition (nach UML) entworfen.


    Informatik im zweiten Jahr
    Thema: Nebenläufige Prozesse (Threads)
    Zählen
    Drei Zählmotoren können unterbrochen und wieder in Gang gesetzt werden. Jeder Motor ist als Thread implementiert. Aktionswächter sorgen für die richtige Steuerung.
    Seit Java 1.2 gelten die Methoden suspend(), resume() und stop() als veraltet bzw. "als mit Vorsicht zu behandeln" , da sie in bestimmten Situationen sogenannte "Deadlocks" nicht verhindern. Es können Zwänge entstehen, die das System lahm legen. Situationen solcher Art treten allerdings nur dann auf, wenn "Threads" sich gegenseitig beeinflussen.
    Im Beispiel aus dem Themenheft Java, Seiten 68-72,  findet die Beeinflussung ausschließlich durch je einen einzigen individuellen Aktionswächter statt, der ordnungsgemäß funktioniert.
    Wir zeigen Ihnen im Demonstrationsprogramm zwei Lösungsansätze. Der erste benutzt Synchronisation und die Methoden notify() und resume(), die im Themenheft Java erst auf der Seite 98 vorgestellt werden. Der zweite entspricht dem Vorschlag im Javaheft. Beide Programme funktionieren einwandfrei unter JDK ab 1.1.

    Sie sollten im Unterricht auf die eingeschränkte Nutzung der Methoden suspend() und resume() hinweisen. Sie können aber auch  im Einführungsbeispiel ganz auf die Aktionswächter und die fraglichen Methoden verzichten, die Zähler ohne die Möglichkeiten des Stoppens und Neustartens verwenden und auf Synchronisation später eingehen. Der Demonstration der Nebenläufigkeit der drei Prozesse tut dies keinen Abbruch.

    Uhr
    Eine Digitaluhr erscheint am Bildschrim. Es ist möglich, von zwei Formaten eines auzuwählen. Während der Anzeige prüfen Aktionswächter eventuelle Mausaktivitäten. Die Uhr ist als Thread implementiert.

    Daumenkino
        Ein Animationsmotor liefert Bilder auf die Leinwand und gaukelt Bewegung vor.

    Ufo
        Threads steuern "Lichtkugeln" am Mitteleuropäischen Herbsthimmel

    Parkhaus
        Nebenläufige Prozesse bei der Zuweisung von Parkplätzen.
        Simulation mit 10 Plätzen und zwei Einfahrten
        Produzenten/Konsumenten-Modell

    Rekursive Standardverfahren

    Datenstrukturen
    Stapel
    Der Kellerspeicher ist in Java bereits integriert (Stack). Trotzdem ist es sinnvoll, diesen abstrakten Datentyp selbst zu implementieren. Der Stapelrechner ist ein Anwendungsbeispiel. Der Keller bzw. Stapel ist allgemein mit Interfacetechnik implementiert und läßt die Verwaltung beliebige Java-Objekte zu. Im Gegensatz zum Binärbaum handelt es sich hier - in Anlehnung an die von Java bereit gestellte Klasse Stack - nicht um einen funktionalen Ansatz, der allerdings leicht zu bewerkstelligen ist.
    Graphen

    Bestimmung der konvexen Hülle

    Das Beispiel zeigt, wie Punkte modellartig verwaltet werden können und demonstriert die entsprechende Sicht am Bildschirm. Der Ansatz orientiert sich am MVC-Muster (model view control). Das Beispiel verwendet Vererbung, Abstrakte Datentypen und das Prinzip der Erweiterung. Der Algorithmus zur Bestimmung der konvexen Hülle beruht auf dem sogenannten Einwicklungsverfahren. Das Beispiel ist offen für schnellere Lösungen (z.B. Graham-Scan). Das Programm läßt sich als Applikation Applikation aund auch als Applet abrufen.

    Der Modellrechner SOM - die J.v.Neumann-Maschine

    Der Modellrechner als Applet

    Vorgeplante Beispiele können im Internet geladen und ausprobiert werden. Auch das Edieren und Ausprobieren eigener Programme ist möglich.

    Tutorial

    Ein Online-Kurs mit 13 Lektionen (vom linearen Programm bis zur Rekursion, von einfachen Daten bis zu Objekten)

    Modellrechner SOM als Applikation samt Tutorial

    Verzeichnis: modellrechner/som.jar


    Der Modellrechner HeXToy nach Sedgewick/Wayne

    Der Modellrechner HeXToy als Applet

    Vorgeplante Beispiele können im Internet geladen und ausprobiert werden. Auch das Edieren und Ausprobieren eigener Programme ist möglich. Die Modellmaschine orientiert sich an Sedgewick/Wayne Princeton

    Die Modellrechner als Applikationen für GK und LK

     



    Client-Server-Anwendungen

    Die Anwendungen sind  Applikationen, die über Internet nicht gestartet werden können. Sie können sich die Quelldateien hier ansehen und auf Ihren Rechner oder Ihr Rechnersystem übertragen, um sie auzuprobieren. Sie finden Anleitungen, wie die Client-Server-Anwendungen zu starten sind.


    Im Schuljahr 2004/2005 findet eine einjährige Lehrerfortbildung (alle 2 Wochen dienstags) der Bezirksregierung Köln im Fach Informatik am Gymnasium Zitadelle in Jülich statt. Verwendet wird die Programmiersprache Java mit Blue-J.

    ( Elektronische Post: a.hermes@fz-juelich.de)
    Zum Anfang