HU - Informatik 
Fachdidaktik

- Objektorientierte Programmierung  im Anfangsunterricht -

S. Spolwig
10.0

[Home | Aktuelles | Dokumente | Inhalt | Literatur | Organisation]
[Startseite]
 

Einführung in  die objektorientierte Programmierung mit Grafik

Programmentwicklung am OSZ Handel, Berlin
- das 1. Halbjahr (Einführung mit OOP) -

  1. Didaktische Überlegungen
    1.1  Rahmenbedingungen
    1.2  Konzeption
    1.3  Inhalte / Themen
    1.4  Methodik und mediale Komponenten

  2. Unterrichtssequenz für das 1. Halbjahr OOP

  3. Arbeitsplan - Beispiel für Einführung in die Programmierung

  4. Aufgaben und Arbeitsblätter dazu
    (Die Links aus der Aufgabenseite sind teilweise entfernt, da die Lerngruppe nicht mehr besteht.)

1. Didaktische Überlegungen

Die Einführung in ein neues Schulfach ist eine äußerst sensible Phase, in der sich schon sehr früh entscheidet, ob die gemeinsame Arbeit bis zum Abitur fruchtbar und erfreulich sein wird. Es liegt weitgehend in der Hand des Lehrers, wie viele und welche Schüler dabei bleiben werden. Das gilt noch mehr für die Einführung in den Programmierunterricht, der mit bekannten Vorurteilen belastet ist. Insgesamt ergibt sich für das erste Halbjahr eine hochkomplexe Lern-/Lehrsituation:

  1. PASCAL lernen (das ist nicht Delphi) als formale Fremdsprache

  2. DELPHI lernen (das ist nicht Pascal), also die Bedienung und verständige Handhabung eines professionellen Programmiersystems

  3. OO-DESIGN-Prinzipien im Ansatz kennen lernen

  4. ANWENDUNGSPROBLEME  analysieren (Abstraktion)  und in a + b + c umsetzen.

1.1  Rahmenbedingungen

In Berliner Oberstufenzentren - Wirtschaft und Verwaltung - ist ein 2-stündiger Informatikkurs in der 11. Klasse Pflichtunterricht. Es gibt daher an dieser Schule jährlich 8 neue Eingangskurse mit durchschnittlich 14 Schülern bei ca. 50 % Frauenanteil.
Die Fachkonferenz hat bereits 1995 beschlossen durchgängig objektorientierte Programmierung zu unterrichten. Das eingesetzte Werkzeug ist DELPHI.

1.2  Konzeption

Die Leitlinien für den gesamten dreijährigen Unterricht sind beschrieben durch

  • Exemplarisches Lernen statt Vollständigkeit
  • Themenorientiert und anwendungsorientiert
  • Zunehmend selbständiges Arbeiten der Schüler
  • Kein systematischer Sprachkurs, bewusster Verzicht auf die Behandlung aller Datenstrukturen und Algorithmen
  • Bewältigung von Komplexität
  • Modellierungsfragen stehen im Vordergrund (OOA/OOD)
  • Projektorientiert als Spiralcurriculum, d. h. in jedem Halbjahr eine Schülerarbeit mit erweiterten Kenntnissen
  • Methodisch-didaktisch ausgefeilte Lerneinheiten mit langfristig vor geplanten Bögen
  • OOP im Anfangsunterricht
  • Objektorientierung als durchgängiges didaktisches Prinzip und Erklärungsmuster
  • Zufriedene Lehrer und Schüler

 Diesen - vergleichsweise hochgesteckten - Zielen soll der Anfangsunterricht entsprechend genügen.

1.3  Inhalte / Themen

Inhalt und Schwerpunkt der objektorientierten Programmierung wird die 'Programmierung im Kleinen' sein, also die Manipulation von Objekten aus vorhandenen Klassen, Methoden und Algorithmik. Vor dem Entwurf eigener Klassen steht also das Arbeiten mit Exemplaren - objects first. Als Thema (das ist etwas anderes als Inhalte!) eignet sich sehr gut Grafik, bei der unmittelbar jede Aktion und Manipulation auf dem Bildschirm beobachtet werden kann und die die Phantasie der SchülerInnen anspricht.

1.4  Methodik und mediale Komponenten

