Selbstlern-Modul: Objektorientierung (Q1.1 Grundkurs)

Lehrkräfte-Hinweis zum Einsatz

Dieses Modul ist als Lehrkräfte-Ansicht vorbereitet. Die Inhalte können in Moodle als Text- und Medienfeld eingefügt und anschließend an Lerngruppe, Buchseite, Aufgabenstellung und vorhandene Materialien angepasst werden.

InformatikQ1Objektorientierte Programmierung

Differenzierte Hilfen

Die Hilfen sind bewusst sichtbar als feste Sections angelegt, damit sie in Moodle ohne JavaScript, Buttons oder Aufklappfunktionen funktionieren.

Hilfe A – Einstieg

Formuliere zuerst in eigenen Worten, worum es in Selbstlern-Modul: Objektorientierung (Q1.1 Grundkurs) geht. Markiere Schlüsselbegriffe, bekannte Größen, Operatoren und unklare Stellen.

Hilfe B – Vorgehen

Arbeitsprozess strukturieren: Problem verstehen, Eingaben/Strukturen identifizieren, Lösung in kleine Teilschritte zerlegen und Ergebnis testen.

Hilfe C – Vertiefung

Vertiefung: Lösung erweitern, Fehlersuche dokumentieren, Code/Struktur erklären und eine alternative Umsetzung vergleichen.

Schritt-für-Schritt-Vorgehen / Erwartungshorizont

Diese Vorlage kann als Erwartungshorizont, Musterlösung oder Hilfekarte genutzt werden.

  1. Aufgabe lesen und Zielprodukt bestimmen.
  2. Eingaben, Daten, HTML-Struktur, Klassen oder Objekte identifizieren.
  3. Lösung in kleine Teilschritte zerlegen.
  4. Zwischenergebnisse testen, Fehler systematisch suchen und korrigieren.
  5. Endergebnis erklären und mögliche Erweiterung notieren.
🖼️
[Platzhalter für ein Bild aus deinem Material/Software (z. B. GeoGebra)/Buch]

Hier würde passend sein: Logo.

Ursprünglicher interner Verweis: /img/hnr.png. Bitte selbst einfügen und Lizenzrechte beachten.

Selbstlern-Modul: Objektorientierung (Q1.1 Grundkurs)
🖼️
[Platzhalter für ein Bild aus deinem Material/Software (z. B. GeoGebra)/Buch]

Hier würde passend sein: Header.

Ursprünglicher interner Verweis: img/Student Guid-04.png. Bitte selbst einfügen und Lizenzrechte beachten.

←  Zum vorherigen Modul
Zum nächsten Modul →
🖼️
[Platzhalter für ein Bild aus deinem Material/Software (z. B. GeoGebra)/Buch]

Hier würde passend sein: Infobox.

Ursprünglicher interner Verweis: /img/Student Guid-06.png. Bitte selbst einfügen und Lizenzrechte beachten.

Arbeitsauftrag: Dieses Modul deckt die Q1.1-Vorgaben für den Grundkurs des KCGO (Vers. 2025) ab: Klassen/Objekte/Attribute/Methoden/Konstruktoren, Felder (Arrays), Listen mit Bibliotheksklassen, Geheimnisprinzip & Sichtbarkeit (get/set), UML-Klassendiagramm inkl. Assoziation/Aggregation.
Ablauf Bearbeite die verlinkten LearnJ-Abschnitte (eingebettet) und löse danach die Übungen, Quizze, KI-Aufgaben und „Selbst programmieren“-Aufgaben. Arbeite dich von oben nach unten sukzessive durch. Dieses Selbstlernmodul beinhaltet Stoff für circa 7 Unterrichtswochen. Mache zum Abschluss jeder Unterrichtswoche das Feedbackmodul (ganz unten).

Inhalte

  1. Grundbegriffe der Objektorientierten Programmierung OOP (Klassen, Objekte, Methoden, Attribute)
  2. Eigene Klassen & Konstruktoren
  3. Arrays (Feld von Objekten) & ArrayList
  4. Geheimnisprinzip, Sichtbarkeit, get-/set-Methoden
  5. UML-Klassendiagramm, Assoziation & Aggregation

