OSZ Handel I
Informatik

Didaktik / Methodik
Anfangsunterricht

S. Spolwig

[Home | Wirtschaftsgymnasium | Informatik]

Page down

Einführung in die Programmierung mit Grafik
unter objektorientierter Sichtweise

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

  1. Didaktische Überlegungen
    1.1  Rahmenbedingungen
    1.2  Kompetenzen / Ziele
    1.3  Konzeption
    1.4  Inhalte / Themen
    1.5  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. Fünf Lehrer unterrichten 12 - 14 Kurse. Nach der E-Phase treffen die Schüler auf andere Lehrer. Schon daraus ergibt sich die Notwendigkeit zur Abstimmung der Lehrpläne.
Die Fachkonferenz hat bereits 1995 beschlossen durchgängig objektorientierte Programmierung zu unterrichten. Das eingesetzte Werkzeug ist DELPHI.

1.2  Kompetenzen / Ziele

Kompetenzen am Ende der E-Phase sind Standards zum Eingang der Kursphase im Lernabschnitt  ‚Programmieren’.
Im Rahmen des zu planenden Anfangsunterrichts soll bei den Schülern ein Kompetenzerwerb angestrebt werden, der die gemeinsame Grundlage für die nachfolgende Kursphase auf der Basis des zukünftigen Berliner Rahmenplans darstellt.

  • Sachkompetenz

  1. Modell aus einem Weltausschnitt entwickeln und in einem Klassendiagramm (nach UML) darstellen

  2. Ein Anwendungsproblem objektorientiert analysieren, einen Lösungsansatz entwickeln und mit Hilfe von Programmiertechniken umsetzen

  3. Eine Modul-/Klassenspezifikation (Schnittstellen) lesen können und benötigte Teile in ein Programm einbinden
    Die für den Lernabschnitt erforderlichen Sprachelemente sicher beherrschen und anwenden

  4. Ein Programm angemessener Komplexität selbstständig (unter Zuhilfenahme einer Vorlage) projektieren und realisieren

  • Methodenkompetenz

  1. Klassendiagramm zur Strukturierung von Programmstrukturen , Nassi-Shneiderman-Diagramm zur Entwicklung von Algorithmen einsetzen

  2. Ein Nassi-Shneiderman-Diagramm in Programmcode überführen

  3. Auftretende Probleme durch kundiges Benutzen eines geeigneten (integrierten) Hilfesystems selbständig lösen

  • Sozialkompetenz

  1. Umfangreiche Aufgaben untergliedern und in einem Team arbeitsteilig lösen

  2. Absprachen treffen und einhalten

  • Selbstkompetenz

  1. Eigene Lösungen der Gruppe vorstellen und verteidigen

  2. Eigenes Arbeitstempo entwickeln und verfolgen anhand geeigneter Arbeitsmaterialien

Anmerkungen

Die Kompetenzen S1 und S2 decken eigentlich die Inhalte OOA – OOD – OOP im Kurshalbjahr (Grundlagen großer Programmsysteme) ab.

Sie bedürfen einer Entscheidung

  • ob das im Anfangsunterricht überhaupt schon gemacht werden soll

  • wenn ja, einer Präzisierung, wie tief das gehen soll

  • oder ob im 1. Halbjahr nur die Benutzung, Manipulation usw. von Objekten aus vorhandenen Klassenbibliotheken als Einführung in OOP geübt werden soll.

  • 1.3  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, bewußter 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.4  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üler anspricht.

    1.5  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, daß 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 der Programme 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,
    program 'Schleife' u. ä.

    OOP mit Grafik
    keine E-Phase, Anfangsunterricht


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


    Einführung in OOP.
    3. Kleine Anwendungsprogramme

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

    Schwerpunkt Modellierung:
    OOA, OOD, OOP
    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äßt sich dazu die komplexe Entwicklungsumgebung von Delphi nutzen.
       

    • Objektorientierte Denkweise verstehen und anwenden
       

    • Fertige (Bibliotheks)Klassen benutzen (Objects first)
       

    • 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
    - Einübung der Programmierumgebung

    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, daß 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, um Fachklassen zu erstellen.
     

    5.  Fachklassen erstellen
    • Grafikprogrammierung, sofern man auf der Grafikschiene zunächst weiterfahren will.

    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
     

    • oder Themenwechsel (z. B. eine Personenklasse)

     

     

     

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


     


    OOP.03

    05. April 2006   Siegfried Spolwig

    page_top