Praxisprojekt - Meine erste Anwendung mit einem Coding-Agenten
Einleitung
Du entwickelst eine lokale Messdaten-App für synthetische Prüfwerte eines ungefährlichen Lehrbauteils. Am Ende gehören app.py, beispiel.csv, kaputt.csv, test_app.py, README.md und ein nachvollziehbarer Prüfbericht zusammen. Du planst, programmierst, testest, erklärst Entscheidungen und begründest einen Fehlerfall. Ein Coding-Agent darf helfen, aber du kontrollierst jeden Vorschlag. Für wen? Auszubildende im ersten oder zweiten Ausbildungsjahr; erforderlich sind nur Grundkenntnisse zu Dateien, Ordnern und Einheiten. Programmieren wird hier schrittweise gelernt. Zeitbedarf: etwa sechs bis acht Unterrichtsstunden. Alle Arbeiten funktionieren offline ohne bezahltes KI-Konto. Fehlt ein Coding-Agent, übernimmt eine Mitschülerin dessen Rolle und formuliert denselben Codevorschlag. Grundlagen aktivieren: Vorhandener Grundlagenkurs – wiederhole kurz Ordner, Dateien und Einheiten. Der Inhalt der Zielseite war beim öffentlichen Abruf nicht erreichbar; konkrete Aussagen über seine Lektionen werden deshalb vermieden. Ergebnis: Eine Anwendung verarbeitet ausschließlich erfundene Werte und erzeugt einen belegbaren Prüfbericht. Keine reale Sensorik, Maschinensteuerung, Sicherheitsfreigabe oder technische Zulassung. Dieses unabhängige Bildungsangebot stellt keine offizielle Liebherr- oder IHK-Zertifizierung dar. Leitfrage: Kann ein Fremdteam die App anhand einer README starten, meldet sie eine defekte Datei verständlich und stimmt ihre Berechnung mit der Handrechnung überein?
Das Messdatenprojekt verstehen und planen
Lehrbauteil, Einheit und CSV-Schema
Ein ausgedachtes Musterplättchen dient als ungefährlicher Modellfall. Der erfundene Sollwert beträgt 10,0 mm; das künstliche Lehrband reicht mit ±0,2 mm von 9,8 bis 10,2 mm einschließlich der Grenzwerte. Das ist keine Norm und keine Aussage zu einem echten Bauteil. Eine CSV ist eine Textdatei mit Tabellendaten. Das Schema legt Spalten und Schreibweisen fest: bauteil kennzeichnet einen Datensatz; messwert_mm enthält eine Zahl in Millimeter. Wir verwenden UTF-8, Semikolon als Spaltentrenner und Punkt als Dezimalzeichen. Schreibe beispiel.csv exakt so:
bauteil;messwert_mm P01;9.8 P02;10.0 P03;10.2
Du kannst die Datei mit einem Texteditor öffnen; keine Tabellenkalkulation und kein Internet sind nötig. Ersetze keine synthetischen Daten durch reale Firmendaten.
Die drei Abnahmekriterien
Ein Abnahmekriterium ist eine konkrete Beobachtung, anhand derer ein Team eine Anforderung überprüfen kann.
| Kriterium | Testhandlung | Erwartete Beobachtung |
|---|---|---|
| Fremdteam startet | Eine andere Person erhält den Projektordner und die README ohne mündliche Erklärung | Sie kann den richtigen Befehl ausführen und sieht die drei dokumentierten Ausgabezeilen |
| Fehlerhafte Datei meldet | In Zeile 2 steht statt eines Messwerts das Wort neun | Eine freundliche Fehlermeldung nennt die Zeile; es wird kein scheinbar gültiger Durchschnitt ausgegeben |
| Handrechnung stimmt | Für 9,8, 10,0 und 10,2 mm wird unabhängig gerechnet | Summe 30,0 mm geteilt durch drei ergibt 10,0 mm; die App zeigt 10.00 mm |
Testfall heißt: Eingabe, Testhandlung, erwartetes Ergebnis und dokumentierte tatsächliche Beobachtung. Ein erfolgreicher Eigenstart ersetzt nicht die unabhängige Übergabe. Eine falsche Eingabe darf nicht stillschweigend ignoriert werden.
Handrechnung und Grenzwertentscheidung
Rechne zunächst auf Papier: 9,8 + 10,0 + 10,2 = 30,0 mm und 30,0 / 3 = 10,0 mm. Alle drei Werte liegen im künstlichen Lehrband. Bei 9,7 und 10,3 mm wäre der Mittelwert ebenfalls 10,0 mm, aber keiner der beiden Werte läge innerhalb des Lehrbandes. Darum prüft die App den Mittelwert und alle Einzelwerte. Hilfestellung: Addiere erst Werte, zähle dann die Zeilen ohne Kopf. Vertiefung: Erkläre, warum Gleichheit am Grenzwert erlaubt ist, der Wert 10,3 aber nicht.