Der methodische Gang kann grob beschrieben werden mit Analysieren - Modifizieren - Produzieren. Bei 14 Schülern und 90 Minuten Unterricht (abzüglich 'theoretischer' Phasen) bleiben pro Schüler knapp 5 (!) Minuten Lehrerbetreuung bei der praktischen Arbeit am Rechner. Deshalb ist es zwingend erforderlich eine effektive Binnendifferenzierung zu planen, die das individuelle Lerntempo der Schüler unterstützt. Das wird dadurch gewährleistet, dass die Arbeitsmaterialien für die Schüler auf dem Webserver liegen und weitgehend selbständige Arbeit ermöglichen.

Die Aufgaben und Arbeitsplan für das gesamte Halbjahr stehen von ersten Unterrichtstag im Web und werden im Unterricht statt Arbeits-/Aufgabenblättern auf Papier verwendet. Jeder Schüler hat somit darauf einen Zugriff sowohl im Unterricht als auch von zu Hause. Hochmotivierte können sich natürlich auch die Materialien für die Folgekurse ansehen. Damit ist eine Vorstufe zu E-Learning gelegt.
Ergebnisse und Zwischenergebnisse können dem Lehrer jederzeit per E-Mail zur Kontrolle/Korrektur zugesandt werden. Erfahrungen mit BSCW werden zur Zeit gesammelt.

Betrachtet man die Art der möglichen Programme, die im Unterricht über 3 Jahre bis zum Abitur entstehen können, kann man eine grobe Einteilung erkennen:

  Art Fachklassen Einsatz
1. Mickey-Mouse-Programme,
die keine Probleme lösen:

z. B.  'Hello World' u. ä.
zum Kennen lernen eines Werkzeugs
 
keine E-Phase, Anfangsunterricht
 
2. Mickey-Mouse-Programme,
die ein Mickey-Mouse-Problem lösen:

z. B. DM in Euro berechnen,
Übung einzelner Sprachkonstrukte wie
program 'Schleife' u. ä.
 
keine E-Phase, Anfangsunterricht



Diese Art von Programmen wird am OSZ Handel gar nicht eingesetzt.
3. Kleine Anwendungsprogramme

z. B. BMI, Billard, Schülerverwaltung,
Kryptographie-Programme
 
1-5 E-Phase,
Kurs 1 + 2
4. Softwareprojekte

z. B. Personaleinsatzplaner,
Warenwirtschaft,
Game of Life
 
mehr als 10 Kurs 3

Nachfolgend ist eine Sequenz für das erste Halbjahr beschrieben, wie sie von einigen Kollegen durchgeführt wird.

2.  Unterrichtssequenz für das 1. Halbjahr OOP

Übergeordnete Ziele

Da in den nachfolgenden Grundkursen Schüler aus verschiedenen E-Phasen (und 5 Lehrern) sitzen, sind verbindliche Absprachen über die Kompetenzen der Schüler am Ende des Halbjahres von Nöten.
Übergeordnete Ziele sind :

  • Komplexität analysieren, verstehen, bewältigen.
    Die Komplexität für den Anfangsunterricht kann aber noch nicht aus dem Anwendungsproblem kommen, sondern es lässt sich dazu die komplexe Entwicklungsumgebung von Delphi nutzen.
     
  • Objektorientierte Denkweise verstehen und anwenden
     
  • Fertige (Bibliotheks)Klassen benutzen
     
  • Ein kleines Anwendungsprogramm selbständig entwickeln
     

Durchgeführter Verlauf

1. Analyse einer komplexen Anwendung: Geldwechsler oder Fahrscheinautomat

Ziele/Inhalte:
-
Programme sind strukturierte große Einheiten, keine Zehnzeiler
-
Komplexe Programme sind strukturiert nach abgebildeten Objekten

a) "Sichtbare" GUI-Objekte auf dem Bildschirm :
     Buttons usw. + Automatendarstellung (Erscheinung)

b) "Nicht sichtbare" Daten-Objekte (aus dem Datenmodell):
    Wechseleinheit, Geld (Wesen)

Didaktik/Methodik:
Anforderungen beschreiben, GUI-Skizze anfertigen,
Objekte in der Programmdokumentation lokalisieren, kleine Änderungen im Editor vornehmen, neu kompilieren, testen.

Zeitbedarf
Doppelstd.

 2

2. 0  Übungen: GUI-Objekte benutzen - Delphi bedienen lernen

"Mickey-Mouse-Programme, die zu nichts nütze sind" -
nur zum Kennen lernen des Werkzeugs, der Bildschirmobjekte und der Bausteine

Ziele/Inhalte:
- Programme/Oberflächen bestehen aus Objekten/Exemplaren, die aus
  (vorhandenen) Klassen abgeleitet sind.

- Attribute, Auftrag, Ereignis-Methoden, Ereignisse.
  Die Komplexität liegt hier bereits in der GUI-Ebene und des Werkzeugs.
  'hat'-Beziehung zwischen FensterFormular und seinen Komponenten.

