INFORMATIK.SCHULE.DE

PORTAL FÜR DEN INFORMATIKUNTERRICHT


MaterialKompetenzenDidaktikWettbewerbeProjekteGedrucktes

Material-Katalog     |     weitere Sammlungen     |     gute Beispiele     |     Werkzeuge


Sammlung geeigneter Beispiele

Der Erfolg von Unterricht steht und fällt oft mit der Wahl eines geeigneten Beispiels. Ein geeignetes Beispiel …

  • ist der Lebenswelt der SuS nah bzw. der Kontext seiner Anwendung für sie leicht erschließbar (z.B. aus bekannten Berufsfeldern).
  • ist einfach genug, um die Aufmerksamkeit auf das zu erarbeitende Konzept zu lenken.
  • ist komplex genug, um zu zeigen, dass das genutzte Konzept eine bestimmte Funktion erfüllt, zum Lösen von Problem geeignet ist, „Sinn macht“ – es zeigt nicht nur wie etwas ist sondern auch warum es so ist.

Bitte fühlen Sie sich aufgefordert, weitere Beispiele vorzuschlagen, die sich in Ihrer Unterrichtspraxis bewährt haben und helfen Sie so, die Sammlung geeigneter Beispiele zu erweitern! Vorschläge senden Sie bitte per E-Mail mit einer kurzen Erläuterung des Beispiels und warum sich welches Konzept damit gut erarbeiten lässt an:
grammschadow-gymnasium-berlin.de

Übersicht der Themen: 

 º  Objektorientierte Modellierung und Programmierung

 º  Kontrollflußsteuerung: Bedingte Verzweigung und Wiederholung

 º  Automaten

 º  ...

Objektorientierte Modellierung und Programmierung