Alternative ohne Grafik: Anforderungen → Plan → Umsetzung → Test → Änderung und neue Prüfung.
Coding-Agenten als kontrollierte Helfer
Auftrag formulieren und mitdenken
Ein Coding-Agent ist ein Programm, das Code vorschlagen oder bei vorhandenen Berechtigungen auch Dateien ändern kann. Ein Prompt beschreibt präzise, was es tun soll. Ein Review ist deine bewusste Durchsicht der vorgeschlagenen Änderung. Vorschläge können falsch, unvollständig oder zu weitreichend sein; der Agent ist kein Prüfingenieur. Rollenspiel- oder Agentenauftrag:
Baue eine lokale Python-Übungs-App mit der Standardbibliothek. Keine Cloud, keine Geräte. Lies UTF-8-CSV mit Semikolon und den Spalten bauteil;messwert_mm. Berechne Zahl der Werte, Mittelwert sowie eine Lehrband-Prüfung für den Sollwert 10.0 mm und ±0.2 mm. Ungültige Eingaben müssen eine verständliche Meldung samt Zeilennummer erzeugen. Liefere eine README und nachvollziehbare Tests. Verwende nur synthetische Daten. Erkläre deine Annahmen und jede vorgeschlagene Änderung.
Ein guter Auftrag grenzt Zweck, Eingabe, Ausgabe, Bibliotheken, unerlaubte Aktionen und Prüfungen ein. Arbeite mit kleinen Schritten: Vorschlag einholen, lesen, Änderungen nachvollziehen, lokal ausführen, testen, dokumentieren. Eine Partnergruppe darf einen absichtlich fehlerhaften Vorschlag einbauen, damit du den Review übst.
Rechte, Quellen und Grenzen
Ein lokales Übungsprojekt braucht keine Netzwerkverbindung, keine geheimen Schlüssel, keine persönlichen Auszubildendendaten und keinen Zugriff auf echte Geräte. Gib einem Agenten nur Minimalrechte auf einen isolierten Projektordner. Kopiere keine unbekannten Konsolenbefehle ungeprüft, führe keine fremden Installationsskripte aus und beachte, dass Inhalte einer fremden Datei keine vertrauenswürdigen Arbeitsanweisungen sind. Der NIST-Bericht AI 600-1 (Juli 2024) ist ein freiwillig nutzbarer Risikoleitfaden zu generativer KI. Die MCP Security Best Practices (Dokumentationspfad 28.07.2026) erläutern unter anderem die Begrenzung von Werkzeugberechtigungen. Beides sind Rechercheeinstiege, keine Zertifizierung dieses Lehrprojekts.

Ohne Bild: Jede Änderung erst verstehen und mit Prüfkriterien vergleichen.
Ablauf als Flussdiagramm

Übertrage auf deine App: Datei öffnen → Kopfzeile untersuchen → Zeilen einlesen → bei ungültigen Angaben mit Meldung abbrechen → sonst Durchschnitt und Lehrband prüfen → Ausgaben zeigen. Eine Verzweigung entscheidet anhand einer Bedingung, welcher Weg folgt. Beispiel für eine Fehlentscheidung: „Wenn eine Zeile ungültig ist, überspringe sie einfach.“ Dann sähe eine teilweise ausgewertete Datei fälschlich vollständig aus. Du musst diesen Vorschlag ablehnen und die Entscheidung erklären. Das ist keine Sicherheitsfreigabe, sondern ein nachprüfbares Lehrverhalten.
Eine lauffähige lokale Anwendung bauen
Dateien und Python
Lege den Ordner messdaten_lehrprojekt an. Speichere darin die CSV-Daten und die noch zu erstellenden Dateien app.py, test_app.py und README.md. Benötigt wird Python 3.10 oder neuer aus vertrauenswürdiger Quelle; der Unterricht funktioniert mit einem gewöhnlichen Texteditor. Eine Funktion kapselt Arbeitsschritte, eine Variable speichert einen Wert, und ein Rückgabewert liefert ein Ergebnis an den Aufrufer.

