Informatik 7: Programmierparadigmen Grundlagen: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 317: | Zeile 317: | ||
== Kompetenzcheck == | == Kompetenzcheck == | ||
Überprüfe am Ende selbst: | Überprüfe am Ende selbst, ob du die zentralen Kompetenzen dieses Kapitels sicher anwenden kannst: | ||
{| class="wikitable" | {| class="wikitable" | ||
| Zeile 324: | Zeile 324: | ||
! Noch üben | ! Noch üben | ||
|- | |- | ||
| | | prozedurale, funktionale und objektorientierte Programmierung als unterschiedliche Denk- und Strukturierungsweisen erklären. | ||
| ☐ | | ☐ | ||
| ☐ | | ☐ | ||
|- | |- | ||
| | | einen einfachen Ablauf prozedural in geordneten Schritten, Bedingungen und Wiederholungen beschreiben. | ||
| ☐ | | ☐ | ||
| ☐ | | ☐ | ||
|- | |- | ||
| | | Funktionen mit Eingaben, Parametern und Rückgabewerten erklären und sinnvoll einsetzen. | ||
| ☐ | | ☐ | ||
| ☐ | | ☐ | ||
|- | |- | ||
| | | die Begriffe Klasse, Objekt, Attribut und Methode an einfachen Beispielen richtig verwenden. | ||
| ☐ | | ☐ | ||
| ☐ | | ☐ | ||
|- | |- | ||
| | | dieselbe Aufgabe aus mehreren Programmierparadigmen betrachten und Unterschiede in der Struktur erkennen. | ||
| ☐ | | ☐ | ||
| ☐ | | ☐ | ||
|- | |- | ||
| | | für eine einfache Problemstellung ein geeignetes Paradigma oder eine sinnvolle Mischform auswählen und die Entscheidung begründen. | ||
| ☐ | | ☐ | ||
| ☐ | | ☐ | ||
Aktuelle Version vom 15. September 2026, 10:47 Uhr
Worum geht es? 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.
Lernziele
[Bearbeiten]Nach diesem Kapitel kannst du:
- 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.
Anschluss an die 6. Klasse
[Bearbeiten]Funktionen, Kontrollstrukturen und Algorithmen aus der 6. Klasse werden erweitert. Du vergleichst nun prozedurale, funktionale und objektorientierte Denkweisen.
Lerninhalte
[Bearbeiten]Kompaktüberblick
[Bearbeiten]| Teilbereich | Kerngedanke |
|---|---|
| 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. |
| 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 … |
| 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 … |
| 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 … |
| 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 … |
| 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 … |
| 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 … |
Merke: Programmierparadigmen sind unterschiedliche Denkweisen zur Strukturierung von Lösungen - keine starren Schubladen.
Programmierparadigmen als unterschiedliche Denkweisen
[Bearbeiten]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
[Bearbeiten]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.
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.
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
[Bearbeiten]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.
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.
Orientierung auf einen Blick
[Bearbeiten]| Als Nächstes | Kurz erklärt |
|---|---|
| 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 … |
| 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 … |
Merke: Objektorientierte Programmierung beschreibt Programme als Zusammenspiel von Dingen mit Eigenschaften und Verhalten, wodurch sich viele Alltags-und Spielwelten anschaulich modellieren lassen und …
Objektorientierte Programmierung
[Bearbeiten]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
[Bearbeiten]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.
Zweiter Zwischenüberblick
[Bearbeiten]| Vertiefung | Wichtig dabei |
|---|---|
| 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 … |
| 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 … |
Merke: Die einzelnen Teilaspekte gehören zusammen und sollten an konkreten Beispielen miteinander verknüpft werden.
Typische Begriffe und sprachliche Unterscheidungen
[Bearbeiten]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
[Bearbeiten]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.
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.
Werkzeuge: Scratch, Python, JavaScript, MakeCode, Open Roberta, Microcontroller, Pair Programming, Codekarten.
Kurz zusammengefasst
[Bearbeiten]| Kernkompetenz | Das bedeutet konkret |
|---|---|
| Paradigmen benennen | Prozedurale, funktionale und objektorientierte Programmierung als unterschiedliche Denk- und Strukturierungsweisen nennen. |
| Ansätze unterscheiden | Erkennen, ob eine Lösung vor allem aus Abläufen, Funktionen oder zusammenarbeitenden Objekten aufgebaut ist. |
| Abläufe erklären | Den Zusammenhang „Abläufe“ in eigenen Worten erläutern und an einem passenden Beispiel zeigen. |
| Funktionen nutzen | Wiederverwendbare Berechnungen oder Teilaufgaben mit klaren Eingaben und Rückgaben kapseln. |
| Objekte beschreiben | Objekte durch Zustand bzw. Attribute und durch mögliche Methoden oder Verhaltensweisen charakterisieren. |
| Zustände erkennen | „Zustände“ in konkreten Beispielen anhand typischer Merkmale identifizieren und von ähnlichen Fällen abgrenzen. |
| Parameter erklären | Parameter als Eingabewerte einer Funktion oder Methode erläutern, mit denen ihr Verhalten gesteuert wird. |
| Rückgaben deuten | Verstehen, welchen Wert eine Funktion als Ergebnis liefert und wie dieser weiterverwendet werden kann. |
Merke: Die wichtigsten Zusammenhänge solltest du nicht nur wiedergeben, sondern an neuen Beispielen erklären, anwenden und begründet beurteilen können.
Weiterführende Links
[Bearbeiten]Passende LearningSnacks
Übungen
[Bearbeiten]Die Aufgaben setzen die Inhalte praktisch um. Der konkrete Auftrag ist bei jeder Aufgabe ausdrücklich unter Arbeitsauftrag: gekennzeichnet.
Ein Problem in drei Sichtweisen beschreiben
[Bearbeiten]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.
Arbeitsauftrag:
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.
Paradigmen an Alltagsbeispielen zuordnen
[Bearbeiten]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.
Arbeitsauftrag:
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.
Prozedurales Programmieren mit Ablaufkarten
[Bearbeiten]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.
Arbeitsauftrag:
Die Lernenden erstellen mit Karten einen vollständigen Ablauf, markieren Schleifen und Bedingungen farblich und setzen den Ablauf danach in einer blockbasierten Programmierumgebung um.
Funktionale Denkweise mit Eingabe und Rückgabe trainieren
[Bearbeiten]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.
Arbeitsauftrag:
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.
Objektorientierte Modellierung mit Klassenkarten
[Bearbeiten]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.
Arbeitsauftrag:
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.
Pair Programming mit Rollenwechsel
[Bearbeiten]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.
Arbeitsauftrag:
Die Zweierteams lösen eine Programmieraufgabe im Pair Programming, dokumentieren ihre Rollenwechsel und notieren am Ende, welche Entscheidungen sie gemeinsam verbessert oder vereinfacht haben.
Hybridarbeit zwischen Blockcode und Textcode
[Bearbeiten]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.
Arbeitsauftrag:
Die Gruppen entwickeln ein kleines Blockprogramm, vergleichen die Textdarstellung und markieren anschließend, wo Abläufe, Funktionen oder objektbezogene Aufrufe im Textcode sichtbar werden.
Fangspiel oder Microcontroller-Projekt erweitern
[Bearbeiten]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.
Arbeitsauftrag:
Jede Gruppe erweitert ein vorhandenes Projekt, dokumentiert ihre Änderungen und ordnet am Ende konkrete Programmteile den drei Paradigmen zu.
Begriffe sichern mit Sortier- und Erklärkarten
[Bearbeiten]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.
Arbeitsauftrag:
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.
Denkwege reflektieren und vergleichen
[Bearbeiten]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.
Arbeitsauftrag:
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.
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 als unterschiedliche Denk- und Strukturierungsweisen erklären. | ☐ | ☐ |
| einen einfachen Ablauf prozedural in geordneten Schritten, Bedingungen und Wiederholungen beschreiben. | ☐ | ☐ |
| Funktionen mit Eingaben, Parametern und Rückgabewerten erklären und sinnvoll einsetzen. | ☐ | ☐ |
| die Begriffe Klasse, Objekt, Attribut und Methode an einfachen Beispielen richtig verwenden. | ☐ | ☐ |
| dieselbe Aufgabe aus mehreren Programmierparadigmen betrachten und Unterschiede in der Struktur erkennen. | ☐ | ☐ |
| für eine einfache Problemstellung ein geeignetes Paradigma oder eine sinnvolle Mischform auswählen und die Entscheidung begründen. | ☐ | ☐ |