- Sprache: Variablen-Konzept, Zuweisung, Typverträglichkeit, Unit-Aufbau,
  Projektbegriff, Namenskonventionen.

Didaktik/Methodik:
Nur GUI-Fenster und GUI-Objekte (3 Buttons, 1 Label). Beispiel: Farbschalter

- Programmieren / Code schreiben
- danach Analysieren der GUI-Objekte: Attribute finden, im Objekt-Inspektor
  prüfen.
- Zuweisung der Attributwerte, (leider keine Zugriffs-Methoden in Delphi),
  Variablen-Konzept.
- 3 Buttons ==> gleiche Klasse TButton. Klasse / Exemplar.
- danach Analysieren des Fenster-Quelltextes: Klassen, s.o., GUI-Hierarchie
  entdecken.

Selbständiges Arbeiten und Lernen fördern durch Einsatz von Arbeitsblättern aus dem Schulweb.


2
2.1  Übungen: GUI-Objekte benutzen + Kontrollstrukturen

"Mickey-Mouse-Programme, die Mickey-Mouse-Probleme lösen"

Ziele/Inhalte:
- Algorithmen, Kontrollstrukturen, einfache Datentypen

Didaktik/Methodik:
Aus GUI-Komponenten ein Art 'Ampel' zusammensetzen und die Steuerung schrittweise erweitern


3
3.  Fachklassen benutzen, Grafikprogrammierung  (+ GUI-Objekte)

Ziele/Inhalte:
- (Mehrere) Exemplare einer Klasse erzeugen, initialisieren, manipulieren
- Methodenaufrufe, Parameter verstehen und benutzen
- Algorithmik mit Grafikprogrammierung (uGrafik)

Didaktik/Methodik:
- Grafikklassen gemeinsam entwickeln und spezifizieren (OOA)
- dann aber nur benutzen (aus Bibliothek)
- Themen: Zufallsgrafik, Tapetenmuster, Animationen o. ä.


6
4.  Schülereigenes Programm - Praktikum

Ziele/Inhalte:
- Freies Planen und Implementieren
- Modifikation / Adaption eines der Übungsprogramme
- Thema: Bildschirmschoner o. ä.


3 - 4



_________
Ges. 40 Std.

Der Schwerpunkt liegt also auf der Vermittlung der objektorientierten Sichtweise und der Benutzung von Klassen. Diese Sequenz leidet an einem nicht zu übersehenden Mangel: der Aspekt der Modellierung fehlt nahezu ganz. Dieses ist der Tatsache geschuldet, dass an Oberstufenzentren der verfügbare Zeitrahmen in der 11. Klasse um ein Drittel = 20 Stunden gegenüber grundständigen Gymnasien verringert ist. Deshalb werden diese Teile in das folgende Halbjahr verschoben und bilden dort den Schwerpunkt (Grundlagen großer Programmsysteme).

Wegen der Kürze der Zeit treten auch die methodischen Probleme deutlich hervor. Dazu gehört auch die Abwesenheit einer systematischen 'Sprachschulung'. Sprachelemente werden eher eklektizistisch bei passender Gelegenheit eingeführt; d. h. wenn ein Anwendungsproblem auftritt, das ein entsprechendes Konstrukt erfordert. Das zwingt dazu, sinnvolle Programmbeispiele zu finden, die noch klein genug (!) sind, ohne völlig hirnrissig zu werden; ein Problem, das immer auftritt, wenn man Objektorientierung ernst nimmt.

Erweiterungsmöglichkeiten

Sofern mehr Zeit (3-std. Kurs) zur Verfügung steht oder die genannten Lernziele schneller erreicht werden, lässt sich das Konzept leicht mit einem zusätzlichen Lernabschnitt erweitern, sofern man auf der Grafikschiene zunächst weiterfahren will.
 

5.  Fachklassen erstellen - Grafikprogrammierung

Ziele/Inhalte:
- OOA
- Klassenbeziehungen

Didaktik/Methodik:
- Fachklassen/Objekte, (die sich selbst darstellen sollen) gemeinsam entwickeln
  und spezifizieren (OOA)
- implementieren
- Themen: Billardkugeln, "richtige" Ampeln, kleine Animationen

 

 

 

weiter ==> 3. Arbeitsplan - Beispiel für Einführung in die Programmierung
               4. Aufgaben und Arbeitsblätter dazu
 


 


OOP.03

01. Dezember 2007   Siegfried Spolwig

page_top