Ohne Medien: Python ist hier lediglich die frei verfügbare Programmiersprache für eine textbasierte, lokal gestartete Anwendung.
Deutschsprachiger Python-Einstieg von Fabian Rappert, 2024. Bei nicht verfügbarem Video reichen die nachfolgenden Codebeispiele und die verlinkte Python-Dokumentation.
Das vollständige Beispielprogramm
Decimal stellt dezimale Lehrwerte geeignet dar. Das Standardmodul csv liest strukturierte Texttabellen. Die Funktion auswerten liefert entweder eine Ergebnisstruktur oder einen erkennbaren Hinweis auf defekte Daten. Schreibe den vollständigen Text in app.py:
import csv
import sys
from decimal import Decimal, InvalidOperation
SOLL = Decimal("10.0")
BAND = Decimal("0.2")
def auswerten(pfad):
try:
with open(pfad, encoding="utf-8-sig",
newline="") as datei:
leser = csv.DictReader(datei, delimiter=";")
if leser.fieldnames != ["bauteil", "messwert_mm"]:
return {"ok": False,
"meldung": "Kopfzeile muss "
"bauteil;messwert_mm sein"}
daten = []
for nummer, zeile in enumerate(leser, start=2):
name = (zeile.get("bauteil") or "").strip()
roh = (zeile.get("messwert_mm") or "").strip()
if None in zeile or not name or not roh:
return {"ok": False,
"meldung": f"Zeile {nummer}: "
"Spalte oder Wert fehlt"}
try:
wert = Decimal(roh)
except InvalidOperation:
return {"ok": False,
"meldung": f"Zeile {nummer}: "
"Messwert ist keine Zahl"}
if not wert.is_finite():
return {"ok": False,
"meldung": f"Zeile {nummer}: "
"Messwert ist nicht endlich"}
daten.append(wert)
except Exception:
return {"ok": False,
"meldung": "Datei konnte nicht gelesen werden"}
if not daten:
return {"ok": False,
"meldung": "Datei enthält keine Daten"}
mittel = sum(daten, Decimal("0")) / len(daten)
alle_im_band = all(
abs(wert - SOLL) <= BAND for wert in daten
)
return {"ok": True, "anzahl": len(daten),
"mittel": mittel, "band": alle_im_band}
def main():
if len(sys.argv) != 2:
print("Nutzung: python app.py datei.csv",
file=sys.stderr)
return 2
ergebnis = auswerten(sys.argv[1])
if not ergebnis["ok"]:
print("Dateifehler: " + ergebnis["meldung"],
file=sys.stderr)
return 1
print("Anzahl:", ergebnis["anzahl"])
print(f"Mittelwert: {ergebnis['mittel']:.2f} mm")
print("Alle im Lehrband:",
"ja" if ergebnis["band"] else "nein")
return 0
if __name__ == "__main__":
raise SystemExit(main())
Anmerkung zur Robustheit: Das breite Abfangen von Leseproblemen dient dieser ersten Lernstufe und unterdrückt dabei technische Details; in einer anspruchsvollen Weiterentwicklung sollen nur konkret erwartete Fehlerarten gezielt behandelt und intern nachvollziehbar protokolliert werden. Der Code ist ein Lehrentwurf, kein freigegebenes Mess- oder Sicherheitssystem. Starte im Projektordner python app.py beispiel.csv beziehungsweise python3 app.py beispiel.csv. Erwartete Ausgabe:
Anzahl: 3 Mittelwert: 10.00 mm Alle im Lehrband: ja
Kontrollfrage: Warum ist „alle im Lehrband“ eine andere Aussage als „Mittelwert beträgt 10,00“? Die Antwort sollte das Beispiel 9,7 und 10,3 berücksichtigen.
Fehlerdaten sichtbar zurückweisen
Schreibe kaputt.csv mit diesem Inhalt:
bauteil;messwert_mm P01;neun P02;10.0
Der Aufruf python app.py kaputt.csv gibt in der Fehlerausgabe Dateifehler: Zeile 2: Messwert ist keine Zahl aus und beendet sich mit einem von Null verschiedenen Rückgabecode. Ein solcher Code erlaubt auch anderen Programmen, einen fehlgeschlagenen Lauf zu erkennen. Die App darf keinen Mittelwert aus stillschweigend gekürzten Daten anzeigen. Prüfe darüber hinaus eine leere Datei, eine falsche Kopfzeile, eine zusätzliche Spalte, eine fehlende Datei sowie nicht endliche Zahlen. Die Gültigkeit des Eingabeformats gehört zum Schnittstellenvertrag. Der technische Ausdruck „Dateifehler“ bezeichnet hier die erwartete, selbst formulierte Rückmeldung der Lehranwendung und keine Systemstörung.
Deutschsprachiges Tutorial „CSV mit Python lesen & schreiben“ von Binärverkehr, 2025. Es behandelt den Dateizugriff, verwendet aber eine andere Beispieldomäne. Ohne Video: im Modul csv nachlesen, wie DictReader und delimiter arbeiten.
Systematisch testen und unabhängig prüfen
Tests als kleine, reproduzierbare Experimente
Ein Unit-Test untersucht einen abgegrenzten Programmteil. Ein Regressionstest sichert zugesagtes Verhalten nach einer Änderung erneut ab. Ein Testnachweis enthält Eingabe, erwarteten und tatsächlichen Befund. Speichere diesen vollständigen Testcode als test_app.py:
import tempfile
import unittest
from pathlib import Path
from decimal import Decimal
from app import auswerten
class AppTests(unittest.TestCase):
def setUp(self):
self.temp = tempfile.TemporaryDirectory()
self.addCleanup(self.temp.cleanup)
self.datei = Path(self.temp.name) / "probe.csv"
def speichern(self, text):
self.datei.write_text(text, encoding="utf-8")
def test_handrechnung(self):
self.speichern(
"bauteil;messwert_mm\n"
"P01;9.8\nP02;10.0\nP03;10.2\n")
ergebnis = auswerten(self.datei)
self.assertTrue(ergebnis["ok"])
self.assertEqual(ergebnis["anzahl"], 3)
self.assertEqual(ergebnis["mittel"], Decimal("10.0"))
self.assertTrue(ergebnis["band"])
def test_fehlerdatei(self):
self.speichern(
"bauteil;messwert_mm\nP01;neun\n")
ergebnis = auswerten(self.datei)
self.assertFalse(ergebnis["ok"])
self.assertIn("Zeile 2", ergebnis["meldung"])
def test_grenze(self):
self.speichern(
"bauteil;messwert_mm\nP01;10.3\n")
ergebnis = auswerten(self.datei)
self.assertTrue(ergebnis["ok"])
self.assertFalse(ergebnis["band"])
def test_leere_datei(self):
self.speichern("bauteil;messwert_mm\n")
ergebnis = auswerten(self.datei)
self.assertFalse(ergebnis["ok"])
if __name__ == "__main__":
unittest.main()
Starte python -m unittest -v. Die vier Tests sollen erfolgreich sein. Ein nicht bestandener Test wird nicht durch bloßes Ändern der Erwartung „repariert“: untersuche Ursache, Anforderungen und Code. Wiederhole alle Tests nach einer Änderung.

