Programmieren für technische Aufgaben – Programme mit Debugging untersuchen
Einleitung
Programmieren für technische Aufgaben – Programme mit Debugging untersuchen
Zielgruppe: Technische und IT-Berufsausbildung
Dauer: ca. 60 Minuten, vier kurze Lerneinheiten mit Übungen
Kurzbeschreibung: Du untersuchst Zwischenzustände, setzt Haltepunkte, findest einen Logikfehler und überprüfst Deine Korrektur mit automatisierten Tests.
Lernziele: Fehler reproduzieren, Variablen beobachten, Debugger einsetzen, Testfälle bewerten und Änderungen begründen.
Werkzeuge: Python 3 und optional Thonny. Alle Programmierübungen funktionieren lokal mit der Python-Standardinstallation.
Sicherheitsregel: Verwende ausschließlich die fiktiven Messwerte dieses Kurses. Arbeite in einem eigenen Übungsordner, möglichst auf einem vom Produktionsnetz getrennten Lernsystem. Keine Verbindung zu realen Steuerungen, fremden Netzen, Kundensystemen oder produktiven Anlagen herstellen. Keine Zugangsdaten verwenden oder Daten an externe Dienste senden.
Hinweis zu Medien: Die Videos sind optionale externe Lernmedien. Rufe sie nur auf, wenn externe Inhalte in Deiner Lernumgebung erlaubt sind. Die Programmieraufgaben benötigen keine Internetverbindung.

Abbildung: Thermometer als Symbol für die fiktive Temperaturüberwachung.
Dein Lernpfad
| Einheit | Ziel | Aktivität | Zeit |
|---|---|---|---|
| Basis | Sollverhalten verstehen | Messwerte visualisieren | 10 Minuten |
| Debugging | Zwischenzustände untersuchen | Haltepunkte und Einzelschritte | 15 Minuten |
| Fehlersuche | Ursache nachweisen | Lokale Python-Teststation A | 15 Minuten |
| Testen | Korrektur überprüfen | Lokale Python-Teststation B | 20 Minuten |
Lerneinheit 1: Technischen Fehlerfall verstehen
Ausbildungsfall: Temperaturüberwachung
In einer fiktiven Werkstatt soll ein Programm die Temperatur einer simulierten Anlage überwachen.
Anforderung: Eine Warnung wird ausgelöst, sobald zwei unmittelbar aufeinanderfolgende Messwerte mindestens 80 °C erreichen.
80 °C zählt bereits als hoher Wert. Ein niedrigerer Messwert unterbricht die Folge.
Messreihe: 72, 86, 91, 75 °C.
| Messung | Temperatur | Visualisierung | Hohe Werte in Folge | Sollzustand |
|---|---|---|---|---|
| A | 72 °C | ███████ | 0 | Keine Warnung |
| B | 86 °C | ████████ | 1 | Keine Warnung |
| C | 91 °C | █████████ | 2 | Warnung |
| D | 75 °C | ███████ | 0 | Warnung wurde bereits ausgelöst |
Balkendiagramm: Ein Block entspricht ungefähr 10 °C; die Balken sind abgerundet. Die Zahlen enthalten die genauen Werte.
Beobachtung: Spätestens bei Messung C muss die Funktion eine Warnung melden.
Mini-Aufgabe: Begründe, warum die Messreihe 80, 79, 80 dagegen keine Warnung auslösen darf.
Feedback: 79 °C unterbricht die Folge. Deshalb gibt es keine zwei unmittelbar aufeinanderfolgenden hohen Werte.
Visualisierung von Programmabläufen

Abbildung: Beispiel eines Programmablaufplans. Die Entscheidung über einen Grenzwert ist eine typische Verzweigung. Das Bild zeigt allgemeine Ablaufsymbole, nicht das konkrete Temperaturprogramm.
Übertrage das Prinzip auf den Ausbildungsfall:
| Verarbeitung | Entscheidung oder Aktion |
|---|---|
| Eingabe | Nächsten fiktiven Messwert lesen |
| Grenzwertvergleich | Temperatur mindestens 80 °C? |
| Zähler | Bei hohem Wert erhöhen, sonst zurücksetzen |
| Warnbedingung | Mindestens zwei hohe Werte in Folge? |
| Ausgabe | Warnung oder keine Warnung |
Lerneinheit 2: Programme mit einem Debugger untersuchen
Ein Debugger hält ein Programm gezielt an. Du kannst den aktuellen Zustand beobachten und den Ablauf schrittweise verfolgen.