Objekte als Instanzen von Klassen: Um den Sinn von Klassen als Bauplan verschiedener Objekte mit gleichartiger Struktur und einheitlichen Schnittstellen begreifen zu können bedarf es unbedingt mehrerer Objekte einer Klasse, auf denen verschiedene Methoden aufgerufen werden. Nicht sinnstiftend im Sinne der Objektorientierung sind die weit verbreiteten Miniwelten (Kara, Niko, Karol, ...), bei denen das "Innenleben" einer einzigen Instanz quasi imperativ implementiert wird (Dieses Vorgehen hat bestimmt seine Vorteile bei der Vermittlung von "Algorithmik im Kleinen" - Zuweisungen und Kontrollflußsteuerung).
Vererbung:
  • Geometrische Formen: Hier lässt sich gut zeigen, dass z.B. für die Klasse aller Kreise und alle die Klasse aller Rechtecke die gleichartige Daten verwalten müssen, die aber für jede individuelle Instanz verschiedene Werte annehmen (z.B: grüner kleiner Kreis versus großer gelber Kreis) - gemeinsam ist allen Objekten einer Klasse also welche Art von Informationen verwaltet wird. (Geometrische Formen werden z.B. von Barnes und Kölling für den Einstieg in die OOP mit BlueJ empfohlen und sind auch als Greenfoot-Szenario verfügbar: http://greenfoot.org/scenarios/files/shapes.zip) Alternativ kann mit Java auf einer GUI-Komponente (Klasse awt.Component) mit der Methode getGraphics() auf ein "Zeichen"-Objekt zugegriffen werden, mit dem sich Linien, Rechtecke und Ovale zeichnen lassen und so entsprechende Formen selbst vollständig programmiert werden können - ähnlich in Python mit der Klasse tkinter.Canvas .
    Dabei lässt sich - je nach Ausbildungsstand der Lernenden - bereits auf oberster Abstraktionsebene eine Klasse "Form" definieren, die gemeinsame Merkmale wie Farbe, Position in einem Zeichenfeld oder gefüllt vs. nicht gefüllt definiert. Die Größe einer Form wird jedoch in Abhöngigkeit ihrer konkreten Geometrie angegeben: Für Rechtecke Höhe und Breite - für Kreise der Radius. Die Klasse "Form" muss also eine "abstrakte Klasse" bleiben - ein Konzept, dessen Sinn sich OOP-Novizen schwer vermitteln lässt.
    ACHTUNG: Das Quadrat als Spezielisierung eines Rechtecks ist nicht geeignet, um Vererbung zur Spezialisierung als Idee einzuführen. Natürlich ist es möglich, eine Klasse Quadrat von einer Klasse Recheck abzuleiten, die dann sinnvollerweise eine Konstruktor-Methode mit einem einzigen Parameter "seitenlaenge" implementiert, in der wiederum der Konstruktor der Oberklasse mit zweifach übergebener Seitenlänge aufgerufen wird. Die spezialisierte Klasse wird also nicht wie sonst oft in der OOP um Funktionen erweitert, sondern grenzt die Menge der möglichen Werte für die beiden Seitenlängen auf die Menge gleicher Paare ein. Deshalb wird hier von Lernenden oft intuitiv die Richtung der Spezialisierung vertauscht und gemeint, das Quadrat würde um eine weitere Seitenlänge zum Recheck erweitert!
  • ...
Geheimnisprinzip: Das Verbergen der Implementation soll einen Sinn ergeben!
  • Konto (analog Guthabenverwaltung): Das private Attribut meinKontostand soll nur durch den Zugriff über eine öffentliche Methode abheben(betrag) manipuliert werden, um so dass Vereinbarungen zum überziehen beachtet werden, z.B.
      if (meinKontostand – betrag > dispo):
           meinKontostand := meinKontostand – betrag
      else:
           werfe Fehlermeldung
  • ...

Kontrollflußsteuerung:   Bedingte Verzweigung und Wiederholung ("Algorithmik im Kleinen")

Als erste Anwendungsfälle für basale Kontrollflußstrukturen bietet sich die Steuerung von Abläufen an. Diese sollten zum Einstieg nicht zu komplex und dennoch in einer bedeutsamen Situation eine sinnvolle Lösung darstellen.
  • Turtle-Grafiken erstellen. Turtle-Grafiken lassen sich mit einem sehr überschaubaren Befehlssatz erstellen, wobei Lernende eine unmittelbare und durch die visuelle Darstellung intuitiv erfassbare Rückmeldung über den Erfolg ihres Programms erhalten und so sehr gut am Experiment lernen können. Eindrucksvoll lassen sich durch wiederholte oder auch rekursive Methodenaufrufe eindrucksvolle komplexere Strukturen wie z. B. der Kochschen Schneeflocke zeichnen lassen und somit die Mächtigkeit des Prinzips divide and conquer erfahrbar machen.
    Werkzeuge wären z. B.:
  • Das Verhalten eines Roboter steuern: Als Bedingungen können hier sinnvoll Sensor-Abfrageergebnisse ausgewertet werden, z.B. wiederhole Geradeausfahrt solange kein Hindernis vor dem Roboter erscheint (Ultraschall-Messwert > meinGrenzwert oder FrontBeruehrungssensor nicht aktiv) oder kreise 4 mal (als Teil einer Tanz-Choreographie). Hierzu bieten sich z.B. die Roboter von Lego Mindstorms an. Sollten reale Roboter nicht zur Verfügung stehen, können natürlich auch Miniwelten wie Karol (deutscher Pseudocode), Kara (für Automaten, Java oder Python), Niko (für Python) oder Karel (für Delphi) zum Einsatz kommen.
  • Den Ablauf einer Animation steuern: z.B. mit Scratch (http://scratch.mit.edu/), hier ist positiv hervorzuheben, dass Lernende die Aktionen ohne Kompiliervorgang durch anklicken testen können und einzelne Übungen in einem sinnvollen Zusammenhang (der Erstellung einer komplexeren Animation) und nicht beliebig kombiniert erarbeitet werden!
  • ...

Automaten

Mit Automaten lässt sich Verhalten modellieren. Der modellierte Prozess sollte dabei ein in einem bestimmten Kontext sinnvolles Verhalten darstellen. So interessiert wenige Schüler, ob das Wort "hallala" in der Sprache h{a,l} ist, jedoch vielleicht eher ob eine eingelesene Zeichenfolge "class" von einem Programmiereditor als Schlüsselwort erkannt werden sollte oder ob ein Text Emoticons enthält, die sich durch entsprechende Grafiken ersetzen ließen (siehe Beispiel unten).

Verhalten in Zuständen und Zustandsübergängen modellieren:
  • Verhalten eines Medienabspielgeräts modellieren (MP3-, DVD-, …) - verschiedene Zustände eines Medienabspielgeräts (aus, abspielen, pause) sowie übliche Abbildungen auf Schaltern und Knöpfen als implizite Schnittstellen sind gut bekannt. Dabei bewirken über die Knöpfe getätigte Eingaben eine wahrnehmbare Änderung des Zustands des Geräts (Transduktor, als Ausgaben könnten z.B. interne Befehlsaufrufe wie stoppe, spiele ab, etc. modelliert werden).
  • Verhalten eines Roboters modellieren [und implementieren] Dabei werden durch Sensoren wahrgenommene Ereignisse in durch Aktoren (z.B. Motoren oder Leuchten) ausgeführte situationsgerechte Aktionen überführt (Transduktor), wobei Aspekte der künstlichen Intelligenz und die tatsächliche Sichtbarkeit und Überprüfbarkeit der Aktionen die Schülerinnen und Schüler erfahrungsgemäß stark motiviert, so wirkt ein mit einerm Ultraschallsensor "vorausschauend" agierender Roboter auf viele Menschen als relativ intelligent ("Der Roboter 'weiß', dass ein Hindernis kommt und reagiert angemessen durch Anhalten und/oder Ausweichen."). Komplexeres Verhalten sollte erst nach und nach aus kleineren Einzellösungen aufgebaut werden.
    Modellierung und Umsetzung können z.B. mit Kara oder Lego Mindstorms erfolgen. Bei letzterem müssen Automaten-Modelle unter Verwendung von Fallunterscheidung in Programmier-Code überführt werden! Alternativ lässt sich LegoKara einsetzen, hier muss die Modellierung anscheinend aber innerhalb der Welt des Marienkäfers erfolgen.
  • Verhalten eines Verkaufsautomaten (Fahrscheine, Getränke, etc.): Die Ware wird erst bei ausreichendem Geldeinwurf ausgegeben (Akzeptor, zusätzlich Transduktor falls eine Ausgabe des noch ausstehenden zu zahlenden Betrags erfolgt oder das Aushändigen der Ware im Erfolgsfall als Ausgabe modelliert wird).
Muster erkennen, ggf. Fundstellen übersetzen:
  • Die Eingabe von Benutzern in ein Eingabefeld auf ein gültiges Format überprüfen (Akzeptor), z.B.:
    - Gleitkommazahl mit Vorzeichen ohne führende Null, es sei denn an der Einer-Stelle
    - Preisangabe mit zwei Nachkommastellen und Währungsangabe, ohne führende Null,
      es sei denn an der Einer-Stelle
    - E-Mail-Adresse mit "@"-Zeichen und einer bekannten Top-Level-Domain
    - Telefonnummer mit optionalem führenden + (dann aber keine führende Null!)
  • Emoticons in einem Text erkennen und durch HTML-Tags zum Einbinden entsprechender Grafiken ersetzen (Transduktor mit Pattern-Matching). Die Anwendung ist aus Chat und E-Mail-Clients bekannt und daher nah an der Lebenswelt vieler Lerner!
  • Ein Gen in einer DNA-Sequenz finden (Akzeptor mit Pattern-Matching)
  • Ansatzweise einen Übersetzer vom Deutschen ins Englische konstruieren (Transduktor).
  • Ansatzweise einen Parser für einen Compiler konstruieren (Akzeptor zum Prüfen der syntaktischen Korrektheit, Transduktor falls eine Übersetzung in Assembler erfolgt).
  • ...

...

  • ...


Bitte fühlen Sie sich aufgefordert, weitere Beispiele vorzuschlagen, die sich in Ihrer Unterrichtspraxis bewährt haben und helfen Sie so, die Sammlung geeigneter Beispiele zu erweitern! Vorschläge senden Sie bitte per E-Mail mit einer kurzen Erläuterung des Beispiels und warum sich welches Konzept damit gut erarbeiten lässt an:
grammschadow-gymnasium-berlin.de



Empfehlungen:

Bildungsstandards  der Gesellschaft für Informatik
Gesellschaft für Informatik - Fachbereich zu Informatischer Bildung Wiki zur Didaktik der Informatik
Projekt Informatik im Kontext
informatiktools.de - Sammlung von Werkzeugen für den Informatikunterricht
Wettbewerb Informatik-Bieber Bundeswettbewerb Informatik
Initiative Mehr Informatikunterricht
Roberta
LOG IN - Zeitschrift für Informatische Bildung und Computer in der Schule
Initiative MINT Zukunft schaffen


Impressum