Zum Inhalt springen

Praxisprojekt - Meine erste Anwendung mit einem Coding-Agenten

Aus MOOCsWiki Staging
aiMOOC-Siegel aiMOOC

Praxisprojekt - Meine erste Anwendung mit einem Coding-Agenten

QR-Code


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.

Kreisschema zu Planung, Entwicklung und Test

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.

Schriftzug Code Review als Hinweis auf die Prüfung von Änderungen

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


Ablauf als Flussdiagramm

Deutschsprachiger Programmablaufplan mit Entscheidung

Ü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.

Zweifarbiges Python-Symbol

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.

Pyramide unterschiedlicher Softwareteststufen

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.

Animation der schrittweisen Ordnung unsortierter Zahlen

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.

Ergänze die fachlichen Kernaussagen.
Die synthetischen Werte werden in einer

gespeichert.
Die Projektdatei nutzt das

als Spaltentrenner.
Eine Spalte nennt die Einheit

.
Die Summe wird durch die

der Messwerte geteilt.
Eine defekte Eingabe verlangt eine verständliche

.
Die Anleitung zur Übergabe heißt

.
Automatische Python-Tests können mit

geschrieben werden.
Die Sollbeobachtung gehört zum

.
Die dokumentierten Belege stehen im

.
Eine Agentenantwort ersetzt keine eigene

.



Offene Aufgaben


Leicht

  1. CSV-Datei: Erzeuge die synthetische Tabelle und erkläre Spaltenüberschriften, Einheit und Trennzeichen.
  2. Mittelwert: Rechne die drei Beispielwerte mit vollständigem Rechenweg von Hand nach.
  3. Abnahmekriterium: Schreibe die drei Erfolgskriterien mit beobachtbaren Ergebnissen in eigenen Worten auf.
  4. Programmablaufplan: Skizziere die Schritte vom Dateiöffnen bis zur Ausgabe und markiere den Fehlerzweig.


Standard

  1. Python (Programmiersprache): Übernimm app.py, führe die lokale Datei aus und protokolliere Ergebnis und Version.
  2. Fehlerbehandlung: Erstelle kaputt.csv und begründe anhand der beobachteten Meldung, warum stille Auslassung falsch wäre.
  3. Softwaretest: Starte alle vier Unit-Tests, notiere tatsächliche Ergebnisse und begründe zwei erwartete Prüfungen.
  4. README: Schreibe die Anleitung fertig und protokolliere die unabhängige Nutzung durch eine andere Lerngruppe.


Schwer

  1. Grenzwert: Ergänze Tests unmittelbar an und außerhalb der Lehrgrenzen und begründe die Vergleichsoperatoren.
  2. Coding-Agent: Prüfe den Agentenvorschlag zum Überspringen ungültiger Zeilen und dokumentiere deine begründete Ablehnung.
  3. Prüfbericht: Erstelle einen versionsgebundenen Bericht mit allen drei Abnahmekriterien, Belegen und offenen Grenzen.
  4. Datenauswertung: Übertrage die App auf erfundene Papierstreifen und ergänze mit Tests Minimum und Maximum.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle

  1. Softwarequalität: Begründe, weshalb ein erfolgreicher Eigenstart nicht den unabhängigen Fremdteamtest ersetzt.
  2. Fehlerbehandlung: Erläutere am Wort „neun“, warum eine stille Teilberechnung das Kriterium fehlerhafte Datei meldet verletzt.
  3. Mittelwert: Stelle die Handrechnung mit den drei Beispieldaten der tatsächlichen Appausgabe gegenüber.
  4. Softwaretest: Entwerfe zwei Werte, die den richtigen Mittelwert, aber falsche Einzelwerte ergeben, und plane einen Test.
  5. Dokumentation: Erkläre, welche Informationen eine fremde Person ohne mündliche Einführung zum Programmstart braucht.
  6. Informationssicherheit: Begründe, warum für die Übung keine realen Gerätedaten oder Zugriffsrechte auf Maschinen nötig sind.
  7. 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.

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









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-Hauptseite

Mediathek

Inhalte werden geladen ...

Mediathek wird aus dem Wiki geladen ...