Zum Inhalt springen

Informatik 7: Programmierparadigmen Vertiefung

Aus Informatik.wiki
Version vom 15. September 2026, 10:47 Uhr von Maintenance script (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

← Zurück zur 7. Klasse

Worum geht es? Prozedurale, funktionale und objektorientierte Programmierung lassen sich besonders gut verstehen, wenn sie als verschiedene Organisationsformen von Lösungen betrachtet werden, die jeweils eigene Stärken bei Struktur, Wiederverwendung, Übersicht und Modellierung besitzen.

Lernziele

[Bearbeiten]

Nach diesem Kapitel kannst du:

  • Paradigmen nennen.
  • Ansätze vergleichen.
  • Funktionen erklären.
  • Prozeduren erklären.
  • Klassen erklären.
  • Objekte deuten.
  • Zustände erkennen.
  • Daten kapseln.
  • Vererbung nennen.
  • Beispiele zuordnen.
  • Lösungen begründen.
  • Code vergleichen.

Anschluss an die 6. Klasse

[Bearbeiten]

Programmierparadigmen wurden bereits eingeführt. Jetzt vergleichst du ihre Denkweisen vertieft und triffst begründete Entscheidungen, welche Struktur zu einer Aufgabe passt.

Lerninhalte

[Bearbeiten]

Kompaktüberblick

[Bearbeiten]
Teilbereich Kerngedanke
Programmierparadigmen als unterschiedliche Denkweisen Ein grundlegendes Verständnis entsteht dann, wenn Programmierung nicht nur als Schreiben von Code, sondern als Wahl einer bestimmten Denk-und Strukturierungsweise gesehen wird, mit der Probleme geordnet und Lösungen aufgebaut …
Prozedurale Programmierung Prozedurale Programmierung wird besonders anschaulich, wenn Programme als geordnete Folge von Befehlen und Teilaufgaben verstanden werden, die schrittweise ausgeführt werden und dadurch eng mit algorithmischem Denken verbunden …
Funktionale Programmierung Funktionale Programmierung wird besonders klar, wenn Programme als Verarbeitung von Eingaben zu Ausgaben gedacht werden und Funktionen nicht nur Befehlsblöcke, sondern eigenständige Werte und zentrale Bausteine der Lösung bilden.
Objektorientierte Programmierung Objektorientierte Programmierung wird besonders verständlich, wenn Programme als Zusammenwirken von Dingen mit Eigenschaften und Verhalten betrachtet werden, weil sich viele reale oder gedachte Systeme so gut als Modell …
Dieselbe Aufgabe in verschiedenen Paradigmen denken Die Unterschiede der Paradigmen werden besonders deutlich, wenn dieselbe Aufgabe auf mehrere Arten beschrieben wird, weil dadurch sichtbar wird, wie sich Fokus, Struktur und Ausdrucksweise je nach Ansatz verändern.
Funktionen, Methoden und Aufrufe unterscheiden Ein zentrales Verständnis entsteht dann, wenn Lernende erkennen, dass Funktionen, Methoden und Aufrufe zwar ähnlich wirken können, aber in den Paradigmen unterschiedliche Rollen und Beziehungen zu Daten und Objekten besitzen.
Paradigmen im Unterricht sinnvoll aufbauen Didaktisch tragfähig wird das Thema vor allem dann, wenn Lernende zunächst algorithmische Grundideen verstehen und erst darauf aufbauend Funktionen, Klassen und textbasierte Strukturen in geeigneten Beispielen nachvollziehen und …

Merke: Die Wahl eines Programmierparadigmas beeinflusst, wie Daten, Abläufe und Verantwortlichkeiten in einer Lösung strukturiert werden.

Programmierparadigmen als unterschiedliche Denkweisen

[Bearbeiten]

Ein grundlegendes Verständnis entsteht dann, wenn Programmierung nicht nur als Schreiben von Code, sondern als Wahl einer bestimmten Denk-und Strukturierungsweise gesehen wird, mit der Probleme geordnet und Lösungen aufgebaut werden.

Ein Programmierparadigma beschreibt eine typische Art, Programme zu strukturieren.

Prozedurale Programmierung ordnet eine Lösung vor allem als Folge von Anweisungen und Prozeduren. Funktionale Programmierung denkt stärker in Funktionen, Eingaben und Rückgabewerten. Objektorientierte Programmierung organisiert Programme über Objekte, Zustände und Methoden. Python beschreibt Funktionen mit def und Klassen als Bündelung von Daten und Funktionalität; MDN erklärt Funktionen als grundlegende Bausteine von JavaScript und Klassen als Vorlagen zur Erzeugung von Objekten.

Für den Unterricht ist wichtig, dass diese Paradigmen nicht als völlig getrennte Welten verstanden werden müssen.

So wird deutlich, dass Paradigmen nicht nur Theorie sind, sondern konkrete Denkwerkzeuge für den Aufbau von Programmen.

Begriffe: Paradigma, Denkweise Struktur, Lösung Prozedur, Funktion Klasse, Objekt Methode, Zustand Vergleich, Ansatz

Prozedurale Programmierung

[Bearbeiten]

Prozedurale Programmierung wird besonders anschaulich, wenn Programme als geordnete Folge von Befehlen und Teilaufgaben verstanden werden, die schrittweise ausgeführt werden und dadurch eng mit algorithmischem Denken verbunden bleiben.

In der prozeduralen Programmierung steht der Ablauf im Mittelpunkt. Ein Problem wird in Teilprozeduren oder Funktionen zerlegt, die nacheinander oder unter Bedingungen ausgeführt werden. Typische Elemente sind Variablen, Zuweisungen, Bedingungen, Schleifen und Funktionsaufrufe. Python beschreibt Kontrollstrukturen wie if, for und while im Abschnitt über Kontrollfluss, was sehr gut zur prozeduralen Sicht auf Programme passt.

Ein einfaches Beispiel ist ein Rezeptprogramm oder ein Taschenrechner. Zuerst werden Eingaben gelesen, dann wird geprüft, welche Rechenoperation gewählt wurde, anschließend wird das Ergebnis berechnet und ausgegeben.

Damit passt prozedurales Denken besonders gut zu algorithmischen Schrittfolgen.

Stärken der prozeduralen Programmierung liegen in Übersichtlichkeit bei linearen Abläufen, einfacher Nachvollziehbarkeit und engem Bezug zu Algorithmen. Grenzen zeigen sich oft bei sehr großen Programmen, wenn viele Datenzustände, viele zusammenhängende Objekte oder komplexe Wechselwirkungen organisiert werden müssen. Dann werden andere Paradigmen häufig hilfreicher.

Beispiele: Ablauf, Schleife Bedingung, Variable Rezept, Taschenrechner Spielablauf, Eingabe Ausgabe, Schrittfolge Prozedur, Algorithmus

Funktionale Programmierung

[Bearbeiten]

Funktionale Programmierung wird besonders klar, wenn Programme als Verarbeitung von Eingaben zu Ausgaben gedacht werden und Funktionen nicht nur Befehlsblöcke, sondern eigenständige Werte und zentrale Bausteine der Lösung bilden.

Die Python-Dokumentation zur funktionalen Programmierung betont Konzepte wie kleine, klar abgegrenzte Funktionen, Iteratoren, Generatoren und passende Bibliotheken wie itertools und functools. MDN erklärt für JavaScript, dass Funktionen first-class objects sind, also wie Werte behandelt werden können: Sie können zugewiesen, weitergegeben und zurückgegeben werden.

Genau diese Eigenschaften sind für funktionales Denken zentral.

Ein einfaches Beispiel ist eine Notenliste, die verarbeitet wird. Eine Funktion berechnet den Durchschnitt, eine weitere filtert nur positive Ergebnisse, eine dritte wandelt Zahlen in Texturteile um. Statt viele Zustandsänderungen direkt nacheinander auszuführen, wird die Aufgabe als Kette von Transformationen gedacht. Auch Listenverarbeitung, Umwandlung von Text in Großbuchstaben oder das Erzeugen von Listen mit List Comprehensions in Python passen gut in diese Denkweise.

Stärken funktionaler Programmierung liegen in klaren Abhängigkeiten zwischen Eingabe und Ausgabe, guter Zerlegbarkeit und oft hoher Wiederverwendbarkeit kleiner Funktionen. Für den Einstieg kann sie anspruchsvoller wirken, weil sie stärker auf Abstraktion und Komposition setzt als auf sichtbare Schrittfolgen. Gerade deshalb sind alltagsnahe Beispiele mit Datenumwandlung, Filtern und Berechnen didaktisch besonders geeignet.

Beispiele: Funktion, Rückgabewert Filter, Transformation Durchschnitt, Textumwandlung List Comprehension, Generator Eingabe, Ausgabe Komposition, Verarbeitung

Orientierung auf einen Blick

[Bearbeiten]
Als Nächstes Kurz erklärt
Objektorientierte Programmierung Objektorientierte Programmierung wird besonders verständlich, wenn Programme als Zusammenwirken von Dingen mit Eigenschaften und Verhalten betrachtet werden, weil sich viele reale oder gedachte Systeme so gut als Modell …
Dieselbe Aufgabe in verschiedenen Paradigmen denken Die Unterschiede der Paradigmen werden besonders deutlich, wenn dieselbe Aufgabe auf mehrere Arten beschrieben wird, weil dadurch sichtbar wird, wie sich Fokus, Struktur und Ausdrucksweise je nach Ansatz verändern.

Merke: Objektorientierte Programmierung wird besonders verständlich, wenn Programme als Zusammenwirken von Dingen mit Eigenschaften und Verhalten betrachtet werden, weil sich viele reale oder gedachte …

Objektorientierte Programmierung

[Bearbeiten]

Objektorientierte Programmierung wird besonders verständlich, wenn Programme als Zusammenwirken von Dingen mit Eigenschaften und Verhalten betrachtet werden, weil sich viele reale oder gedachte Systeme so gut als Modell strukturieren lassen.

Python beschreibt Klassen als Mittel, Daten und Funktionalität zusammenzubündeln. MDN erklärt Klassen in JavaScript als Vorlagen zur Erzeugung von Objekten und betont zugleich, dass JavaScript prototypenbasiert ist, Klassen aber eine vertraute Form für Hierarchien und Vererbung bieten. Objektorientierte Programmierung arbeitet daher mit Begriffen wie Klasse, Objekt, Attribut, Methode, Kapselung und oft auch Vererbung.

Ein Beispiel ist ein Spiel mit Figuren. Eine Klasse Spieler kann Position, Punkte und Lebenszahl speichern und Methoden wie bewegen() oder treffer_pruefen() besitzen. Eine Klasse Gegner kann ähnliches Verhalten haben, aber andere Werte oder zusätzliche Eigenschaften besitzen.

Auch eine Bibliothekssoftware lässt sich objektorientiert denken: Buch, Leser, Ausleihe oder Konto sind Objekte mit eigenen Merkmalen und Aktionen. So wird OOP besonders nützlich, wenn viele Dinge mit Zustand und Verhalten zusammenarbeiten.

Stärken objektorientierter Programmierung liegen in guter Modellierbarkeit komplexerer Systeme, klarer Bündelung von Daten und Verhalten sowie Wiederverwendbarkeit über Klassenstrukturen. Für Anfängerinnen und Anfänger kann sie schwieriger sein, weil nicht nur Abläufe, sondern auch Beziehungen zwischen Objekten verstanden werden müssen. Deshalb sind Beispiele mit Figuren, Geräten, Konten oder Sensoren besonders geeignet.

Beispiele: Klasse, Objekt Attribut, Methode Spieler, Gegner Buch, Konto Kapselung, Vererbung Zustand, Verhalten

Dieselbe Aufgabe in verschiedenen Paradigmen denken

[Bearbeiten]

Die Unterschiede der Paradigmen werden besonders deutlich, wenn dieselbe Aufgabe auf mehrere Arten beschrieben wird, weil dadurch sichtbar wird, wie sich Fokus, Struktur und Ausdrucksweise je nach Ansatz verändern.

Nehmen wir ein einfaches Notensystem. Prozedural könnte der Ablauf lauten: Eingaben lesen, Summe berechnen, durch Anzahl teilen, Ergebnis ausgeben. Funktional könnte man mehrere Funktionen kombinieren, etwa eingaben_bereinigen, durchschnitt_berechnen, note_text.

Objektorientiert könnte eine Klasse Schueler Noten speichern und eine Methode durchschnitt() bereitstellen. Die Aufgabe bleibt ähnlich, aber die Denkweise und die Struktur der Lösung verändern sich deutlich.

Ein weiteres Beispiel ist ein Roboter oder Microcontroller. Prozedural wird eine Schrittfolge formuliert, funktional werden Sensordaten verarbeitet und in Ergebnisse überführt, objektorientiert werden Gerätebestandteile oder Zustände als Objekte organisiert.

Vergleiche: gleiche Aufgabe, andere Sicht Ablauf, Transformation Objekt, Zustand Rechnung, Spiel Roboter, Daten Struktur, Ausdruck

Zweiter Zwischenüberblick

[Bearbeiten]
Vertiefung Wichtig dabei
Funktionen, Methoden und Aufrufe unterscheiden Ein zentrales Verständnis entsteht dann, wenn Lernende erkennen, dass Funktionen, Methoden und Aufrufe zwar ähnlich wirken können, aber in den Paradigmen unterschiedliche Rollen und Beziehungen zu Daten und Objekten besitzen.
Paradigmen im Unterricht sinnvoll aufbauen Didaktisch tragfähig wird das Thema vor allem dann, wenn Lernende zunächst algorithmische Grundideen verstehen und erst darauf aufbauend Funktionen, Klassen und textbasierte Strukturen in geeigneten Beispielen nachvollziehen und …

Merke: Die einzelnen Teilaspekte gehören zusammen und sollten an konkreten Beispielen miteinander verknüpft werden.

Funktionen, Methoden und Aufrufe unterscheiden

[Bearbeiten]

Ein zentrales Verständnis entsteht dann, wenn Lernende erkennen, dass Funktionen, Methoden und Aufrufe zwar ähnlich wirken können, aber in den Paradigmen unterschiedliche Rollen und Beziehungen zu Daten und Objekten besitzen.

Python erklärt Funktionen mit def und Klassenmethoden als Verhalten von Instanzen. Genau diese Unterscheidung ist für das Verstehen objektorientierter Strukturen wichtig.

Didaktisch hilfreich ist ein Vergleich: Eine Funktion wie berechne_preis() arbeitet oft allgemeiner mit übergebenen Werten. Eine Methode wie konto.einzahlen() gehört zu einem Objekt und verändert oder nutzt dessen Zustand. Im funktionalen Stil wird die Funktion stärker als unabhängiger Baustein gesehen, im objektorientierten Stil als Verhalten eines Objekts.

Diese Differenz hilft, Paradigmen nicht nur über Schlagworte, sondern über konkrete Sprachmittel zu verstehen.

Begriffe: Funktion, Methode Aufruf, Objekt Parameter, Rückgabe Instanz, Member Definition, Verhalten Zustand, Zugriff

Paradigmen im Unterricht sinnvoll aufbauen

[Bearbeiten]

Didaktisch tragfähig wird das Thema vor allem dann, wenn Lernende zunächst algorithmische Grundideen verstehen und erst darauf aufbauend Funktionen, Klassen und textbasierte Strukturen in geeigneten Beispielen nachvollziehen und anwenden.

Außerdem wird vor einem Unterricht gewarnt, der sich nur auf Syntax konzentriert. Als didaktischer Weg werden visuell-symbolische Ansätze, hybride Übergänge und projektorientierte Beispiele mit Scratch, MakeCode, Microbit oder Open Roberta beschrieben.

Für dieses Kapitel bedeutet das: Prozedurale Sichtweisen können über Schrittfolgen und Scratch gut eingeführt werden, funktionale Elemente über kleine Funktionen zur Datenverarbeitung, objektorientierte Ideen über Figuren, Geräte oder Klassenmodelle. So bleiben Paradigmen verständlich, ohne in formale Überforderung zu kippen, und werden zugleich anwendbar auf reale Unterrichtsprojekte.

Aspekte: Algorithmik, Syntax Projekt, Hybridansatz Scratch, Python JavaScript, Microbit Funktion, Klasse Didaktik, Aufbau

Merke: Die wichtigsten Zusammenhänge solltest du nicht nur wiedergeben, sondern an neuen Beispielen erklären, anwenden und begründet beurteilen können.

Kurz zusammengefasst

[Bearbeiten]
Kernkompetenz Das bedeutet konkret
Paradigmen unterscheiden Prozedurale, funktionale und objektorientierte Programmierung als unterschiedliche Arten verstehen, Programme zu strukturieren und Probleme zu beschreiben.
Prozedural denken Eine Lösung als Folge von Anweisungen und Prozeduren aufbauen, die einen Zustand schrittweise verändern.
Funktional denken Berechnungen als Funktionen mit klaren Eingaben und Rückgaben formulieren und Seiteneffekte möglichst vermeiden.
Objektorientiert denken Zusammengehörige Daten und Verhalten in Klassen und Objekten bündeln und Beziehungen zwischen Objekten modellieren.
Funktionen und Prozeduren erklären Beschreiben, welche Eingaben verarbeitet werden, was ein Aufruf bewirkt und ob ein Wert zurückgegeben wird.
Klassen und Objekte erklären Eine Klasse als Bauplan und ein Objekt als konkrete Instanz mit Attributen und Methoden beschreiben.
Zustände erkennen Nachvollziehen, welche Werte den aktuellen Zustand eines Programms oder Objekts bestimmen und wodurch sie verändert werden.
Kapselung anwenden Daten und zugehörige Operationen so zusammenfassen, dass Zugriffe kontrolliert über klar definierte Methoden oder Schnittstellen erfolgen.

Merke: Programmierparadigmen sind keine konkurrierenden Schubladen. Sie bieten unterschiedliche Denk- und Strukturierungswerkzeuge, die je nach Problem auch kombiniert werden können.

[Bearbeiten]

Passende LearningSnacks

Übungen

[Bearbeiten]

Die Aufgaben setzen die Inhalte praktisch um. Der konkrete Auftrag ist bei jeder Aufgabe ausdrücklich unter Arbeitsauftrag: gekennzeichnet.

Eine Aufgabe in drei Paradigmen betrachten

[Bearbeiten]

Ein besonders hoher Lerneffekt entsteht, wenn dieselbe Problemstellung nacheinander prozedural, funktional und objektorientiert gedacht wird, weil Unterschiede in Struktur, Blickrichtung und Lösungslogik dadurch unmittelbar sichtbar und sprachlich gut vergleichbar werden.

Arbeitsauftrag:

• gleiche Aufgabe, drei Sichten • Schrittfolge, Funktion • Klasse, Objekt • Vergleich, Unterschiede • Passung, Begründung • Darstellung, Reflexion

Prozedurale Abläufe aus Alltagssituationen entwickeln

[Bearbeiten]

Prozedurale Programmierung wird besonders verständlich, wenn alltägliche Handlungen in eindeutige, geordnete und überprüfbare Schritte zerlegt werden, weil der enge Zusammenhang zwischen Algorithmus, Kontrollstruktur und Programmablauf so sehr anschaulich erfahrbar wird.

Arbeitsauftrag:

• Alltagssituation, Schrittfolge • Bedingung, Schleife • Reihenfolge, Ablauf • Pseudocode, Blockcode • Prüfung, Korrektur • Prozedur, Erklärung

Funktionale Lösungen mit kleinen Bausteinen entwerfen

[Bearbeiten]

Funktionale Programmierung entfaltet ihre Stärke besonders dann, wenn komplexere Aufgaben in kleine, klar abgegrenzte Funktionen zerlegt werden, die aus Eingaben berechenbare Ausgaben erzeugen und dadurch gut kombinierbar und übersichtlich bleiben.

Arbeitsauftrag:

• Eingabe, Ausgabe • kleine Funktion, Baustein • Filter, Umwandlung • Kombination, Gesamtlösung • Klarheit, Wiederverwendung • Funktional, Vergleich

Objektorientierte Modelle zu realen Systemen gestalten

[Bearbeiten]

Objektorientiertes Denken wird besonders gut gelernt, wenn reale oder gedachte Systeme in Dinge mit Eigenschaften und Verhalten übersetzt werden, weil Klassen, Objekte und Methoden dadurch nicht abstrakt, sondern als Modellierungswerkzeuge erfahrbar werden.

Arbeitsauftrag:

• System, Klassen • Objekt, Attribut • Methode, Verhalten • Interaktion, Modell • Auswahl, Begründung • OOP, Darstellung

Funktionen und Methoden gezielt unterscheiden

[Bearbeiten]

Ein vertieftes Verständnis entsteht, wenn Lernende bewusst zwischen allgemeinen Funktionen und objektgebundenen Methoden unterscheiden, weil dadurch zentrale Unterschiede zwischen funktionaler und objektorientierter Struktur klarer und fachsprachlich präziser werden.

Arbeitsauftrag:

• Funktion, Methode • Objektbezug, Zustand • Eingabe, Rückgabe • Zuordnung, Begründung • Beispiel, Fachsprache • Abgrenzung, Klärung

Dieselbe Codeidee vergleichen und umformen

[Bearbeiten]

Besonders nachhaltiges Lernen entsteht, wenn eine vorhandene Lösung in ein anderes Paradigma übertragen wird, weil Schülerinnen und Schüler dadurch nicht nur Wiedererkennen üben, sondern die jeweilige Denkweise aktiv umformen und reflektieren müssen.

Arbeitsauftrag:

• Ursprung, Umformung • Prozedural, funktional • Objektorientiert, Vergleich • Struktur, Lesbarkeit • Zustand, Veränderung • Transfer, Reflexion

Paradigmen an Spiel- oder Robotikbeispielen untersuchen

[Bearbeiten]

Lernwirksame Zugänge entstehen besonders dann, wenn abstrakte Programmierideen an bewegten, sichtbaren und interaktiven Beispielen bearbeitet werden, weil Unterschiede zwischen Ablauf, Funktion und Objektverhalten in Spielen oder Robotik besonders deutlich hervor treten.

Arbeitsauftrag:

• Spiel, Robotik • Ablauf, Verarbeitung • Objekt, Zustand • Sensor, Figur • Übersicht, Präsentation • Paradigma, Beispiel

Fehlvorstellungen zu Paradigmen korrigieren

[Bearbeiten]

Ein hoher Lerneffekt entsteht, wenn typische Missverständnisse nicht nur berichtigt, sondern mit Gegenbeispielen widerlegt werden, weil dadurch ein genaueres und belastbareres Begriffsverständnis aufgebaut wird.

Arbeitsauftrag:

• Fehlaussage, Korrektur • Gegenbeispiel, Erklärung • Klasse, Funktion • Ablauf, Objekt • Missverständnis, Klärung • Begriffe, Sicherung

Ein Lernplakat mit Leitbeispielen gestalten

[Bearbeiten]

Konzepte werden besonders dauerhaft gesichert, wenn sie mit wenigen, prägnanten Leitbeispielen verbunden und übersichtlich dargestellt werden, weil dadurch aus vielen Einzelbeobachtungen ein klar strukturiertes Gesamtbild der drei Paradigmen entsteht.

Arbeitsauftrag:

• Lernplakat, Übersicht • Merkmale, Leitbeispiele • Prozedural, funktional • Objektorientiert, Vergleich • Gemeinsamkeit, Unterschied • Klassenprodukt, Sicherung

Eine begründete Paradigmenwahl treffen

[Bearbeiten]

Transfer gelingt besonders gut, wenn Schülerinnen und Schüler nicht nur Paradigmen erklären, sondern für eine neue Aufgabe bewusst auswählen und begründen, welcher Ansatz ihnen am passendsten erscheint.

Arbeitsauftrag:

• neue Aufgabe, Wahl • Paradigma, Passung • Mischform, Begründung • Terminplaner, Spielsystem • Struktur, Urteil • Transfer, Entscheidung

Kompetenzcheck

[Bearbeiten]

Überprüfe am Ende selbst, ob du die zentralen Kompetenzen dieses Kapitels sicher anwenden kannst:

Ich kann … Ja Noch üben
prozedurale, funktionale und objektorientierte Programmierung anhand typischer Merkmale sicher unterscheiden. ☐ ☐
Prozeduren als geordnete Abläufe mit Parametern und klaren Aufgaben erklären und einsetzen. ☐ ☐
Funktionen als wiederverwendbare Bausteine mit Eingaben und Rückgabewerten beschreiben. ☐ ☐
Klassen, Objekte, Attribute und Methoden in einem objektorientierten Modell korrekt zuordnen. ☐ ☐
dieselbe Codeidee in unterschiedlichen Paradigmen vergleichen und Vor- sowie Nachteile der Struktur erkennen. ☐ ☐
für eine konkrete Aufgabe ein geeignetes Paradigma oder eine begründete Kombination mehrerer Ansätze wählen. ☐ ☐