Informatik 7: Prozedurale, Funktionale und Objektorientierte Programmierung
7.1 Lernziele
- Paradigmen benennen
- Ansätze unterscheiden
- Abläufe erklären
- Funktionen nutzen
- Objekte beschreiben
- Zustände erkennen
- Parameter erklären
- Rückgaben deuten
- Klassen zuordnen
- Methoden erkennen
- Beispiele vergleichen
- Lösungen reflektieren
7.2 Lerninhalte
Prozedurale, funktionale und objektorientierte Programmierung lassen sich besonders gut verstehen, wenn dieselben Probleme aus verschiedenen Blickwinkeln betrachtet werden, weil dadurch Unterschiede bei Struktur, Wiederverwendung, Datenbehandlung und Modellierung in anschaulichen Beispielen sichtbar werden.
Programmierparadigmen als unterschiedliche Denkweisen
Programmierung besteht nicht nur aus Syntax und Befehlen, sondern auch aus unterschiedlichen Grundideen, wie Probleme zerlegt, Lösungen aufgebaut und Bestandteile eines Programms zueinander in Beziehung gesetzt werden können. Ein Programmierparadigma ist eine typische Art, Programme zu strukturieren. Prozedurale Programmierung denkt vor allem in Schritten und Abläufen, funktionale Programmierung in Funktionen und Transformationen, objektorientierte Programmierung in Objekten mit Eigenschaften und Verhalten. Keine dieser Sichtweisen ist grundsätzlich immer besser als die andere. Entscheidend ist, welches Problem gelöst werden soll und welche Struktur für Lernende oder Entwicklerinnen und Entwickler am verständlichsten ist. Ein Alltagsvergleich macht den Unterschied deutlich. Wer ein Gericht kocht, kann das prozedural als genaue Reihenfolge von Arbeitsschritten beschreiben. Wer aus Zutaten immer wieder neue Ergebnisse berechnet, denkt eher funktional. Wer eine Küche mit Geräten, Rollen
und Zuständen modelliert, nähert sich dem Problem objektorientiert. Alle drei Zugänge beziehen sich auf dieselbe Situation, ordnen sie aber unterschiedlich. Begriffe: Paradigma, Ablauf, Funktion, Objekt, Zustand, Verhalten, Struktur, Modell.
Prozedurale Programmierung
Prozedurale Programmierung eignet sich besonders gut für den Einstieg, weil Probleme als geordnete Folge von Anweisungen beschrieben werden und dadurch Kontrollstrukturen, Teilschritte und nachvollziehbare Abläufe klar sichtbar bleiben. Bei der prozeduralen Programmierung steht die Frage im Mittelpunkt: Welche Schritte müssen nacheinander ausgeführt werden. Typisch sind Anweisungen, Bedingungen, Schleifen und Teilprogramme oder Prozeduren. Ein Programm wird also als Ablaufplan gedacht. Das passt sehr gut zu Rezepten, Spielregeln, Rechenabläufen oder Roboterbewegungen. Im Lehrerband wird Programmieren ausdrücklich mit Kontrollstrukturen, verschachtelten Schleifen und zusammengesetzten Bedingungen verbunden. Ein einfaches Beispiel ist ein Programm, das drei Zahlen einliest, ihre Summe berechnet und das Ergebnis ausgibt. Ein anderes Beispiel ist ein Spielablauf: Figur starten, Taste prüfen, Position ändern, Kollision prüfen, Punkte erhöhen, Spielstand anzeigen. Auch ein Microcontroller-Projekt wie „Schere, Stein, Papier“ oder ein Linienfolger lässt sich gut prozedural beschreiben, weil Sensorabfragen und Reaktionen in klaren Schritten ablaufen. Das hochgeladene Skriptum hebt Microcontroller- und Robotikprojekte ausdrücklich als geeignete Zugänge in der Sekundarstufe I hervor. Typische Merkmale sind Schrittfolge, Kontrollfluss, Zerlegung in Teilaufgaben und klare Reihenfolge. Prozedurale Programme sind oft gut lesbar, wenn sie überschaubar bleiben. Werden sie jedoch sehr groß, kann es schwieriger werden, Daten und Zustände ordentlich zu organisieren. Genau dort gewinnen andere Paradigmen an Bedeutung. Beispiele: Rezept, Taschenrechner, Ampelsteuerung, Spielablauf, Roboterfahrt, Eingabeprüfung, Schleife, Bedingung.
Funktionale Programmierung
Funktionale Programmierung rückt die Verarbeitung von Eingaben zu Ausgaben in den Vordergrund, wodurch Berechnungen, Transformationen und wiederverwendbare Teilprobleme besonders klar beschrieben werden können, ohne jeden Schritt als langen Gesamtprozess formulieren zu müssen. Die Python-Dokumentation beschreibt funktionales Programmieren so, dass Eingaben durch eine Folge von Funktionen fließen und jede Funktion aus einer Eingabe eine Ausgabe erzeugt; dabei werden Nebenwirkungen möglichst vermieden. In JavaScript weist MDN darauf hin, dass Funktionen dort first-class objects sind, also wie Werte behandelt, weitergegeben oder zurückgegeben werden können. Das macht funktionale Denkweisen in modernen Sprachen besonders anschlussfähig. Für den Unterricht ist wichtig: Funktionale Programmierung bedeutet nicht zuerst komplizierte Theorie, sondern eine klare Denkweise. Eine Funktion bekommt etwas, verarbeitet es und liefert ein Ergebnis zurück. Beispiele sind verdopple(4) → 8, grossschrift("hallo") → "HALLO" oder berechne_preis(menge, preis) → gesamtbetrag. Auch das Filtern von Listen oder das
Umwandeln von Texten passt gut in diese Sichtweise. Im Lehrerband wird ausdrücklich erwähnt, dass Computational Thinking Lösungsansätze in funktionale Programme übersetzen kann. Besonders anschaulich wird das Paradigma bei Datenverarbeitung. Eine Liste von Noten kann durch eine Funktion in eine Liste von Beurteilungen verwandelt werden. Eine Liste von Temperaturen kann gefiltert werden, damit nur Werte über 25 Grad übrig bleiben. Eine Liste von Namen kann alphabetisch sortiert oder in Großbuchstaben umgewandelt werden. Der Fokus liegt weniger auf dem gesamten Ablauf und stärker auf der Frage: Welche Transformation soll passieren. Python zeigt in seinen Listenkomprehensionen genau solche kompakten Umformungen von Listen. Typische Merkmale sind Parameter, Rückgabewert, Funktionsaufruf, Transformation und möglichst geringe Nebenwirkungen. Das Paradigma ist besonders hilfreich, wenn Berechnungen klar gekapselt, wiederverwendet und logisch geprüft werden sollen. Beispiele: Textumwandlung, Preisberechnung, Listenfilter, Sortierfunktion, Quadratfunktion, Temperaturprüfung, Rückgabe, Parameter.
Objektorientierte Programmierung
Objektorientierte Programmierung beschreibt Programme als Zusammenspiel von Dingen mit Eigenschaften und Verhalten, wodurch sich viele Alltags- und Spielwelten anschaulich modellieren lassen und komplexere Systeme oft besser strukturiert und erweitert werden können. Die Java-Tutorials erklären, dass Programme viele Objekte erzeugen, die durch Methodenaufrufe miteinander interagieren. Eine Klasse dient dabei als Bauplan für Objekte. MDN beschreibt Objekte in JavaScript als Sammlungen aus Eigenschaften und Methoden, also aus Daten und zugehörigem Verhalten. Diese Grundidee macht objektorientierte Programmierung besonders anschaulich: Eine Spielfigur hat etwa Position, Farbe und Punkte sowie Methoden wie springen, bewegen oder treffer_pruefen. Im Unterricht lassen sich viele Beispiele objektorientiert modellieren. Ein Auto kann Eigenschaften wie Farbe, Geschwindigkeit und Tankstand besitzen und Methoden wie starte, bremse, tanke oder fahre. Ein Haustier kann Name, Alter und Art speichern und mit friss, schlafe oder spiele beschrieben werden. Ein Schulverwaltungsprogramm kann Objekte wie Schueler, Lehrkraft, Klasse und Aufgabe verwenden. Gerade bei Spielen ist die objektorientierte Sicht oft sehr intuitiv, weil Figuren, Gegner, Gegenstände und Punkteanzeigen als eigene Einheiten gedacht werden können. Wichtige Begriffe sind Klasse, Objekt, Attribut, Methode und Instanz. Eine Klasse beschreibt, was ein Objekt grundsätzlich haben und tun kann. Eine Instanz ist das konkrete erzeugte Objekt. So ist Hund eine Klasse, Bello eine Instanz. Diese Denkweise hilft, größere Programme übersichtlicher zu strukturieren, weil Daten und Verhalten zusammengehören und nicht lose im ganzen Code verteilt werden. Beispiele: Klasse, Objekt, Attribut, Methode, Spielfigur, Auto, Haustier, Konto.
Dieselbe Aufgabe in drei Paradigmen betrachten
Besonders tiefes Verständnis entsteht, wenn dasselbe Problem prozedural, funktional und objektorientiert beschrieben wird, weil Unterschiede bei Ablauf, Datenbehandlung und Modellierung dadurch unmittelbar sichtbar und sprachlich präzise vergleichbar werden. Nehmen wir als Beispiel ein Programm für eine einfache Schülerverwaltung. Prozedural könnte das Programm so gedacht werden: Daten eingeben, Durchschnitt berechnen, Liste sortieren, Ergebnisse ausgeben. Funktional würden einzelne Funktionen eingesetzt, etwa berechne_durchschnitt(liste), filtere_beste(liste) oder formatiere_ausgabe(liste). Objektorientiert könnte man Klassen wie Schueler, Klasse und Note anlegen, wobei jedes Objekt seine Daten und passenden Methoden besitzt. Ein zweites Beispiel ist ein Spiel. Prozedural: Startbildschirm zeigen, Eingabe abfragen, Spielfigur bewegen, Kollision prüfen, Punkte zählen. Funktional: Funktionen für neue_position, treffer, berechne_punkte. Objektorientiert: Objekte wie Spieler, Gegner, Muenze, Level. So erkennen Lernende, dass nicht das Problem wechselt, sondern die Art des Denkens über das Problem. Vergleichsaspekte: Ablaufsteuerung, Datenbezug, Wiederverwendung, Lesbarkeit, Erweiterbarkeit, Modellnähe, Zustände, Abstraktion.
Typische Begriffe und sprachliche Unterscheidungen
Sicheres Begriffsverständnis ist zentral, weil Schülerinnen und Schüler Paradigmen nur dann sauber erläutern können, wenn sie grundlegende Fachwörter wie Prozedur, Funktion, Parameter, Rückgabe, Klasse, Objekt, Attribut und Methode passend verwenden. Eine Prozedur führt meist eine Handlung aus, ohne zwingend einen Wert zurückzugeben. Eine Funktion verarbeitet Eingaben und liefert typischerweise einen Rückgabewert. Ein Parameter ist ein übergebener Eingabewert. Eine Klasse ist ein Bauplan, ein Objekt die konkrete Ausprägung. Attribute beschreiben Eigenschaften, Methoden beschreiben Verhalten eines Objekts. Die Java-Tutorials und die Python-Dokumentation unterscheiden diese Bausteine klar in ihren Einführungen zu Funktionen und Klassen. Im Unterricht ist es hilfreich, sprachliche Kurzsätze zu üben. Etwa: „Eine Funktion bekommt etwas und gibt etwas zurück.“ „Eine Prozedur beschreibt einen Ablauf.“ „Ein Objekt hat Eigenschaften und kann etwas tun.“ Solche Merksätze erleichtern den Übergang von alltagsnahen Beispielen zu korrekter Fachsprache. Begriffe: Prozedur, Funktion, Parameter, Rückgabe, Klasse, Objekt, Attribut, Methode.
Geeignete Unterrichtsbeispiele und Werkzeuge
Anschauliche Werkzeuge erleichtern das Verständnis der Paradigmen erheblich, weil blockbasierte Umgebungen, textbasierte Sprachen und einfache Projekte unterschiedliche Zugänge eröffnen und abstrakte Ideen in sichtbares Verhalten, direkte Rückmeldung und motivierende Produkte übersetzen. Für die Sekundarstufe I eignen sich nach dem hochgeladenen Skriptum besonders visuell- symbolische Programmiersprachen, weil sie Syntaxhürden verringern. Genannt werden Scratch, Open Roberta und MakeCode für Microcontroller. Scratch eignet sich gut für prozedurale Abläufe und erste Objektideen mit Figuren und Skripten. Python und JavaScript
sind laut den Quellen ebenfalls sinnvolle Sprachen für den Einstieg; Python wird wegen Einfachheit oft bevorzugt, JavaScript ist besonders anschlussfähig an Webentwicklung. Für funktionale Aspekte sind kleine Textverarbeitungen, Listenoperationen und Rechenfunktionen in Python besonders gut geeignet. Für objektorientierte Aspekte bieten Spiele, Simulationen, Klassenmodelle und interaktive Projekte mit Figuren oder Geräten klare Lernanlässe. Pair Programming kann dabei die Entwicklung und Reflexion unterstützen; das didaktische Skriptum beschreibt diese Methode ausdrücklich als vorteilhaft für Programmierunterricht. Werkzeuge: Scratch, Python, JavaScript, MakeCode, Open Roberta, Microcontroller, Pair Programming, Codekarten.
7.3 Weiterführende Links
- Python Tutorial, Grundlagen
- Python HOWTO, Funktional
- Python Tutorial, Kontrollfluss
- Java Tutorials, Klassen
- Java Tutorials, Objekte
- MDN, Funktionen
- MDN, Objekte
- Scratch, Learning Library
7.4 Aufgaben für den Unterricht
7.4.1 Ein Problem in drei Sichtweisen beschreiben
Dasselbe Problem aus prozeduraler, funktionaler und objektorientierter Perspektive zu betrachten fördert besonders tiefes Verständnis, weil Unterschiede in Ablauf, Datenbehandlung und Modellierung direkt nebeneinander sichtbar und dadurch sprachlich präzise vergleichbar werden. Die Klasse erhält ein einfaches Problem, etwa einen Taschenrechner, ein Rezeptprogramm, eine Schülerverwaltung oder ein kleines Fangspiel. Die Gruppen beschreiben zunächst prozedural die nötigen Schritte, formulieren dann passende Funktionen mit Eingaben und Rückgaben und entwerfen schließlich eine objektorientierte Lösung mit Klassen, Eigenschaften und Methoden. Wichtig ist nicht vollständiger Code, sondern das saubere Denken in unterschiedlichen Strukturen.
Jede Gruppe erstellt zu einem Problem drei Darstellungen, eine als Ablaufplan, eine als
Funktionssammlung und eine als Objektmodell. Anschließend erklärt die Gruppe, welche Denkweise an welcher Darstellung erkennbar ist. Ablaufplan, Funktionen Klassenmodell, Vergleich Schritte, Rückgaben Objekte, Methoden Merkmale, Unterschiede Erklärung, Präsentation
7.4.2 Paradigmen an Alltagsbeispielen zuordnen
Alltagsnahe Situationen erleichtern den Zugang zu abstrakten Paradigmen, weil Lernende bekannte Handlungen in Abläufe, Funktionen und Objekte übersetzen und dadurch programmatische Fachbegriffe mit verständlichen Beispielen verknüpfen können. Die Lehrkraft gibt Situationen wie Kuchen backen, Schulbibliothek verwalten, Haustier pflegen, Fitnessdaten auswerten oder ein Spiel steuern vor. Die Lernenden ordnen diese Situationen den drei Paradigmen zu und begründen ihre Entscheidung. Danach entwickeln sie zu jedem Beispiel noch eine alternative Sichtweise, um zu zeigen, dass viele Probleme auf verschiedene Arten beschrieben werden können.
Die Schülerinnen und Schüler ordnen mehrere Alltagsbeispiele den Paradigmen zu, ergänzen für jedes Beispiel mindestens eine zweite mögliche Sichtweise und erklären ihre Wahl mit Fachbegriffen. Alltagssituation, Zuordnung Rezept, Spiel Datenliste, Tier Ablauf, Funktion Objekt, Begründung Fachsprache, Tausch
7.4.3 Prozedurales Programmieren mit Ablaufkarten
Geordnete Schrittfolgen werden besonders wirksam verstanden, wenn Lernende ein Problem erst physisch oder grafisch zerlegen und anschließend als kontrollierten Ablauf mit Bedingungen und Wiederholungen strukturieren. Die Gruppen erhalten Karten mit Befehlen wie starten, eingeben, prüfen, wiederholen, ausgeben, stoppen. Damit legen sie einen prozeduralen Ablauf für ein kleines Problem, etwa Passwortprüfung, Punktezählen im Spiel oder Ampelsteuerung. Im zweiten Schritt wird der Kartenablauf in Scratch, Code.org oder einer ähnlichen Umgebung umgesetzt. So bleibt der Fokus zuerst auf der Logik und nicht auf der Syntax. Das Skriptum empfiehlt für die Sekundarstufe I ausdrücklich visuell-symbolische Programmiersprachen wie Scratch oder Code.org, um Einstiegshürden zu senken.
Die Lernenden erstellen mit Karten einen vollständigen Ablauf, markieren Schleifen und Bedingungen farblich und setzen den Ablauf danach in einer blockbasierten Programmierumgebung um.
Start, Eingabe Bedingung, Schleife Ausgabe, Ende Ablaufkarten, Reihenfolge Blockcode, Umsetzung Kontrolle, Reflexion
7.4.4 Funktionale Denkweise mit Eingabe und Rückgabe trainieren
Funktionale Strukturen werden besonders klar, wenn Aufgaben auf Transformationen von Eingaben zu Ausgaben reduziert werden, weil dadurch Parameter, Rückgabewerte und wiederverwendbare Teillösungen unmittelbar erkennbar und sprachlich sauber beschreibbar werden. Die Klasse arbeitet mit kleinen Funktionsaufgaben, etwa Text in Großbuchstaben umwandeln, Preise berechnen, Temperaturen prüfen oder Listen filtern. Jede Gruppe erhält mehrere Eingaben und muss vorhersagen, welche Ausgabe eine Funktion liefert. Danach entwerfen die Lernenden eigene Funktionen und beschreiben jeweils Parameter und Rückgabe. Besonders geeignet sind kurze Python- oder JavaScript-Beispiele, ein blockbasiertes Pseudocode-Format ist ebenfalls möglich.
Die Schülerinnen und Schüler untersuchen vorgegebene Funktionen, ergänzen fehlende Eingaben oder Ausgaben und entwerfen anschließend zwei eigene Funktionen mit klarer Beschreibung von Parameter und Rückgabewert. Eingabe, Ausgabe Parameter, Rückgabe Textfunktion, Preisfunktion Listenfilter, Prüfung Vorhersage, Entwurf Beschreibung, Test
7.4.5 Objektorientierte Modellierung mit Klassenkarten
Objektorientiertes Denken wird besonders anschaulich, wenn reale oder spielbezogene Gegenstände als Klassen mit Attributen und Methoden modelliert werden, weil Daten und Verhalten dadurch nicht getrennt, sondern als zusammengehörige Einheiten verstanden werden. Die Gruppen wählen ein Szenario, etwa Schulverwaltung, Spielwelt, Tierpark oder Fahrzeugsystem. Danach erstellen sie Klassenkarten, auf denen oben der Klassenname, links die Attribute und rechts die Methoden stehen. Aus Schueler werden etwa Name, Klasse, Note sowie zeige_info, berechne_schnitt. Aus Auto werden Farbe, Geschwindigkeit, Tankstand sowie fahre, bremse, tanke. Anschließend werden konkrete Instanzen ergänzt.
Jede Gruppe modelliert mindestens zwei Klassen, ergänzt passende Instanzen und erläutert, warum bestimmte Eigenschaften als Attribute und bestimmte Handlungen als Methoden formuliert wurden.
Klasse, Objekt Attribut, Methode Instanz, Modell Spielwelt, Fahrzeug Schule, Tierpark Begründung, Vorstellung
7.4.6 Pair Programming mit Rollenwechsel
Gemeinsames Programmieren fördert besonders starke Lernprozesse, wenn Denken, Sprechen und Umsetzen auf zwei Rollen verteilt werden, weil dadurch Planung, Fehlervermeidung und begründete Entscheidungen sichtbarer und bewusster werden. Die Lernenden arbeiten zu zweit an einer kleinen Programmieraufgabe, etwa einem Taschenrechner, einem Fangspiel oder einer Funktionensammlung. Eine Person übernimmt als Driver die Eingabe, die andere als Navigator beobachtet, erklärt, prüft und plant den nächsten Schritt. Nach zehn bis zwanzig Minuten werden die Rollen gewechselt. Das hochgeladene Skriptum beschreibt Pair Programming mit Driver und Navigator ausdrücklich als geeignete Unterrichtsmethode und empfiehlt regelmäßigen Rollenwechsel.
Die Zweierteams lösen eine Programmieraufgabe im Pair Programming, dokumentieren ihre Rollenwechsel und notieren am Ende, welche Entscheidungen sie gemeinsam verbessert oder vereinfacht haben. Driver, Navigator Rollenwechsel, Planung Code, Kontrolle Partnerarbeit, Dialog Fehlercheck, Lösung Reflexion, Protokoll
7.4.7 Hybridarbeit zwischen Blockcode und Textcode
Der Vergleich zwischen visueller und textbasierter Darstellung unterstützt besonders nachhaltiges Lernen, weil Lernende dieselbe Logik in zwei Formen sehen und dadurch Strukturen, Funktionsdefinitionen und Unterschiede zwischen Denkweise und Syntax besser auseinanderhalten können. Mit MakeCode oder einer ähnlichen Umgebung erstellen die Gruppen zunächst ein kleines Blockprogramm, etwa für Button-Ereignisse, LED-Ausgabe oder einfache Berechnungen. Danach wechseln sie in die Python- oder JavaScript-Ansicht und untersuchen, wie Funktionen, Aufrufe und Verschachtelungen textuell dargestellt werden. Das Skriptum beschreibt genau diesen hybriden Ansatz als hilfreiche Brücke zwischen visueller und textbasierter Programmierung.
Die Gruppen entwickeln ein kleines Blockprogramm, vergleichen die Textdarstellung und markieren anschließend, wo Abläufe, Funktionen oder objektbezogene Aufrufe im Textcode sichtbar werden.
Blockcode, Textcode Python, JavaScript Ansichten, Vergleich Funktion, Aufruf Ereignis, Struktur Markierung, Auswertung
7.4.8 Fangspiel oder Microcontroller-Projekt erweitern
Projektartige Aufgaben erzeugen besonders tiefe Lernwirkungen, weil Paradigmen nicht isoliert besprochen, sondern beim Planen, Bauen, Testen und Verbessern in einem motivierenden Produkt gemeinsam erlebt und reflektiert werden. Geeignet sind ein Scratch-Fangspiel, ein Microbit-Projekt wie Schere-Stein-Papier oder eine einfache Roboteraufgabe in Open Roberta. Die Lernenden erweitern eine Grundversion, etwa durch neue Figuren, zusätzliche Regeln, Punktesysteme oder eigene Funktionen. Danach beschreiben sie, welche Teile ihres Projekts eher prozedural, welche eher funktional und welche eher objektorientiert gedacht wurden. Das Material verweist auf Scratch, MakeCode und Open Roberta als geeignete Projektumgebungen für die Sekundarstufe I.
Jede Gruppe erweitert ein vorhandenes Projekt, dokumentiert ihre Änderungen und ordnet am Ende konkrete Programmteile den drei Paradigmen zu. Scratch, MakeCode Open Roberta, Projekt Erweiterung, Test Funktion, Figur Ablauf, Objekt Dokumentation, Zuordnung
7.4.9 Begriffe sichern mit Sortier- und Erklärkarten
Nachhaltige Begriffsbildung gelingt besonders gut, wenn Fachwörter aktiv zugeordnet, erklärt und an Beispielen überprüft werden, weil dadurch oberflächliches Wiedererkennen in präzise sprachliche Unterscheidung überführt wird. Die Klasse arbeitet mit Karten zu Begriffen wie Prozedur, Funktion, Parameter, Rückgabe, Klasse, Objekt, Attribut und Methode. Zunächst werden die Karten passenden Beispielen zugeordnet. Danach formulieren die Lernenden kurze Erklärungssätze und prüfen diese gegenseitig. Abschließend entwerfen sie zu einem Beispielproblem ein Mini-Glossar mit eigenen Formulierungen.
Die Schülerinnen und Schüler ordnen Fachbegriffe Beispielen zu, formulieren zu jedem Begriff eine Erklärung in eigenen Worten und ergänzen jeweils ein passendes Gegenbeispiel oder Missverständnis. Begriffskarten, Beispiele Prozedur, Funktion Parameter, Rückgabe Klasse, Objekt
Attribut, Methode Glossar, Sicherung
7.4.10 Denkwege reflektieren und vergleichen
Tiefe Lerngewinne werden besonders wahrscheinlich, wenn Programmierlösungen nicht nur erzeugt, sondern anschließend hinsichtlich ihrer Struktur, Verständlichkeit und Erweiterbarkeit verglichen und begründet bewertet werden. Nach einer Arbeitsphase vergleichen die Gruppen zwei oder drei entstandene Lösungen zu demselben Problem. Sie prüfen, welche Lösung stärker in Schritten denkt, welche Funktionen sinnvoll kapselt und welche Objekte passend modelliert. Dabei wird auch besprochen, welche Form für Einsteiger verständlicher war, welche sich leichter erweitern ließ und welche Begriffe noch unsicher sind. Das Skriptum betont Reflexion, Fehleranalyse und das Verschriftlichen von Programmlogik als wichtige Bestandteile technischer Informatik und Programmierdidaktik.
Die Gruppen vergleichen ihre Lösungswege mit einem Kriterienbogen und formulieren am Ende ein kurzes Urteil darüber, welches Paradigma in ihrem Beispiel am anschaulichsten, am praktischsten oder am besten erweiterbar war. Vergleich, Kriterienbogen Anschaulichkeit, Struktur Erweiterbarkeit, Übersicht Stärken, Grenzen Urteil, Begründung Reflexion, Transfer
Grundlage: Informatik – Lehrband 7. Klasse, Final V1.7 (2026).