Objects First vs. Objects Later

Was ist Objektorientierung

In dieser Sitzung geht es um eine grundlegende didaktische Frage: Wann und wie soll Objektorientierung im Informatikunterricht eingeführt werden? Dazu arbeiten Sie zunächst mit konkreten Beispielen, um ein Gefühl für das Thema zu entwickeln — und lesen anschließend, was die Forschung dazu sagt.

Arbeiten Sie in Tandems und tragen Sie Ihre Ergebnisse im gemeinsamen Pad ein:

📝 Kollaboratives Arbeitspad (HedgeDoc) — Tragen Sie Ihre Ergebnisse direkt im gemeinsamen Pad ein:

🔗 pad.franke-lab.de/iGui-FpsQ4q6gvww3ugwhw

① Was ist Objektorientierung? — Ein erster Eindruck

Schauen Sie sich den folgenden Code an. Kein Vorwissen nötig — lesen Sie ihn wie einen Text und versuchen Sie zu verstehen, was er beschreibt:

class Auto:
    def __init__(self, marke, modell, farbe):
        self.marke  = marke
        self.modell = modell
        self.farbe  = farbe

    def info(self):
        print(self.marke, self.modell, "in", self.farbe)

mein_auto   = Auto("VW", "Golf", "blau")
dein_auto   = Auto("Toyota", "Yaris", "rot")

mein_auto.info()   # VW Golf in blau
dein_auto.info()   # Toyota Yaris in rot

Aufgabe 1a (5 Min.): Beschreiben Sie in eigenen Worten, was dieser Code macht — ohne Programmierbegriffe. Was ist Auto? Was ist mein_auto? Was macht info()?

Aufgabe 1b: Übertragen Sie das Prinzip auf ein anderes Alltagsbeispiel. Schreiben Sie (skizzieren Sie) eine ähnliche Klasse für Schülerinnen und Schüler mit mindestens 3 Eigenschaften und einer Methode. Kein lauffähiger Code nötig — Pseudocode oder Stichpunkte reichen.

Kernbegriffe: Eine Klasse ist eine Vorlage (Bauplan). Ein Objekt ist eine konkrete Instanz dieser Vorlage. Attribute sind Eigenschaften (Daten). Methoden sind Fähigkeiten (Aktionen).

② Objects Later — Der klassische Weg

Im Ansatz Objects Later beginnt der Unterricht mit prozeduraler Programmierung: Variablen, Bedingungen, Schleifen — und erst später kommen Klassen und Objekte. So sieht ein typischer Einstieg aus:

# Schritt 1: Variablen
name  = "Anna"
alter = 14

# Schritt 2: Ausgabe
print("Name:", name)
print("Alter:", alter)

# Schritt 3: Bedingung
if alter >= 18:
    print("Volljährig")
else:
    print("Minderjährig")

Erst nach mehreren Wochen wird daraus:

class Person:
    def __init__(self, name, alter):
        self.name  = name
        self.alter = alter

    def status(self):
        if self.alter >= 18:
            print(self.name, "ist volljährig.")
        else:
            print(self.name, "ist minderjährig.")

anna = Person("Anna", 14)
anna.status()

Aufgabe 2 (10 Min.): Diskutieren Sie im Tandem:

③ Objects First — Direkt einsteigen

Beim Ansatz Objects First werden Klassen und Objekte von Beginn an eingesetzt — die prozedurale Grundlage kommt später oder nebenbei. Ein typischer Einstieg mit einem fertigen Objekt, das Schülerinnen und Schüler benutzen, bevor sie es selbst bauen:

# Stunde 1: Objekt verwenden
from schildkroete import Schildkroete   # fertige Klasse

# Ich erzeuge eine Schildkröte und steuere sie
t = Schildkroete()
t.vorwaerts(100)
t.links(90)
t.vorwaerts(100)
t.links(90)
t.vorwaerts(100)
t.links(90)
t.vorwaerts(100)

Die Lernenden nutzen Methoden eines Objekts, ohne dessen innere Struktur zu kennen. Erst später öffnen sie die "Blackbox".

Aufgabe 3a (10 Min.): Was lernen Schülerinnen und Schüler in diesem Einstieg implizit? Welche OOP-Konzepte werden erfahrbar, ohne dass sie explizit benannt werden?

Aufgabe 3b: Überlegen Sie: Welche bekannten Lernumgebungen aus der letzten Sitzung (Scratch, TigerJython, Python-in-Pieces …) folgen eher dem Objects-First-Ansatz — und warum?

④ Vergleich: Vorteile und Risiken beider Ansätze

Aufgabe 4 (15 Min., Tandem): Füllen Sie gemeinsam die folgende Tabelle im Pad aus. Denken Sie dabei an konkrete Unterrichtssituationen in der Schule — nicht an die Hochschule.

Kriterium Objects First Objects Later
Einstiegsmotivation
Verständnis von Syntax
Transferkompetenz
Überforderungsrisiko
Eignung für Schulklassen

⑤ Was sagt die Forschung? — Die Studie von Ehlert (2012)

Verschaffen Sie sich mithilfe eines KI-Tools (z. B. ChatGPT, Claude) einen Überblick über die folgende Dissertation:

Ehlert, A. (2012). Objects First vs. Objects Later: Unterschiede und didaktische Ansätze.
📄 PDF herunterladen (FU Berlin)

Tipp: PDF-Inhalt in ein KI-Tool einfügen und fragen: „Fasse die wichtigsten Ergebnisse in 5 Stichpunkten zusammen."

Aufgabe 5 (15 Min.):

  1. Welches Fazit zieht Ehlert — gibt es einen klaren „Gewinner"?
  2. Welche Rahmenbedingungen (Vorkenntnisse, Schulart, Lehrkraft…) beeinflussen laut der Studie die Wirksamkeit?
  3. Stimmt das Ergebnis mit Ihrer Einschätzung aus Aufgabe 4 überein — oder überrascht Sie etwas?

⑥ Abschlussdiskussion & Fazit

Diskutieren Sie im Plenum (ca. 15 Min.):

Halten Sie Ihr persönliches Fazit (3–5 Sätze) im Pad fest.