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:
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).
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:
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?
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 | … | … |
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.):
Diskutieren Sie im Plenum (ca. 15 Min.):
Halten Sie Ihr persönliches Fazit (3–5 Sätze) im Pad fest.