Abbildung: Die Python-Entwicklungsumgebung Thonny bei der schrittweisen Programmausführung.
Fünf wichtige Debugging-Werkzeuge
| Werkzeug | Funktion | Anwendung |
|---|---|---|
| Breakpoint | An einer Stelle anhalten | Vor einer verdächtigen Entscheidung |
| Step Into | In einen Funktionsaufruf hineinlaufen | Funktion genauer untersuchen |
| Step Over | Nächsten Schritt derselben Funktion erreichen | Funktionsaufruf zunächst überspringen |
| Variablenansicht | Aktuelle Werte beobachten | Zählerstand prüfen |
| Continue | Bis zum nächsten Haltepunkt fortsetzen | Weitere Messungen beobachten |
Merksatz: Vergleiche beim Debuggen immer den erwarteten mit dem tatsächlichen Zwischenzustand.
Video: Thonny Tips – Using the Debugger. Demonstration der schrittweisen Fehlersuche.
Haltepunkte gezielt setzen
Ein Haltepunkt spart Zeit, weil das Programm nicht bei jeder Anweisung untersucht werden muss.
Video: Thonny Tips – Using break points.
Praxisfrage: An welcher Stelle würdest Du den Zähler untersuchen?
Feedback: Direkt nach der Aktualisierung des Zählers und vor der Warnbedingung. Dort erkennst Du, ob der Wert korrekt berechnet wird, aber anschließend falsch bewertet wird.
Lerneinheit 3: Lokale Teststation A – Fehler nachweisen
Vorbereitung
Erstelle auf Deinem Lerncomputer einen separaten Ordner debug_lernlabor.
Speichere das folgende Programm unter dem Dateinamen fall.py.
Das Programm verwendet ausschließlich fiktive Daten, keine externen Bibliotheken und keine Netzwerkverbindungen.
Programm mit absichtlichem Fehler
def warnung(werte, grenze=80):
serie = 0
for wert in werte:
serie = serie + 1 if wert >= grenze else 0
# breakpoint() # Zum Debuggen # entfernen
if serie >= 3: # Absichtlicher Logikfehler
return True
return False
if __name__ == "__main__":
messwerte = [72, 86, 91, 75]
print("Warnung:", warnung(messwerte))
for nr, wert in enumerate(messwerte, 1):
print(f"{nr}: {'#' * (wert // 10)} {wert} °C")Ausführen: Öffne ein Terminal im Übungsordner und verwende:
python -B fall.py
Falls Dein System den Interpreter über python3 startet, ersetze python durch python3. Unter Windows ist gegebenenfalls py -3 erforderlich.
Erwartete Ausgabe des fehlerhaften Programms:
Warnung: False 1: ####### 72 °C 2: ######## 86 °C 3: ######### 91 °C 4: ####### 75 °C
Problem: Die Funktion liefert False, obwohl bei 86 °C und 91 °C eine Warnung entstehen muss.
Interaktive Testumgebung: Python-Debugger
Python enthält den interaktiven Debugger pdb bereits in der Standardbibliothek.
- Entferne nur das Kommentarzeichen vor
breakpoint(). - Starte
fall.pyerneut im lokalen Terminal. - Gib am Prompt
(Pdb)die folgenden Debugger-Befehle ein. - Beobachte die Variablen
wertundserie.
p wert p serie c
p zeigt den Wert eines Ausdrucks. c setzt die Ausführung bis zum nächsten Haltepunkt fort.
Kontrolltabelle:
| Messwert | wert
|
serie
|
Warnung nach dieser Messung erwartet? |
|---|---|---|---|
| A | 72 | 0 | Nein |
| B | 86 | 1 | Nein |
| C | 91 | 2 | Ja |
| D | 75 | 0 | Warnung hätte schon erfolgen müssen |
Wichtig: Der Haltepunkt befindet sich nach der Berechnung von serie. So beobachtest Du jeweils den neuen Zählerstand.
Video: Debugging with breakpoint in Python. Demonstration des integrierten Python-Debuggers.
Gezielte statt vollständige Fehlersuche
Wenn Du nur den kritischen Messwert untersuchen möchtest, ersetze die auskommentierte Debugging-Zeile vorübergehend durch:
if wert == 91:
breakpoint()Aufgabe: Erkläre, warum gerade dieser Messwert für die Fehlersuche geeignet ist.
Begründetes Feedback: Bei 91 °C erreicht serie den Wert 2. Die fachliche Warnbedingung ist erfüllt, die fehlerhafte Programmabfrage jedoch noch nicht.
Entferne die zusätzliche Debugging-Anweisung nach der Untersuchung wieder.
Gestufte Hilfen
| Stufe | Hilfe |
|---|---|
| Hilfe 1 – Beobachten | Vergleiche die Zählerstände bei 86 °C und 91 °C. |
| Hilfe 2 – Eingrenzen | Prüfe, ob die Zählerberechnung oder der anschließende Vergleich falsch ist. |
| Hilfe 3 – Konkretisieren | Vergleiche die fachliche Forderung nach zwei hohen Werten mit der Bedingung serie >= 3.
|
Lerneinheit 4: Lokale Teststation B – Fehler korrigieren und testen
Automatisierte Testfälle
Erstelle im selben lokalen Übungsordner eine zweite Datei namens pruefen.py.
from fall import warnung
faelle = [
("zwei hohe Werte", [72, 86, 91, 75], True),
("Grenzwert inklusive", [80, 80], True),
("unterbrochene Folge", [80, 79, 80], False),
("drei hohe Werte", [90, 90, 90], True),
("leere Messreihe", [], False),
]
for name, daten, soll in faelle:
ist = warnung(daten)
status = "OK" if ist == soll else "FEHLER"
print(f"{name}: {status} (ist={ist}, soll={soll})")Start:
python -B pruefen.py
Testübersicht vor der Korrektur:
| Testfall | Soll | Ist | Ergebnis |
|---|---|---|---|
| Zwei hohe Werte | True | False | FEHLER |
| Grenzwert inklusive | True | False | FEHLER |
| Unterbrochene Folge | False | False | OK |
| Drei hohe Werte | True | True | OK |
| Leere Messreihe | False | False | OK |
Arbeitsauftrag: Korrigiere genau die fehlerhafte Warnbedingung in fall.py und starte anschließend beide Programme erneut.
Musterlösung und begründetes Feedback
Die korrigierte Zeile lautet:
if serie >= 2:
return TrueWarum? Die Anforderung verlangt zwei unmittelbar aufeinanderfolgende hohe Messwerte. serie zählt diese korrekt; nur der Vergleich war um eins zu hoch.
Erwartetes Ergebnis: Alle fünf Tests zeigen OK.
| Test | Warum ist das Ergebnis korrekt? |
|---|---|
| Zwei hohe Werte | Die Warnung wird beim zweiten hohen Wert ausgelöst. |
| Grenzwert inklusive | Auch exakt 80 °C erfüllt die Bedingung. |
| Unterbrochene Folge | 79 °C setzt den Zähler zurück. |
| Drei hohe Werte | Die Warnung erfolgt bereits beim zweiten hohen Wert. |
| Leere Messreihe | Ohne Messungen kann keine Warnbedingung erfüllt sein. |
Transfergedanke: Das Beseitigen eines einzelnen Fehlers genügt nicht. Regressionstests überprüfen, ob sich das Programm auch bei anderen Eingaben weiterhin korrekt verhält.