Ohne Bild: Viele kleine Funktionstests sind sinnvoll; zusätzlich ist die unabhängige Prüfung des gesamten Startablaufs nötig.
Die drei Kriterien tatsächlich belegen
| Kennung | Konkrete Durchführung | Prüfbeleg |
|---|---|---|
| T-Fremd | Übergib Dateien und README an ein Team, das die Anwendung noch nicht kennt. Keine zusätzlichen Hinweise geben. | Eingesetzte Python-Version, Befehl, tatsächlich beobachtete Ausgabe, Probleme und mögliche README-Korrektur |
| T-Fehler | Führe kaputt.csv mit dem Text „neun“ in Zeile 2 aus. | Meldung zu Zeile 2; kein Berechnungsergebnis; Rückgabecode verschieden von Null |
| T-Hand | Berechne 9,8 + 10,0 + 10,2 = 30,0; teile durch 3. Vergleiche. | Dokumentierte Papierberechnung von 10,0 mm und Ausgabe 10.00 mm |
Beispiel eines nachvollziehbaren Prüfsatzes: „T-Hand, App-Version 1.0, beispiel.csv, drei Werte, erwartet 10.00 mm, beobachtet 10.00 mm, bestanden.“ Die tatsächlich durchgeführten Befunde müssen von dir stammen, nicht aus einer erfundenen Behauptung eines Agenten.
Einen Fehlervorschlag begründet zurückweisen
Ein simuliertes Agentenangebot lautet: „Überspringe ungültige Zeilen, damit das Programm immer einen Durchschnitt zeigt.“ Du verneinst: Für die Datei mit „neun“ wäre unklar, ob der Zahlenwert die gesamte vorgesehene Datenbasis repräsentiert. Der Anforderungstext verlangt eine sichtbare Fehlermeldung. Eine plausible Zahl beweist keine korrekte Eingabe. Vertiefung: Der Mittelwert von 9,7 und 10,3 mm liegt genau bei 10,0 mm. Dennoch sind beide Werte außerhalb des Lehrbands. Erstelle dafür einen automatischen Test. Halte Einzelwertkontrolle und Mittelwertkontrolle begrifflich auseinander.
README, Prüfbericht und eigener Transfer
Eine andere Gruppe startfähig machen
Eine README ist die erste Anleitung für Menschen, die dein Projekt nicht kennen. Sie enthält Zweck, Grenzen, benötigte Python-Version, Dateinamen, CSV-Schema, Aufrufe, Soll-Ausgabe, Fehlertest und Testbefehl. Übernimm und ergänze diese synthetische Vorlage in README.md:
# Lokale Messdaten-App – Übung Nur synthetische CSV-Werte, keine reale Freigabe. Voraussetzung: Python 3.10 oder neuer. Start: python app.py beispiel.csv Fehlerfall: python app.py kaputt.csv Tests: python -m unittest -v Schema: bauteil;messwert_mm Kodierung: UTF-8, Dezimalpunkt. Erwartet: Anzahl 3; Mittelwert 10.00 mm; Alle im Lehrband: ja. Lehr-Soll: 10.0 mm, Band: 0.2 mm. Dateien: app.py, beispiel.csv, kaputt.csv, test_app.py, README.md.
Der Test T-Fremd zeigt, ob Anleitung und Ordner zusammenpassen. Wenn die Person ohne mündliche Hilfe einen erforderlichen Schritt nicht findet, ergänze die README und lasse den Test erneut durchführen.
Ein nachvollziehbarer Prüfbericht
Ein Prüfbericht ist keine Behauptung von Fehlerfreiheit, sondern eine geordnete Sammlung tatsächlich beobachteter Belege. Er enthält Datum, Bearbeitungsstand, verwendete Python-Version, die synthetischen Dateien, die Anforderungen, die Testaufbauten, Soll-/Ist-Befunde, Abweichungen und eine begrenzte Schlussfolgerung.
| Prüffeld | Auszufüllender Nachweis |
|---|---|
| Version und Umgebung | Lokale App Version 1.0, Betriebssystem und Python-Version nach tatsächlicher Prüfung |
| Datenbasis | Datei und drei synthetische Einzelwerte; Lehr-Soll und Lehrgrenzen |
| Unabhängiger Start | Wer testete ohne Zusatzhilfe, welcher Befehl funktionierte? |
| Ungültige Eingabe | Welcher Fehlertext wurde bei „neun“ gesehen und warum? |
| Rechenprüfung | Welche Handrechnung ergibt 10,0 mm und wie lautet die Appausgabe? |
| Grenzen | Welche Fälle fehlen? Keine Kalibrierung, Normprüfung, Geräteverbindung oder technische Freigabe |
Unterscheide einen Prüfbeleg von einer Vermutung. Eine Version macht nachvollziehbar, welche Quelltexte zu welchen Testergebnissen gehören. Du darfst die Aussage „alle drei definierten Lehrtests bestanden“ erst nach realer Durchführung eintragen.
Transfer und Ausblick
Entwirf eine andere, harmlose Aufgabe mit ausschließlich erfundenen Daten, zum Beispiel die Längen von Papierstreifen. Lege die Einheit und künstliche Grenzwerte begründet fest. Ändere Eingabedaten und, falls erforderlich, Konstanten. Dokumentiere eine Version 1.1, mindestens einen neuen Grenzwerttest und die wiederholten drei Abnahmekriterien. Anspruchsvolle Erweiterung: Ergänze Minimum, Maximum und Anzahl der Werte außerhalb des Lehrbandes. Entwirf einen Testfall mit richtigem Mittelwert und mindestens einem unerlaubten Einzelwert. Erkläre alle Entscheidungen ohne Agentenhilfe. Ein Produkt mit nachvollziehbarem Prüfbericht ist zukunftsfähiger als eine nicht überprüfbare Demonstration.