Hinweis Datenschutz: Dieses Modul bindet externe Inhalte (LearnJ & YouTube) per iframe ein. Wenn ein Inhalt nicht lädt, nutze die Direktlinks unter dem jeweiligen Frame.

Disclaimer: Achtung! In den Aufgaben wirst du dazu aufgefordert, KI-Sprachmodelle zu nutzen. Wenn du das nicht möchtest oder darfst, kannst du diese Aufgaben überspringen. Bitte kläre dies vorher mit deinen Erziehungsberechtigten und lies die Datenschutzerklärungen sowie AGB.

Warm-up: Was ist Objektorientierung?

Starte mit diesen Videos (max. 45 min). Notiere dir Merksätze zu den Themen: OOP, Klassen, Konstruktor, Objekte, Attribute.

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/2le2YYr3N7s

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/Hc3ddOTYzME?list=PLO-P6W97sI0QceALqhX21OTkeBVj5HkHM

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/IxwJIGEPXY4

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/kWO5K2ADQeg?list=PLXiSNHkWbOMkDnHZm_GsOL4za3rRzT-A3&index=27

1) Grundbegriffe: Klassen, Objekte, Attribute, Methoden

Bearbeite zuerst:

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.learnj.de/doku.php?id=klassen1:grundbegriffe:start

Direktlink: learnj.de/doku.php?id=klassen1:grundbegriffe:start

Dann: Wende die Grundbegriffe im nächsten LearnJ-Teil an.

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.learnj.de/doku.php?id=klassen1:anwenden:start

Direktlink: learnj.de/doku.php?id=klassen1:anwenden:start

Übung 1 – Begriffe zuordnen
Ordne zu (schreibe in die Felder):
Prüfen

Lösung & Erläuterung

  • Bauplan → Klasse
  • konkretes Exemplar → Objekt (Instanz)
  • Eigenschaft → Attribut
  • Fähigkeit/Aktion → Methode

Eine Klasse beschreibt Struktur & Verhalten, ein Objekt ist eine erzeugte Instanz dieser Klasse.

KI-Aufgabe (Merksätze):
Formuliere vier prägnante Merksätze zu Klasse, Objekt, Attribut und Methode – jeweils mit einem Mini-Beispiel in Java. Prüfe mich danach mit zwei Rückfragen.
Selbst programmieren
Beispiel einfügen
Struktur checken
Run in Browser ↗
Zusatzvideo:
🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/lWYWddhWUag?list=PLXiSNHkWbOMkDnHZm_GsOL4za3rRzT-A3&index=28

Weiter Hilfen:

Programmierenlernen HQ

2) Eigene Klassen & Konstruktoren

Bearbeite:

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.learnj.de/doku.php?id=klassen1:eigene:start

Direktlink: learnj.de/doku.php?id=klassen1:eigene:start

Zusatz: Konstruktoren initialisieren Objekte. Name = Klassenname, kein Rückgabetyp.

/* Beispiel: einfache Klasse mit Konstruktor */ public class Person { private String name; private int alter; public Person(String name, int alter) { // Konstruktor this.name = name; this.alter = alter; } public void hallo() { System.out.println("Hi, ich bin " + name + " (" + alter + ")"); } }
Lücken-Code (Konstruktor) – fülle ___:
public class Buch { private String titel; private int seiten; public ___(___ t, ___ s) { this.titel = t; this.seiten = s; } }
Prüfen

Musterlösung & Erklärung

public class Buch { private String titel; private int seiten; public Buch(String t, int s) { this.titel = t; this.seiten = s; } }

Der Konstruktor heißt wie die Klasse und hat keinen Rückgabetyp. Parameter initialisieren die Attribute.

KI-Aufgabe (Lückentext):
Erzeuge einen kurzen Lückentext zu Java-Konstruktoren (5–7 Lücken) mit Lösungsvorschlägen. Frage mich danach die Lösungen nacheinander ab.
Selbst programmieren
Beispiel einfügen
Struktur checken
Run in Browser ↗
Vertiefungsvideo:
🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/IxwJIGEPXY4

Weiter Hilfen:

w3schools Konstruktoren

3) Attribute deklarieren & verwenden

Bearbeite:

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.learnj.de/doku.php?id=klassen2:attribute:start

Direktlink: learnj.de/doku.php?id=klassen2:attribute:start

Mini-Quiz Attribute
Quiz starten
KI-Aufgabe (Quizmaster):
Stelle mir nacheinander 5 Quizfragen (Multiple Choice) zu Java-Attributen wie ein Showmaster. Prüfe meine Antworten und erkläre kurz.
Selbst programmieren
Beispiel einfügen
Struktur checken
Run in Browser ↗

4) Objektreferenzen verstehen

