Unterrichtseinheiten für das Ergänzungsfach Informatik

1. Türme von Hanoi

Thema:Rekursion
Zeit:1-2 Lektionen, je nach Vorwissen
Unterrichtsform:Arbeitsauftrag
Programmiersprache:Java
Lizenz:GPL 2.0
Türme von Hanoi Die Aufgabe besteht darin, die roten Scheiben vom linken grünen Fundament auf das mittlere grüne Fundament zu schieben. Dabei gelten folgende Regeln:
  1. Es kann nur eine Scheibe auf einmal verschoben werden.
  2. Eine Scheibe darf nur auf eine andere Scheibe gelegt werden, wenn sie kleiner ist als die andere Scheibe.
  3. Das rechte Fundament darf als Zwischenablageplatz benutzt werden.
Quellcode herunterladen

2. Labyrinth

Thema:Problemlösen
Unterrichtsform:Arbeitsauftrag
Programmiersprache:Java
Zeit:1-2 Lektionen, je nach Vorwissen
Lizenz:GPL 2.0
Bemerkungen:Je nach IDE wird das Programm in einem anderen Verzeichnis relativ zu den Verzeichnissen, in denen die Bilder und die Geräusche abgespeichert sind, ausgeführt. Daher müssen folgende Zeilen evt. angepasst werden:
Labyrinth.java, Zeile 209
Ton.java, Zeile 44
Die gewählten Verzeichnisse sind mit Netbeans 6.0 und 6.1 kompatibel.
Labyrinth Die Katze Neko soll durch das Labyrinth laufen, dem ein Quadratraster zugrunde liegt. Mit jedem Schritt kann sie sich in diesem Raster ein Feld nach rechts, oben, links oder unten bewegen, sofern das Labyrinth dies zulässt.
Die Größe des Labyrinths kann eingestellt werden. Bei jedem Programmstart (oder nach Auswahl des Menüpunkts "neu" im Menu "Datei") wird ein neues zufälliges Labyrinth gezeichnet.
Es können sowohl absolute Richtungsangaben (rechts, oben, links und unten aus Sicht der Person, welche den Bildschirm betrachtet) als auch relative Richtungsangaben (rechts, vorne, links und hinten aus Sicht von Neko) benutzt werden.
Wenn Neko den Befehl erhält, in eine Richtung zu laufen, die nicht möglich ist, bleibt er sitzen und miaut. Dasselbe passiert, wenn Neko mehr als viermal am gleichen Ort vorbeikommt.
Quellcode herunterladen

3. Quicksort-Animation

Thema:Quicksort
Zeit:ca. 15 Minuten
Unterrichtsform:Selbstständiges Theoriestudium
Programmiersprache:Java
Lizenz: Permission to use, copy, modify, and distribute this software and its documentation for NON-COMMERCIAL purposes and without fee is hereby granted provided that this copyright notice appears in all copies.

AUTHORS MADE NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. AUTHOR SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
Bemerkungen:Quellcode zu einem Applet, das auch direkt geladen werden kann. Das Applet wurde ursprünglich von Panagiotis G. Ipeirotis geschrieben und dann von mir übersetzt.

Quicksort-Animation

4. Sortieren

Thema:Sortierverfahren
Unterrichtsform: Die einzelnen Sortieralgorithmen können entweder zu Demonstrationszwecken verwendet werden, oder den Schülerinnen und Schülern als Aufgabe zum ausprogrammieren gestellt werden.
Programmiersprache:Java
Zeit:je nach Einsatzart
Lizenz:GPL 2.0
Quicksort Dezimales Radixsort Mit diesen Programmen können die Vorgänge visualisiert werden, die beim Ablauf eines Sortieralgorithmus durchgeführt werden. Alle Grundperationen (vergleichen, verschieben, tauschen, Wert auslesen, testen ob ein Feld belegt ist) können durch eigene Methoden aufgerufen werden. Werden unmögliche Operationen verlangt, reagiert das Programm mit einer Fehlermeldung.
Es können Algorithmen implementiert werden, die am Ort sortieren, und solche, die nicht am Ort sortieren.
Sortiert werden jeweils ganze Zahlen (positive und negative). Eingestellt werden kann
  • die Anzahl zu sortierender Zahlen
  • der Wertebereich der zu sortierenden Zahlen
  • die Anzahl Reihen und die Anzahl Plätze pro Reihe, auf denen Zahlen abgespeichert werden können
  • der Bereich der Felder in der obersten Reihe, die anfangs mit Zahlen gefüllt sein sollen
Die Anfangswerte werden zufällig gesetzt.
Es kann in einer fortlaufenden Animation oder in Einzelschritten sortiert werden. Ein sortiertes Feld kann wieder in seinen Anfangszustand zurückversetzt werden.
Die Einzeloperationen werden gezählt und die Zählungen fortlaufend angezeigt.
Für die folgenden Sortierverfahren ist der Code beigefügt: Bubblesort, Radixsort (binär und dezimal), Mergesort und Quicksort.
Quellcode herunterladen