Abbildung: Historischer grafischer Python-Debugger Winpdb. Die Oberfläche unterscheidet sich von Thonny, das Prinzip der Zustandsuntersuchung bleibt vergleichbar.
Reflexion und Werkzeugtransfer
Video: Tech Skills Day 2024 – How to debug your Python code with pdb. Vertiefung für Fortgeschrittene.
Vergleiche: Wann ist die Variablenansicht einer grafischen Entwicklungsumgebung hilfreicher, wann die direkte Eingabe von Debugger-Befehlen?
Feedback: Eine grafische Ansicht macht mehrere Werte übersichtlich. Befehle wie p und c eignen sich dagegen auch für einfache lokale Terminalumgebungen.
Interaktive Aufgaben
Quiz: Teste Dein Wissen
Was bewirkt ein Haltepunkt beim Debugging? (Er unterbricht die Programmausführung gezielt) (!Er entfernt automatisch alle Fehler) (!Er startet das Betriebssystem neu) (!Er löscht sämtliche Variablen)
Welche Variable zählt im Ausbildungsfall die aufeinanderfolgenden hohen Messwerte? (serie) (!grenze) (!messwerte) (!nr)
Welches Ergebnis wird für die Messreihe 72, 86, 91, 75 erwartet? (True) (!False) (!None) (!SyntaxError)
Welchen Wert hat serie nach dem Messwert 91? (2) (!0) (!1) (!3)
Warum funktioniert die ursprüngliche Warnbedingung nicht wie gefordert? (Sie verlangt drei statt zwei hohe Werte) (!Sie verwendet eine falsche Programmiersprache) (!Sie liest reale Sensordaten) (!Sie enthält eine fehlerhafte Schleifensyntax)
Welche Aufgabe übernimmt der pdb-Befehl p serie? (Er zeigt den aktuellen Zählerwert) (!Er beendet das Programm) (!Er korrigiert automatisch den Fehler) (!Er verbindet sich mit einem Sensor)
Warum muss die Messreihe 80, 80 eine Warnung auslösen? (Weil der Grenzwert eingeschlossen ist) (!Weil nur Werte oberhalb von 90 zählen) (!Weil jede Messreihe eine Warnung auslöst) (!Weil der Zähler immer mit zwei beginnt)
Was geschieht mit serie bei einem Wert unterhalb des Grenzwerts? (Der Zähler wird auf null zurückgesetzt) (!Der Zähler wird verdoppelt) (!Der Zähler wird dauerhaft gespeichert) (!Der Zähler bleibt unverändert)
Wozu dient ein Regressionstest? (Er prüft die Funktion nach einer Änderung erneut) (!Er ersetzt die gesamte Programmdokumentation) (!Er verhindert jede zukünftige Fehlermeldung) (!Er misst die Temperatur eines echten Geräts)
Welche Testdaten sind in diesem Kurs zulässig? (Fiktive lokal gespeicherte Messwerte) (!Ungefragt kopierte Kundendaten) (!Messwerte einer fremden Produktionsanlage) (!Zugangsdaten eines betrieblichen Netzwerks)
Feedback zum Quiz
| Fragen | Begründung |
|---|---|
| 1 und 2 | Haltepunkte machen den Ablauf beobachtbar; der Zähler speichert den relevanten Zwischenzustand. |
| 3 und 4 | Zwei hohe Werte in Folge erfordern True; der Zähler erreicht dafür den Wert 2. |
| 5 und 6 | Der fehlerhafte Vergleich ist die Ursache; pdb zeigt den tatsächlichen Wert. |
| 7 und 8 | Die Grenze zählt einschließlich 80 °C, niedrigere Werte unterbrechen die Folge. |
| 9 und 10 | Änderungen müssen erneut getestet werden; ausschließlich freigegebene Übungsdaten sind zu verwenden. |
Memory
Finde sechs zusammengehörende Begriffspaare.
| Haltepunkt | Gezielte Programmunterbrechung |
| Einzelschritt | Schrittweise Programmausführung |
| Variablenanzeige | Beobachtung aktueller Werte |
| Testfall | Eingabe mit erwartetem Ergebnis |
| Regressionstest | Erneute Prüfung nach Änderung |
| Grenzwert | Festgelegte Vergleichsschwelle |
Drag and Drop
Ordne die passenden Fachbegriffe zu.
| Ordne die richtigen Begriffe zu. | Debugging-Werkzeug oder Testprinzip |
|---|---|
| Gezielte Unterbrechung | Haltepunkt |
| Einstieg in einen Funktionsaufruf | Step Into |
| Nächster Schritt derselben Funktion | Step Over |
| Vergleich von Soll und Ist | Testfall |
| Wiederholte Prüfung nach einer Änderung | Regressionstest |
Kreuzworträtsel
| Haltepunkt | Wie heißt eine Stelle, an der ein Debugger den Programmablauf gezielt unterbricht? |
| Debugger | Welches Werkzeug unterstützt die schrittweise Fehlersuche? |
| Variable | Wie heißt ein benannter Speicherplatz für einen Programmwert? |
| Testfall | Wie nennt man eine festgelegte Eingabe mit erwartetem Ergebnis? |
| Grenzwert | Wie heißt die festgelegte Schwelle für einen Vergleich? |
| Logikfehler | Welcher Fehlertyp entsteht durch eine sachlich falsche Programmbeziehung? |
LearningApps
Optionale Ergänzung: Suche nach passenden Lernaktivitäten. LearningApps ist keine Testumgebung für den Python-Code. Keine Programmdateien, Zugangsdaten oder betrieblichen Messwerte dort eingeben.
Lückentext
Offene Aufgaben
Bearbeite zunächst die Basisaufgaben, danach die Anwendungsaufgaben und schließlich den Transfer.
Leicht – Basisaufgaben
- Datenvisualisierung: Zeichne ein Balkendiagramm der vier Temperaturwerte und markiere die Warnschwelle von 80 °C.
- Variablen: Dokumentiere die vier Zwischenzustände der Variable
seriein einer Tabelle. - Debugger: Untersuche mit Thonny oder pdb die Messung C und erstelle einen Screenshot oder eine schriftliche Beschreibung des lokalen Debugger-Zustands.
- Programmfehler: Schreibe einen kurzen Fehlerbericht mit Sollverhalten, Istverhalten und vermuteter Ursache.
Standard – Anwendungsaufgaben
- Bedingter Haltepunkt: Halte nur beim Messwert 91 an. Erkläre, weshalb diese Stelle besonders aufschlussreich ist.
- Softwaretest: Ergänze einen Test für die Messreihe 80, 79, 80 und begründe das erwartete Ergebnis.
- Python: Erweitere die lokale Konsolenausgabe um den aktuellen Zählerstand nach jeder Messung.
- Fehleranalyse: Vergleiche die Ausgaben vor und nach der Korrektur und dokumentiere mindestens zwei erfolgreich behobene Testfälle.
Schwer – Transferaufgaben
- Prozessüberwachung: Übertrage die Simulation auf fiktive Vibrationswerte einer Maschine. Lege eine sinnvolle Beispielregel fest und entwickle dazu eigene Testdaten.
- Grenzwert: Erweitere das Programm um einen veränderbaren Schwellenwert und prüfe mit Grenzfalltests, ob alle Vergleiche korrekt funktionieren.
- Programmierung: Entwickle eine zweite Warnfunktion, die erst nach drei aufeinanderfolgenden hohen Werten auslöst. Vergleiche beide Varianten anhand gleicher Testdaten.
- Qualitätssicherung: Gestalte ein kurzes Lernvideo oder einen illustrierten Prüfbericht, in dem Du Fehlersuche, Korrektur, Regressionstests und die sichere lokale Testumgebung erläuterst.