Bearbeite:

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.learnj.de/doku.php?id=klassen1:anwenden:objektreferenzen:start

Direktlink: learnj.de/doku.php?id=klassen1:anwenden:objektreferenzen:start

Übung – Alias-Effekt
Überlege, was ausgegeben wird:
public class Punkt { int x; Punkt(int x){ this.x = x; } void inc(){ x++; } } Punkt a = new Punkt(5); Punkt b = a; b.inc(); System.out.println(a.x);

Lösung

6. a und b referenzieren dasselbe Objekt; die Änderung über b wirkt sich auf a aus.

KI-Aufgabe (Wahr/Falsch):
Stelle mir 8 Wahr/Falsch-Aussagen zu Objektreferenzen (Alias-Effekt, null, Vergleich von Referenzen). Prüfe jede Antwort sofort und erkläre kurz.
Selbst programmieren
Beispiel einfügen
Struktur checken
Run in Browser ↗

5) Feld von Objekten (Array) & Liste von Objekten (ArrayList)

Arrays (Felder): feste Länge, schneller Zugriff per Index.

Person[] team = new Person[3]; team[0] = new Person("Ava", 17); team[1] = new Person("Bo", 18); team[2] = new Person("Cem", 16); for (int i = 0; i < team.length; i++) { team[i].hallo(); }

ArrayList (Bibliotheksklasse): dynamische Größe, Methoden wie add, remove, size.

import java.util.ArrayList; ArrayList<Person> liste = new ArrayList<>(); liste.add(new Person("Ava", 17)); liste.add(new Person("Bo", 18)); for (Person p : liste) { p.hallo(); }
Baustellen-Aufgabe (Array) – fülle ___:
int[] zahlen = new int[___]; for (int i = 0; i < ___; i++) { zahlen[i] = i*i; } System.out.println(zahlen[___]);
Prüfen

Lösung & Erklärung

int[] zahlen = new int[5]; for (int i = 0; i < zahlen.length; i++) { zahlen[i] = i * i; } System.out.println(zahlen[2]); // 4

zahlen.length liefert die Feldlänge (Index beginnt bei 0). ArrayList wäre dynamisch.

KI-Aufgabe (Lückentext):
Erstelle einen Lückentext zu Arrays vs. ArrayList (8–10 Lücken) mit Lösungsvorschlägen. Frage mich die Lücken einzeln ab.
Selbst programmieren
Beispiel einfügen
Struktur checken
Run in Browser ↗
Videos:
🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/ryev3PMRFik

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/f9m4GbZbeqE?list=PLXiSNHkWbOMkDnHZm_GsOL4za3rRzT-A3&index=24

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/pifaJMSsRVY?list=PLXiSNHkWbOMkDnHZm_GsOL4za3rRzT-A3&index=25

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/EeshCeZJUzA?list=PLXiSNHkWbOMkDnHZm_GsOL4za3rRzT-A3&index=26

6) Geheimnisprinzip (Kapselung), Sichtbarkeit, Getter/Setter

Idee: Daten einer Klasse werden vor direktem Zugriff geschützt (private), Zugriff nur über Methoden (public).