Ein freiwilliger Algorithmusvergleich: Die Animation zeigt das Sortieren von Zahlen, nicht die Berechnung unserer App. Ohne Animation: Sortiere 10,2; 9,8; 10,0 von Hand und überprüfe, dass die Summe gleich bleibt.
Interaktive Aufgaben
Multiple-Choice-Quiz
Beantworte die zehn Fragen mit der besten fachlichen Auswahl. Die Lernhinweise geben keine Lösung vorab bekannt.
Woraus besteht das vereinbarte Lernprodukt? (Aus lokaler App mit CSV Tests README und Prüfbericht) (!Aus einer App mit realer Steuerung) (!Nur aus einem Sprachmodell-Prompt) (!Aus einer bezahlten Cloudfreigabe)
Denkanstoß: Du kannst die Lieferbestandteile mit dem Projektauftrag vergleichen.
Wie wird ein Abnahmekriterium geprüft? (Durch eine beobachtbare Testhandlung mit Erwartung) (!Durch einen ungeprüften Agentenbericht) (!Durch die Programmdateigröße) (!Durch einen Werbetext)
Denkanstoß: Trenne Anforderungen von bloßen Behauptungen.
Welches Trennzeichen verwendet die vereinbarte CSV? (Semikolon) (!Tabulator) (!Schrägstrich) (!Doppelpunkt)
Denkanstoß: Halte das Datenformat einheitlich.
Was beträgt der Mittelwert von 9,8 und 10,0 und 10,2? (10,0 mm) (!30,0 mm) (!9,8 mm) (!10,2 mm)
Denkanstoß: Teile die Summe durch die Anzahl.
Welche Reaktion ist bei der Eingabe neun richtig? (Fehlermeldung mit Zeilenbezug ohne Ergebnis) (!Wert still als Null behandeln) (!Zeile ohne Hinweis überspringen) (!Datei als freigegeben markieren)
Denkanstoß: Prüfe, ob eine vollständige Datenbasis vorliegt.
Warum verwenden wir eine separate Einzelwertprüfung? (Ein Mittelwert im Lehrband garantiert nicht jeden Einzelwert) (!Sie ersetzt die Eingabeprüfung) (!Sie steuert damit echte Geräte) (!Sie spart alle anderen Tests)
Denkanstoß: Vergleiche 9,7 und 10,3 mm mit ihrem Mittelwert.
Was zeigt ein erfolgreicher Unit-Test? (Ein definierter Fall entsprach seiner Erwartung) (!Alle Software ist garantiert fehlerfrei) (!Eine technische Freigabe ist erteilt) (!Die README kann entfallen)
Denkanstoß: Prüfe immer die Grenzen der Aussage eines Tests.
Wann ist das Kriterium Fremdteam startet belegt? (Wenn ein anderes Team die dokumentierten Schritte eigenständig durchführt) (!Wenn nur die Entwicklerin ihren Befehl kennt) (!Wenn der Agent sein Programm lobt) (!Wenn ein Video angesehen wurde)
Denkanstoß: Eine Fremdgruppe darf keine versteckten Schritte benötigen.
Welche Zugriffsrechte benötigt der Coding-Agent? (Nur das Minimum für die lokale Übungsaufgabe) (!Unbeschränkten Zugang zu Geräten) (!Alle persönlichen Anmeldedaten) (!Zugang zu vertraulichen Datensätzen)
Denkanstoß: Verantwortung und Zugangsbeschränkung gehören zusammen.
Welche Aussage ist durch drei bestandene Lehrtests gerechtfertigt? (Die drei beschriebenen Lehrfälle wurden erfolgreich geprüft) (!Eine reale Bauteilfreigabe wurde erteilt) (!Die Software ist unter allen Umständen fehlerfrei) (!Eine IHK-Zertifizierung liegt vor)
Denkanstoß: Ein dokumentierter Befund gilt nur für den untersuchten Fall.
Memory
Ordne unterschiedliche Fachbegriffe ihren Beschreibungen zu.
| CSV | Tabellarisches Textdateiformat |
| README | Startanleitung für fremde Teams |
| Abnahmekriterium | Beobachtbarer Nachweis einer Anforderung |
| Unit-Test | Prüfung einer einzelnen Programmfunktion |
| Prüfbericht | Dokumentierte Testbelege mit Grenzen |
| Coding-Agent | Werkzeug zur Unterstützung von Codearbeiten |
Drag-and-Drop
Verbinde Handlungen mit ihrem Zweck.
| Handlung | Zweck |
|---|---|
| CSV-Schema festlegen | Einheitliche Eingabe vereinbaren |
| Mittelwert von Hand rechnen | Unabhängiges Vergleichsergebnis erzeugen |
| Kaputte Datei ausführen | Sichtbare Fehlerrückmeldung prüfen |
| README ohne Hilfe übergeben | Startfähigkeit für Fremdteam prüfen |
| Prüfbericht versionieren | Testergebnisse einem Bearbeitungsstand zuordnen |
Kreuzworträtsel
Suche zu jedem Hinweis genau ein Wort.
| Datenformat | Wie nennt man die vereinbarte Gestalt einer Eingabedatei? |
| Mittelwert | Wie heißt Summe geteilt durch Anzahl? |
| Testfall | Wie heißt eine definierte Prüfung mit Eingabe und Erwartung? |
| Toleranz | Wie heißt das erlaubte Abstandsband um den Lehr-Sollwert? |
| Dokumentation | Wie heißt die schriftliche Projekterklärung? |
| Fehlermeldung | Was soll eine ungültige Eingabe sichtbar erzeugen? |
LearningApps
Eine ergänzende Suche nach frei zugänglichen Übungen ersetzt nicht das eigene Testen. Falls keine passende LearningApp verfügbar ist, nutze die Übungen dieses Kurses.
Lückentext
Ergänze pro Satz genau einen fehlenden Begriff.
Offene Aufgaben
Leicht
- CSV-Datei: Erzeuge die synthetische Tabelle und erkläre Spaltenüberschriften, Einheit und Trennzeichen.
- Mittelwert: Rechne die drei Beispielwerte mit vollständigem Rechenweg von Hand nach.
- Abnahmekriterium: Schreibe die drei Erfolgskriterien mit beobachtbaren Ergebnissen in eigenen Worten auf.
- Programmablaufplan: Skizziere die Schritte vom Dateiöffnen bis zur Ausgabe und markiere den Fehlerzweig.
Standard
- Python (Programmiersprache): Übernimm app.py, führe die lokale Datei aus und protokolliere Ergebnis und Version.
- Fehlerbehandlung: Erstelle kaputt.csv und begründe anhand der beobachteten Meldung, warum stille Auslassung falsch wäre.
- Softwaretest: Starte alle vier Unit-Tests, notiere tatsächliche Ergebnisse und begründe zwei erwartete Prüfungen.
- README: Schreibe die Anleitung fertig und protokolliere die unabhängige Nutzung durch eine andere Lerngruppe.
Schwer
- Grenzwert: Ergänze Tests unmittelbar an und außerhalb der Lehrgrenzen und begründe die Vergleichsoperatoren.
- Coding-Agent: Prüfe den Agentenvorschlag zum Überspringen ungültiger Zeilen und dokumentiere deine begründete Ablehnung.
- Prüfbericht: Erstelle einen versionsgebundenen Bericht mit allen drei Abnahmekriterien, Belegen und offenen Grenzen.
- Datenauswertung: Übertrage die App auf erfundene Papierstreifen und ergänze mit Tests Minimum und Maximum.