Begründetes Feedback zu den offenen Aufgaben
| Niveau | Woran erkennst Du eine überzeugende Lösung? |
|---|---|
| Basis | Messwerte, Grenze und Zählerstände stimmen überein. So wird der Fehler reproduzierbar. |
| Anwendung | Die Debugging-Schritte führen zur konkreten fehlerhaften Entscheidung. Tests belegen die Korrektur. |
| Transfer | Neue Anforderungen sind klar beschrieben, Grenzfälle geprüft und alle Daten bleiben fiktiv und lokal. |
Selbstkontrolle: Eine gute Lösung nennt nicht nur das richtige Ergebnis, sondern erklärt, warum das Programm genau dieses Ergebnis liefern muss.
Lernkontrolle
Bearbeite diese sechs Aufgaben ohne Hilfe durch die Musterlösung.
- Fehleranalyse: Eine Messreihe besteht aus 81, 79, 82 und 83 °C. Bestimme den ersten Zeitpunkt, an dem eine Warnung erfolgen muss, und begründe ihn anhand der Zählerstände.
- Debugging: Ein Programm liefert ein falsches Ergebnis, obwohl die Variablen richtig berechnet werden. Entwickle eine systematische Strategie zur Eingrenzung des Fehlers.
- Softwaretest: Entwirf vier neue Messreihen, die Grenzwerte, Unterbrechungen und längere Folgen hoher Werte abdecken. Begründe, warum diese Fälle wichtig sind.
- Qualitätssicherung: Begründe, weshalb das erfolgreiche Prüfen nur eines einzigen Beispiels kein ausreichender Nachweis für eine korrekte Warnfunktion ist.
- Technische Informatik: Übertrage die Debugging-Strategie auf eine vollständig simulierte Füllstandsüberwachung. Welche Zwischenzustände würdest Du beobachten?
- IT-Sicherheit: Erkläre, warum eine lokale Simulation gegenüber ungefragten Debugging-Versuchen an einer laufenden Produktionsanlage vorzuziehen ist.
Bewertungskriterien: Nachvollziehbare Zwischenzustände, passende Tests, schlüssige Fehlerursache, wirksame Korrektur und verantwortungsvoller Umgang mit der Testumgebung.
Lernnachweis
Für einen erfolgreichen Lernnachweis dokumentierst Du:
- Anforderung: Beschreibe die Warnbedingung eindeutig.
- Reproduktion: Zeige den Fehler anhand fiktiver Messwerte.
- Debugging: Belege mindestens drei untersuchte Zwischenzustände.
- Fehlerursache: Erkläre den Unterschied zwischen der ursprünglichen und der korrigierten Bedingung.
- Testnachweis: Dokumentiere alle fünf Testfälle vor und nach der Korrektur.
- Transfer: Entwickle einen zusätzlichen aussagekräftigen Grenzfalltest.
- Sicherheit: Bestätige, dass ausschließlich lokale Übungsdateien und fiktive Daten verwendet wurden.
Geeignete Abgabe: Kurzer Prüfbericht mit Tabellen, anonymisierten lokalen Screenshots und den beiden Python-Quelltexten.
Erfolgreich bestanden: Du kannst einen Logikfehler reproduzieren, über Zwischenzustände eingrenzen, begründet korrigieren und die Korrektur durch Tests nachweisen.
OERs zum Thema
Wikipedia: Debugger
Weitere Informationen: Debuggen, Haltepunkt, Softwaretest, Python.
Fachlich überprüfbare Quellen
- Python-Dokumentation: pdb – Haltepunkte, Einzelschritte und Variableninspektion.
- Python-Dokumentation: breakpoint – Aufruf des integrierten Debuggers.
- Thonny: Using debuggers – Funktionen der grafischen Fehlersuche.
- Python-Dokumentation: unittest – Grundlagen automatisierter Softwaretests.
- Wikipedia: Debugger – Einordnung der Debugging-Werkzeuge.
Mediennachweise und Nutzungsrechte
Die verwendeten Wikimedia-Commons-Abbildungen sind mit ihren nachprüfbaren Dateiseiten und Lizenzinformationen aufgeführt.
| Medium | Urheberangabe | Lizenz beziehungsweise Nutzungsstatus |
|---|---|---|
| Thermometer – The Noun Project | Marco Olgio | CC0 1.0 |
| Flowchart de.svg | Erik Streb | CC BY-SA 3.0 |
| Thonny-Screenshot | Aivar Annamaa | CC BY-SA 4.0 |
| Winpdb-Screenshot | Commons-Datei von Adriatikus, Software von Nir Aides | CC BY-SA 3.0; Software unter GPL, weitere Hinweise auf der Dateiseite |
YouTube-Videos: Die eingebetteten Videos wurden anhand ihrer auffindbaren Originalseiten ausgewählt. Eine freie OER-Lizenz wird für sie nicht behauptet. Urheberrechte und mögliche Einbettungsbeschränkungen bleiben zu beachten. Bei fehlender Zustimmung zu externen Inhalten kann der gesamte Praxiskurs ohne Videos bearbeitet werden.
Codebeispiele: Die Python-Beispiele wurden eigens für diesen Lernkurs formuliert. Sie verwenden nur die Standardbibliothek beziehungsweise Python-Grundfunktionen und ausschließlich fiktive Daten. Die Übungen verändern keine realen Anlagenzustände. Ein lokaler Python-Prozess ist allerdings keine vollständige Sicherheits-Sandbox; nutze deshalb nur vertrauenswürdigen Übungscode auf einem freigegebenen Lernsystem.
Verknüpfte Lernbereiche
aiMOOC-Projekte
Schulfach+


aiMOOCs


aiMOOC Projekte


MOOCwiki · Deutsch
Nach dem Lernen ist vor dem Lernen
Entdecke direkt den nächsten Lernkurs. Weitere Inhalte erscheinen, wenn Du weiter nach unten scrollst.
Zur MOOCwiki-HauptseiteMediathek
Mediathek wird aus dem Wiki geladen ...
Keine passenden Inhalte gefunden. Bitte ändere Suche oder Filter.
NEWSLernweltNOAH fragen