public class Konto { private double saldo; // Geheimnisprinzip: nicht direkt von außen änderbar public double getSaldo() { // Getter return saldo; } public void einzahlen(double betrag) { // kontrollierter Setter/Mutator if (betrag > 0) saldo += betrag; } }
Check – Sichtbarkeiten
Attribut saldo in Konto:
Methode getSaldo():
Prüfen

Lösung & Erläuterung

saldo sollte private sein (Datenkapselung). Zugriff über public Methoden – getSaldo(), einzahlen() (mit Validierung).

KI-Aufgabe (Merksätze):
Formuliere vier Merksätze zum Geheimnisprinzip und zu Getter/Setter. Füge je ein Gegenbeispiel (schlechter Stil) und die bereinigte Variante an.
Selbst programmieren
Beispiel einfügen
Struktur checken
Run in Browser ↗
Videos:
🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/jgDDEqyyizg

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/O6_pwT1EF3k

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/WKL0gObL6ks

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/O5MMDZnsZXA

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/N1l1DQ_0G14

7) UML-Klassendiagramm, Assoziation & Aggregation

Quick-Guide UML:

  • Klassendiagramm: Klassen (Name, Attribute, Methoden) & Beziehungen.
  • Assoziation: „kennt“-Beziehung.
  • Aggregation: Ganzes–Teil, Teil existiert auch unabhängig.
  • Komposition: starkes Ganzes–Teil, Teil existiert i. d. R. nur mit dem Ganzen.
Mapping Code → UML (Beispiel)
class Klasse { private java.util.List<Schueler> liste; // Aggregation: Klasse "hat" viele Schueler }

Notation: Klasse ◇── 0..* Schueler (hohler Rhombus auf Seite des „Ganzen“).

Lösungshinweise

  • Assoziation = „kennt“-Beziehung
  • Aggregation = Ganzes–Teil (Teil existiert eigenständig)
  • Komposition = Ganzes–Teil (Teil existiert i. d. R. nur mit dem Ganzen)
KI-Aufgabe (Quizmaster):
Stelle mir 6 Multiple-Choice-Fragen zu UML (Klassendiagramm, Assoziation, Aggregation, Komposition). Agiere als Showmaster, erkläre nach jeder Antwort kurz.
Videos:
🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/zzwUH3vbNkc

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/8P4mTilZCf0

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/oaykwg2_TG8

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/sTM0EjAit7c

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/um4-oLgKs7g

🎬
[Platzhalter für ein Video/eine interaktive Einbettung]

Hier kann ein eigener Link, ein datenschutzkonformer Embed oder ein Screenshot aus deinem Material ergänzt werden.

Ursprünglicher Verweis: https://www.youtube.com/embed/Z6CrqPukPkY

Weiter Hilfen:

w3schools Aggregation

w3schools Vererbung

Feedbackmodul

Beantworte die Fragen und sende deine Antworten im Schulportal mit dem Betreff:
„Q1 GK HNR Feedback E-Learning-Modul OOP“.

  1. Freitext: Welche Abschnitte hast du vollständig bearbeitet? ___________________
  2. Freitext: Formuliere 2 Merksätze zu „Konstruktoren“ und 2 zu „Kapselung“.
  3. Multiple-Choice: Welche Strukturen hast du verwendet?
    ☐ Klassen/Objekte ☐ Konstruktoren ☐ Arrays ☐ ArrayList ☐ Getter/Setter ☐ UML
  4. Single-Choice: Wie schwierig waren die Array/ArrayList-Aufgaben?
    ○ sehr einfach ○ einfach ○ mittel ○ schwierig ○ sehr schwierig
  5. Skala (1–5): Wie zufrieden bist du mit dem Modul?
    1 … 5
  6. Ja/Nein: Hast du alle Übungen und interaktiven Checks bearbeitet?
    ○ Ja ○ Nein
  7. Zeitangabe: Geschätzte Arbeitszeit: ___ Minuten
  8. Selbsteinschätzung (1–5): Wie sicher fühlst du dich jetzt?
    1 … 5
  9. Freitext: Was war am meisten hilfreich?
  10. Offen: Verbesserungsvorschläge?