Lernkontrolle
- Softwarequalität: Begründe, weshalb ein erfolgreicher Eigenstart nicht den unabhängigen Fremdteamtest ersetzt.
- Fehlerbehandlung: Erläutere am Wort „neun“, warum eine stille Teilberechnung das Kriterium fehlerhafte Datei meldet verletzt.
- Mittelwert: Stelle die Handrechnung mit den drei Beispieldaten der tatsächlichen Appausgabe gegenüber.
- Softwaretest: Entwerfe zwei Werte, die den richtigen Mittelwert, aber falsche Einzelwerte ergeben, und plane einen Test.
- Dokumentation: Erkläre, welche Informationen eine fremde Person ohne mündliche Einführung zum Programmstart braucht.
- Informationssicherheit: Begründe, warum für die Übung keine realen Gerätedaten oder Zugriffsrechte auf Maschinen nötig sind.
- Prüfbericht: Unterscheide fachlich eine Lehrtest-Aussage von einer realen Sicherheits- oder Bauteilfreigabe.
Lernnachweis
Lernprodukt: Ordner mit app.py, beispiel.csv, kaputt.csv, test_app.py, README.md sowie Prüfbericht.md. Keine persönlichen Daten oder realen technischen Prüfdaten. Offline-Rollenspiel ist dem Einsatz eines Agenten gleichwertig, wenn die vorgeschlagene Änderung und ihre kritische Prüfung erkennbar bleiben.
| Nachweis | Erwartete Qualität |
|---|---|
| Planung | Prüfkriterien mit erwarteter Beobachtung und festem synthetischem CSV-Schema |
| Rechnen | Handrechnung 30,0 / 3 = 10,0 mm mit richtiger Einheit |
| Programmieren | Wiederholbarer lokaler Start ohne Netzwerk oder Zusatzkonto |
| Fehlerprüfung | Kaputte Datei meldet Zeile 2 und gibt keinen irreführenden Mittelwert aus |
| Fremdteam | Eigenständiger Start oder offen dokumentierter und behobener Anleitungsfehler |
| Reflexion | Begründete Agentenentscheidung, Version, belegte Testfälle und klar benannte Grenzen |
Separate praktische Abnahme: Führe T-Fremd, T-Fehler und T-Hand mit echten, selbst beobachteten Ergebnissen durch. Dokumentiere zu jedem Fall Datum, Versionsstand, Eingabe, Soll, Ist und bestanden/nicht bestanden. Erkläre einen Fehlerfall ohne externe Hilfe. Ein nicht bestandener Test bleibt ein wahrheitsgemäßer Befund und darf nicht durch erfundene Belege ersetzt werden.
OER und Wikipedia
Quellenprüfung: 22.10.2026. Softwarestand: Unterrichtsentwurf für Python 3.10 oder neuer mit Standardbibliothek; lokal verwendete Version und geänderte Dokumentationsstände selbst prüfen. Für die Qualität einer realen technischen Anwendung fehlen unter anderem Messunsicherheit, Kalibrierung, Rechtekonzept für Produktionsdaten, Normenbezug und Freigabeprozesse.
- Python-Dokumentation zu csv – aktuelle Dokumentationsseite der Python-3-Reihe, Primärquelle.
- Python-Dokumentation zu decimal – Primärquelle zur Dezimalarithmetik.
- Python-Dokumentation zu unittest – Primärquelle zu automatisierten Testfällen.
- NIST AI 600-1 – Generative AI Profile, veröffentlicht Juli 2024, keine technische Zertifizierung.
- MCP Security Best Practices – Fassung im Dokumentationspfad 28.07.2026, Rechtebegrenzung und Werkzeugrisiken; auf aktualisierte Fassungen prüfen.
- Wikipedia: Softwaretest – deutscher Überblick zu Teststufen und Nachweisen.
- Wikipedia: CSV – deutscher Überblick zum Datenformat.
- Bestehender MOOCwiki-Grundlagenkurs – verlinkt, aber beim öffentlichen Abruf nicht auswertbar.
Ohne Wiki-Einbettung: Nutze die direkte Wikipedia-Seite oder den vollständigen Erklärungstext dieses Kurses.
Nachweis der verwendeten Commons-Medien: Geprüft wurden Dateiseiten, dort genannte Urheber und Lizenzhinweise; die konkrete Vorschaudarstellung in MOOCwiki und spätere Abrufbarkeit bleiben installationsabhängig. Die Alttexte beschreiben die Bilder; sämtliche fachlichen Aussagen sind zusätzlich im Fließtext enthalten.
| Datei | Wikimedia-Commons-Dateiseite und Urheberschaft | Rechtehinweis | Alternative ohne Medien |
|---|---|---|---|
| File:Software Development Lifecycle Diagram.png | Originaldatei, Shawn Rider | CC BY-SA 4.0 | Planung, Umsetzung, Test, Verbesserung |
| File:Wikimedia code review.svg | Originaldatei, Neolux | CC BY-SA 4.0 | Jede Änderung nachvollziehbar kontrollieren |
| File:Flowchart de.svg | Originaldatei, Erik Streb | CC BY-SA 3.0 | Eingabe, Prüfung, Fehlerzweig, Ergebnis |
| File:Python-logo-notext.svg | Originaldatei, Python Software Foundation | Commons nennt gemeinfrei; Kennzeichenrechte beachten | Programmiersprache Python |
| File:Testing Pyramid.svg | Originaldatei, Abbe98 | CC BY-SA 4.0 | Kleine Tests plus unabhängiger Gesamttest |
| File:Sorting gnome sort anim.gif | Originaldatei, Suaudeau | CC BY-SA 4.0 | Zahlen manuell ordnen; nicht der App-Algorithmus |
Videoquellen: Python Tutorial Deutsch, Fabian Rappert / Data Science Institute, veröffentlicht 07.05.2024; CSV mit Python lesen & schreiben, Binärverkehr, veröffentlicht 07.05.2025. Beide waren als Videoeinträge nachweisbar, können aber später entfallen oder regional eingeschränkt sein. Für Videorechte wird keine offene Weiterverwendung behauptet; keine eigenen Medien erstellt. Audiodateien ohne hinreichenden Fachbezug wurden nicht als dekorativer Inhalt ergänzt. Alle Aufgaben bleiben ohne Audio, Animation, YouTube und externe Lernplattform bearbeitbar.
Verknüpfte Lernbereiche
Orientierung: Dateigrundlagen kurz wiederholen → Anforderungen festlegen → kontrolliert programmieren → fehlerhafte und gültige Daten testen → an Fremdteam übergeben → Prüfbericht verfassen → auf neue synthetische Messwerte übertragen.
aiMOOC-Projekte
Schulfach+


aiMOOCs


aiMOOC Projekte


NEWSLernweltNOAH fragenInhalt melden · Hinweise zu Fehlern, Quellen, Medienrechten oder Dubletten