Zum Inhalt springen

Informationstechnische Systeme programmieren - Informationselektroniker - LF 10

Aus MOOCsWiki Staging
Version vom 28. Oktober 2026, 19:01 Uhr von Glanz (Diskussion | Beiträge) (AI MOOC Plugin e5655f000686fe9bfbf44e4b203cd4e4)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
aiMOOC-Siegel aiMOOC

Informationstechnische Systeme programmieren - Informationselektroniker - LF 10

QR-Code



Einleitung

Du arbeitest im dritten Ausbildungsjahr als angehende Informationselektronikerin oder angehender Informationselektroniker. In diesem aiMOOC entwickelst du aus einem fiktiven Kundenauftrag ein testbares, dokumentiertes Programm mit Datenbankanbindung. Du entscheidest begründet über Programmiersprache, Entwicklungsumgebung und Schnittstellen, modellierst Daten, setzt Funktionen um und prüfst sie mit nachvollziehbaren Testfällen. Das ist mehr als das Schreiben einzelner Codezeilen: Zu einer berufsgerechten Lösung gehören Auftragsklärung, Datenschutz, Arbeitssicherheit, Qualitätssicherung und Übergabe.

Curricularer Bezug: Informationselektronikerin und Informationselektroniker, KMK-Lernfeld 10 „Informationstechnische Systeme programmieren“, drittes Ausbildungsjahr, Zeitrichtwert 100 Unterrichtsstunden. Der KMK-Rahmenlehrplan, Seite 19 nennt das Informieren über Entwicklungsumgebungen und Datenbanken, Planen von Algorithmen und ER-Modellen, begründetes Auswählen, Programmieren und Anpassen einschließlich Schnittstellen und Bibliotheken, Datenbankverwaltung, Funktionsprüfung sowie Dokumentieren, Präsentieren und Reflektieren. Zum aktuellen Berufsprofil und zur Ausbildungsordnung siehe BIBB und InfoElekAusbV. Der Kurs ist eine Lernhilfe, keine amtliche Prüfung oder Anerkennung. Stimme konkrete Arbeiten mit dem betrieblichen Ausbildungsplan, dem gültigen Landeslehrplan, deiner Ausbildungsleitung und der zuständigen Handwerkskammer ab.

Sicherheitsrahmen: Alle Versuche laufen an einem fiktiven Datensatz in einer lokalen Simulation. Keine echte Kundenanlage, keine Fremdsysteme, keine personenbezogenen Schüler-, Betriebs- oder Kundendaten. Elektrische Anschlüsse, Messungen oder Arbeiten an Netzspannung sind nicht Teil der Selbstlernaufgaben; praktische Arbeiten an solchen Anlagen erfolgen ausschließlich mit befugter fachlicher Aufsicht, Gefährdungsbeurteilung und geeigneter Freigabe. Die sicheren Alternativen sind lokale Softwaretests und simulierte Sensorwerte.


Kundenauftrag verstehen und Entwicklung planen


Die vollständige berufliche Handlung

Ein fiktiver Servicebetrieb erhält den Auftrag: „Erstellt eine lokale Anwendung, die die Raumtemperatur einer simulierten Werkstatt überwacht, Messungen speichert und ab 28,0 °C einen Alarmstatus anzeigt.“ Erkundige dich zunächst nach Zweck, Nutzerkreis, Eingabequelle, Laufzeitumgebung, Datenmenge, Schnittstellen und gewünschter Übergabe. Trenne Anforderung (was soll erreicht werden?) von Implementierung (wie wird es erreicht?). Ein Lastenheft beschreibt die Anforderungen der Auftraggebenden, ein Pflichtenheft die vereinbarte technische Umsetzung.

Auftragsaspekt Konkrete Vereinbarung Prüfkriterium
Eingabe Fünf synthetische Temperaturen in °C; keine echte Hardware Alle fünf Beispielwerte werden übernommen
Plausibilität Zulässig sind Werte zwischen 15,0 und 35,0 °C einschließlich der Grenzen Ein Wert von 99 °C wird abgewiesen
Alarm Alarm bei Temperatur ab 28,0 °C 27,9 °C: kein Alarm; 28,0 °C: Alarm
Datenhaltung Lokale relationale Datenbank mit Gerät und Messungen Primär- und Fremdschlüssel vorhanden, gezielte Abfrage funktioniert
Nachweis Quelltext, Ablaufplan, Testergebnisse und Kurzhandbuch Eine andere Person kann das Ergebnis reproduzieren

Zum Projektmanagement gehören Aufwand, Abhängigkeiten und Abnahmekriterien. Erstelle zuerst einen Arbeitsplan und priorisiere die Risiken (z. B. ungeeignete Schnittstelle, fehlerhafte Grenzen, unkontrollierte Datenweitergabe). Eine mögliche Lernprojektplanung umfasst: Auftragsanalyse 45 Minuten, Modellierung 60 Minuten, Implementierung 120 Minuten, Tests 75 Minuten, Dokumentation und Präsentation 60 Minuten. Summe: 45 + 60 + 120 + 75 + 60 = 360 Minuten = 6 Stunden. Dies ist ein Lernprojekt innerhalb des umfangreicheren Lernfeldes, nicht dessen vollständiger Stundenplan.

Die Entwicklungsphasen sind als Kreislauf zu verstehen: Ein Testbefund kann eine Überarbeitung der Anforderungen oder des Entwurfs auslösen. Grafik: Tazlavi, CC BY-SA 4.0, Wikimedia Commons.


Sprache, Entwicklungsumgebung und Entscheidungsbegründung

Eine integrierte Entwicklungsumgebung verbindet Editor, Fehlersuche, Ausführung und häufig Versionsverwaltung. Ein Compiler übersetzt Programmcode vor einer Ausführung in eine andere Repräsentation; ein Interpreter führt Programmoperationen über eine Laufzeitumgebung aus. Die Unterscheidung ist in der Praxis nicht absolut: CPython übersetzt Python-Quelltext typischerweise zunächst in Bytecode und führt diesen in einer virtuellen Maschine aus. Ein Debugger hilft, Variablenwerte und Programmschritte zu überprüfen. Informationen aus Herstellerhandbüchern und englischsprachigen API-Dokumentationen sind bei Schnittstellenfragen wichtiger als ungeprüfte Forenbeiträge.

Kriterium Python und SQLite im Übungsfall C/C++ auf einem Mikrocontroller
Hardware Normaler Schul-/Werkstatt-PC; lokale Simulation Passend bei knappen Ressourcen und direkter Hardwaresteuerung
Entwicklungsaufwand Kurzer Quelltext, Bibliothek sqlite3 in vielen Python-Installationen verfügbar Mehr Hardware- und Speicherkenntnisse notwendig
Schnittstellen Datei, lokale Datenbank, spätere GUI leicht demonstrierbar Ein-/Ausgänge und zeitkritische Steuerung möglich
Entscheidung Python für den lokalen Prototyp: gut prüfbar, keine reale Steuerung Geeignet für eine spätere fachlich freigegebene Geräteumsetzung

Beurteile Alternativen nach Wartbarkeit, Funktionsanforderung, Sicherheit, Lizenzbedingungen, Strombedarf und vorhandener Kompetenz. Kostenfreie Werkzeuge sind nicht automatisch frei von Nutzungsbedingungen; prüfe bei Bibliotheken jeweils Quelle, Lizenz, Version und Wartungsstand.


Algorithmen, Datenstrukturen und Programmstruktur


Vom Ablaufplan zu Entscheidungen und Schleifen

Ein Algorithmus ist eine eindeutige, endliche Folge ausführbarer Schritte. Ein Programmablaufplan nutzt grafische Symbole für Start/Ende, Verarbeitung und Entscheidung. Ein Struktogramm stellt Sequenz, Auswahl und Wiederholung als verschachtelte Blöcke dar. Beide helfen, Bedingungen vor dem Codieren zu prüfen. Skizziere für die Temperaturüberwachung: Wert einlesen → Zahl und Messbereich prüfen → bei ungültigem Wert Fehlermeldung → sonst Grenzwert vergleichen → Alarmstatus bestimmen → speichern → Ergebnis anzeigen. Eine Schleife verarbeitet mehrere Messungen; eine Abbruchbedingung verhindert Endlosschleifen.

Beispiel eines deutsch beschrifteten Programmablaufplans, nicht die Lösung des Temperaturfalls. Grafik: Erik Streb, CC BY-SA 3.0, Wikimedia Commons.

Datentypen steuern erlaubte Operationen: float für Dezimalwerte, int für ganze Zahlen und Statuscodes, bool für wahr/falsch, str für Text, list für Reihen und dict für Schlüssel-Wert-Paare. Eine Variable benennt einen gespeicherten Wert. Eine Funktion kapselt wiederverwendbare Logik, damit du Grenzwerte an einer Stelle ändern und gezielt testen kannst. Ein Modul bündelt Funktionen und wird mit import eingebunden.

Beispiel einer reinen Prüffunktion (Python):

def alarm_status(temperatur):
    if not isinstance(temperatur, (int, float)):
        raise TypeError("Zahl erwartet")
    if not 15 <= temperatur <= 35:
        raise ValueError("Außerhalb des Messbereichs")
    return temperatur >= 28.0

assert alarm_status(27.9) is False
assert alarm_status(28.0) is True

Bei float('nan') greifen reine Bereichsvergleiche nicht zuverlässig; in einer echten Anwendung ist zusätzlich math.isfinite erforderlich. Ein typischer Fehler ist temperatur > 28 statt temperatur >= 28: Damit würde der vereinbarte Grenzwert selbst keinen Alarm auslösen. Ebenso sind Zeichenketten nicht mit Zahlen gleichzusetzen: Die Texteingabe „28“ muss erst sicher konvertiert und validiert werden.

Deutschsprachiges Video „Python Tutorial für Anfänger: Lerne Python in 60 Minuten“, Kanal „Programmieren lernen“ (2024). Für den Lernfeldfokus besonders Eingaben, Variablen, Schleifen, Verzweigungen und Funktionen; externe Plattform und Nutzungsbedingungen beachten.


Versionen, Fehlersuche und Programmänderungen

Wenn du vorhandene Software anpasst, ändere nicht unkontrolliert den gesamten Ablauf. Sicherer Ablauf: Ausgangsversion dokumentieren → Änderungswunsch und Akzeptanztest festhalten → kleinen Schritt implementieren → automatisierte und manuelle Tests wiederholen → Ergebnis versionieren. Versionsverwaltung mit Git erlaubt dir, Änderungen und den Rückweg zu einer funktionierenden Version nachzuvollziehen. Eine Programmänderung kann eine Schnittstellenfunktion oder ein Datenbankschema beeinflussen; prüfe darum nach jeder Änderung die bestehenden Funktionen erneut (Regressionstest).

Häufige Fehlerbilder: falscher Datentyp, vertauschte logische Operatoren, unbehandelte Ausnahme, fehlende Schleifenbegrenzung, veraltete Bibliotheksversion und unzulässige Annahmen zur Hardware. Schreibe zu jedem Fehler einen reproduzierbaren Eingabewert, erwartetes Verhalten, tatsächliches Verhalten und die korrigierte Version auf. Vertrauliche Daten und Passwörter gehören weder in Quellcode noch in öffentlich geteilte Fehlermeldungen.


Schnittstellen und Softwarebausteine sicher integrieren


Systemgrenzen, Bibliotheken und Oberflächen

Eine Programmschnittstelle beschreibt, wie zwei Komponenten Daten austauschen: Parameter, Datentypen, Fehlermeldungen und Berechtigungen. Hardware-Schnittstellen können beispielsweise seriell oder über USB angebunden werden; Software-Schnittstellen verbinden Programme mit Betriebssystemdiensten, einer GUI oder Datenbanken. Ein Auftragsdiagramm benennt Sender, Empfänger und Datenfluss. Im Lernprojekt erzeugt eine Liste die Messwerte; die Programmlogik validiert, die Bibliothek sqlite3 speichert und die Konsolenausgabe zeigt Resultate. Eine spätere GUI müsste die gleichen Funktionen aufrufen, nicht unabhängig eine zweite Alarmberechnung implementieren.

Schematisches Client-Server-Prinzip mit Anfrage und Antwort: hilfreiche Alternative zu einer lokalen Einzelplatzanwendung, aber kein Abbild der gewählten SQLite-In-Memory-Lösung. Grafik: Lubaochuan, CC BY-SA 4.0, Wikimedia Commons.

Bibliotheken sparsam und kontrolliert einbinden: Projektbedarf festhalten, offizielle Dokumentation lesen, Lizenz und Aktualität prüfen, Abhängigkeiten inventarisieren. Verwende bei Datenbankwerten Platzhalter statt SQL aus Benutzereingaben zusammenzusetzen. Die Python-Dokumentation zu sqlite3 empfiehlt Parameterbindung ausdrücklich zur Abwehr von SQL-Injection. In Systemen mit Netzwerkschnittstelle kommen verschlüsselte Übertragung, Authentisierung, Rechteprüfung und eindeutige Fehlerbehandlung hinzu; die gezeigte lokale Demo hat keinen Netzwerkzugriff.


Datenschutz, IT-Sicherheit, Arbeitsschutz und Nachhaltigkeit

Schon bei der Planung entscheidest du, ob überhaupt personenbezogene Daten notwendig sind. Hier werden absichtlich nur erfundene Sensorwerte und ein frei erfundener Gerätename verwendet. Die DSGVO verlangt insbesondere Zweckbindung und Datenminimierung (Art. 5), Datenschutz durch Technikgestaltung (Art. 25) und angemessene Sicherheit (Art. 32); die genaue Rechtsgrundlage ist im realen Projekt zu klären. Benötigt ein Auftrag echte Personenbezüge, werden Zugriffskonzept, Löschregeln, Speicherort, Übertragung, Protokollierung und Auftragsverarbeitung fachkundig bewertet. Keine echten Daten in Testdatenbanken, Screenshots oder KI-Dienste übernehmen. Das BSI beschreibt unter anderem im IT-Grundschutz-Baustein CON.8 sichere Softwareentwicklung und Tests mit geschützten Testdaten.

Bei elektrotechnischen Anlagen gilt zusätzlich die für den Betrieb zuständige Unfallverhütungsvorschrift. Informiere dich über die DGUV Vorschrift 3 sowie aktuelle Betriebs- und Herstelleranweisungen; die Freigabe und Prüfung einer realen Anlage ist keine Eigenübung. Beachte Brandschutz, Stolperstellen, ergonomisches Arbeiten und Pausen am Bildschirm. Vermeide unnötige Neuanschaffungen, halte Software wartbar, dokumentiere Updates und sichere Entsorgung von Altgeräten. Softwareseitige Simulation spart für das Lernziel Hardware, Material und Energie und verhindert Fehlsteuerungen an echter Technik.


Datenbanken modellieren, einrichten und verwalten


Entitäten, Schlüssel und Beziehungen

Eine relationale Datenbank speichert strukturierte Informationen in Tabellen. Jede Zeile ist ein Datensatz, jede Spalte ein Attribut. Ein Primärschlüssel identifiziert einen Datensatz eindeutig; ein Fremdschlüssel verweist auf einen anderen Datensatz. Das Entity-Relationship-Modell (ER-Modell) zeigt Entitäten, Attribute und Beziehungen vor der technischen Umsetzung. Im Auftrag gehört eine Gerätekennung zu vielen Messungen: geraet (id, name) 1:n messung (id, geraet_id, temperatur, alarm). messung.geraet_id verweist auf geraet.id.

Allgemeines Beispiel für eine ER-Darstellung; du überträgst das Prinzip auf Gerät und Messung. Grafik: Wooptoo, als gemeinfrei veröffentlicht, Wikimedia Commons.

Eine 1:n-Beziehung verhindert, dass du bei jeder Messung den Gerätenamen erneut speichern musst. Dies reduziert Redundanz und Inkonsistenzen. Prüfe bei der Normalisierung, ob Attribute vollständig und sinnvoll von ihrem Schlüssel abhängen. Nicht jede Datenbank ist gleichzeitig ein geeignetes Archiv: für produktive Systeme sind Datenaufbewahrung, Wiederherstellbarkeit, Zugriff und Skalierung gesondert zu planen.


Tabellen, Beziehungen, Abfragen und Verwaltung

SQL umfasst Befehle für Struktur und Daten: CREATE TABLE legt Tabellen an, INSERT fügt Zeilen ein, SELECT liest Daten, WHERE filtert und JOIN verbindet passende Datensätze. Beispiel:

SELECT g.name, m.temperatur
FROM messung AS m
JOIN geraet AS g ON g.id = m.geraet_id
WHERE m.alarm = 1
ORDER BY m.id;

Der Join sucht zu jeder ausgewählten Messung das zugehörige Gerät. Typischer Fehler: Ohne korrekte Join-Bedingung entsteht eine unerwünschte Kombination vieler Zeilen (kartesisches Produkt). Mit COUNT, AVG und SUM kannst du Ergebnisse aggregieren. Durchschnittstemperatur und Alarmanzahl sind unterschiedliche Messgrößen, deren Einheiten du in der Dokumentation kennzeichnen musst.

Für SQLite werden Fremdschlüsselprüfungen pro Verbindung ausdrücklich aktiviert: PRAGMA foreign_keys = ON;. Verlasse dich nicht blind auf Vorgabewerte einer installierten Version; prüfe sie, beispielsweise mit PRAGMA foreign_keys; (SQLite-Dokumentation). Zum Verwalten gehören Sicherung und Wiederherstellungsprobe bei persistenten Daten, Zugriffsrechte, kontrollierte Schemaänderungen, Prüfung der Datenintegrität und fachgerechtes Löschen. Die Demonstration verwendet :memory: und verliert alle Daten beim Programmende: Das ist datensparsam, aber keine dauerhafte Datensicherung.

Deutschsprachiges „SQL Tutorial für Anfänger | Grundkurs Deutsch“, Kanal „Programmieren lernen“ (2021), mit Abschnitten zu relationalen Datenbanken, SELECT, Filtern und JOIN. Zeige im Unterricht nur fachlich benötigte Kapitel; externe Nutzungsbedingungen beachten.


Praxisfall: Simulierter Temperaturmonitor mit Prüfnachweis


Arbeitsauftrag, Arbeitsplan und Datenmodell

Situation: Ein erfundener Werkstattkunde benötigt einen offline nutzbaren Prototyp, der Messwerte eines fiktiven Temperatursensors verarbeitet. Er gibt 28,0 °C als Alarmgrenze und 15,0 bis 35,0 °C als plausiblen Wertebereich vor. Der Prototyp muss den Gerätebezug in einer lokalen Datenbank erhalten, Alarmmessungen abfragen und eine Zusammenfassung ausgeben. Abnahmeobjekte: Quelltext, Schema mit 1:n-Beziehung, reproduzierbare Testwerte, Prüftabelle, kurze Benutzeranleitung und begründete Variantenentscheidung.

Arbeitsplan mit Verantwortlichkeit und Ergebnis: (1) Auftrag analysieren und Grenzwerte bestätigen – Anforderungstabelle; (2) Ablaufplan und ER-Modell zeichnen – zwei Entwürfe; (3) Python und SQLite als reine Simulation auswählen – Auswahlbegründung; (4) Validierung, Statusfunktion und Datenbankzugriff programmieren – lauffähige Datei; (5) Grenz- und Fehlerfälle testen – dokumentiertes Testprotokoll; (6) Code, Tests und Einschränkungen erklären – Übergabe. Im realen Betrieb zusätzlich Freigabe-, Rechts-, Hardware- und Sicherheitsprüfungen nach örtlichen Vorgaben organisieren.

Sicherer Simulationsaufbau: Python 3 mit dem Standardmodul sqlite3; ein lokaler Editor und eine Konsole genügen. Keine Sensorverkabelung und keine Datenübertragung. Speicherort :memory: erzeugt eine temporäre SQLite-Datenbank. Die folgenden fünf Eingaben sind frei erfunden: 19,0; 21,5; 27,2; 35,0; 29,3 °C.


Vollständig erläuterte, ausführbare Modelllösung

Speichere den folgenden Code als monitor.py und führe ihn ausschließlich auf einem freigegebenen lokalen Übungssystem aus. Die Funktion bewertet einen Wert, die Datenbank hält die 1:n-Beziehung fest und die Abfrage liefert die vereinbarten Prüfergebnisse. Für ein reales Produkt wären weitere Aufgaben wie Zugriffsverwaltung, Konfiguration, Protokollierung, robuste Updates und geeignete Hardwarefreigabe erforderlich.

import math
import sqlite3

WERTE = [19.0, 21.5, 27.2, 35.0, 29.3]
GRENZE = 28.0

def alarmstatus(wert):
    if not isinstance(wert, (int, float)):
        raise TypeError("Temperatur muss eine Zahl sein")
    if not math.isfinite(wert) or not 15.0 <= wert <= 35.0:
        raise ValueError("Wert außerhalb 15 bis 35 Grad")
    return int(wert >= GRENZE)

def demo():
    datenbank = sqlite3.connect(":memory:")
    try:
        datenbank.execute("PRAGMA foreign_keys = ON")
        datenbank.execute(
            "CREATE TABLE geraet ("
            "id INTEGER PRIMARY KEY, "
            "name TEXT NOT NULL UNIQUE)")
        datenbank.execute(
            "CREATE TABLE messung ("
            "id INTEGER PRIMARY KEY, "
            "geraet_id INTEGER NOT NULL REFERENCES geraet(id), "
            "temperatur REAL NOT NULL CHECK(temperatur BETWEEN 15 AND 35), "
            "alarm INTEGER NOT NULL CHECK(alarm IN (0,1)))")
        datenbank.execute(
            "INSERT INTO geraet(id, name) VALUES (?, ?)",
            (1, "Labor-Simulator"))
        for wert in WERTE:
            datenbank.execute(
                "INSERT INTO messung(geraet_id, temperatur, alarm) "
                "VALUES (?, ?, ?)",
                (1, wert, alarmstatus(wert)))
        ergebnis = datenbank.execute(
            "SELECT COUNT(*), ROUND(AVG(temperatur), 1), "
            "SUM(alarm) FROM messung").fetchone()
        alarmzeilen = datenbank.execute(
            "SELECT g.name, m.temperatur FROM messung AS m "
            "JOIN geraet AS g ON g.id = m.geraet_id "
            "WHERE m.alarm = 1 ORDER BY m.id").fetchall()
        assert ergebnis == (5, 26.4, 2)
        assert len(alarmzeilen) == 2
        assert alarmstatus(27.9) == 0
        assert alarmstatus(28.0) == 1
        print("Messungen, Mittelwert, Alarme:", ergebnis)
        print("Alarmmessungen:", alarmzeilen)
    finally:
        datenbank.close()

if __name__ == "__main__":
    demo()

Prüfbares Arbeitsergebnis: Die erste Ausgabe lautet Messungen, Mittelwert, Alarme: (5, 26.4, 2). Die zweite enthält zwei Alarmdatensätze des Labor-Simulators mit 35,0 und 29,3 Grad. Rechnung: 19,0 + 21,5 + 27,2 + 35,0 + 29,3 = 132,0 °C als Summe der fünf Temperaturwerte; 132,0 / 5 = 26,4 °C als arithmetischer Mittelwert. Zwei Werte sind größer oder gleich 28,0 °C, also 2 Alarme. Die Einheit der Summe ist nur rechnerische Zwischengröße, kein eigener Sensormesswert.

Abgrenzung: Der Code zeigt sowohl Bibliothekseinbindung als auch Programmlogik, relationale Tabellen, Schlüssel, eine parametrisierte Schreiboperation und eine JOIN-Abfrage. Der Prototyp stellt Daten über die Konsole dar; die konsistente Programmschnittstelle könnte später von einer GUI aufgerufen werden. Eine GUI oder reale Sensoranbindung ist für die demonstrierte Abnahme nicht vorhanden und darf nicht als implementiert behauptet werden.


Testprotokoll, Fehlerdiagnose und Bewertungsraster

Test-ID Eingabe oder Prüfschritt Erwartung Nachweis
T1 27,9 °C Kein Alarm alarmstatus(27.9) == 0
T2 28,0 °C Alarm alarmstatus(28.0) == 1
T3 99 °C und Text statt Zahl Wert wird mit Fehler abgewiesen Fehlerausnahmen getrennt prüfen; darf nicht gespeichert werden
T4 Fünf Testwerte speichern Anzahl 5, Mittelwert 26,4 °C, Alarme 2 Zusammenfassung und Assertions im Programm
T5 Gerätebezug abfragen Beide Alarmzeilen tragen den erwarteten Gerätenamen JOIN-Abfrage ausführen
T6 Nicht existente Geräte-ID speichern Fremdschlüsselverletzung wird abgewiesen Auf Testkopie PRAGMA foreign_keys und Integritätsprüfung nutzen

Hinweis zur Testabdeckung: T1, T2, T4 und T5 sind im Beispielcode direkt enthalten. Für T3 und T6 musst du gezielte zusätzliche Tests schreiben, Fehler erwartungsgemäß abfangen und im Bericht mit Datum, Versionsstand, Eingabe und Ergebnis dokumentieren. Beispiel für T3: alarmstatus(99) muss ValueError auslösen. Für T6 ist ein separater Datenbank-Testaufbau nötig. Ungetestete Eigenschaften dürfen nicht als bestanden markiert werden. Prüfe zusätzlich einen leeren Datensatz: SQL-AVG liefert dann NULL statt 0; die Benutzeroberfläche muss dies eindeutig darstellen.

Bewertungsraster für das Lernprojekt (100 Punkte):

Kriterium Nachweis / Maßstab Punkte
Auftragsanalyse Anforderungen, Grenzen, Datenschutz und Abnahme eindeutig 15
Planung und Auswahl Ablaufplan, ER-Modell, Entwicklungsentscheidung und Zeitplan begründet 20
Umsetzung Prüffunktion, Bibliothek, Datenbank, Beziehung, Filter und JOIN korrekt 30
Test und Sicherheit Grenzfälle, Fehlereingaben, Integrität, reproduzierbare Protokolle 20
Dokumentation und Reflexion Startanleitung, Rechte-/Lizenzcheck, Alternativen und Übergabe 15
Gesamt 100 Punkte; Kriterien vor Durchführung bekannt geben 100

Beurteilungsorientierung: 90–100 Punkte = durchgängig nachvollziehbar und sicher; 75–89 = überwiegend vollständig mit kleinen Mängeln; 60–74 = grundlegende Anforderungen erfüllt, nachbesserungsbedürftig; unter 60 = wesentliche Nachweise fehlen. Diese schulische Übungsskala ist keine amtliche Gesellenprüfungsbewertung. Zur Reflexion vergleichst du lokal gespeicherte SQLite-Daten mit einer serverbasierten Lösung und begründest, wann Datenhaltung, Zugriffskontrolle, Wartbarkeit und Energiebedarf jeweils für eine andere Architektur sprechen.


Interaktive Aufgaben


Quiz: Prüfe dein Fachwissen

Was ist bei der Auftragsklärung vor der Programmierung zuerst festzuhalten? (Prüfbare Anforderungen und Abnahmekriterien) (!Nur die Farbe der Benutzeroberfläche) (!Ein beliebiges Datenbankpasswort) (!Die fertige Quellcodedatei ohne Rücksprache)




Welche Darstellung eignet sich zur grafischen Planung von Bedingungen und Abläufen? (Programmablaufplan) (!Geräterechnung) (!Stückpreisübersicht) (!Dateisystembereinigung)




Welche Anweisung löst bei genau 28 Grad den vereinbarten Alarm aus? (Temperatur größer oder gleich 28) (!Temperatur ausschließlich größer als 28) (!Temperatur ausschließlich kleiner als 28) (!Temperatur immer gleich 35)




Warum werden SQL-Werte in Python mit Platzhaltern übergeben? (Damit Werte sicher an eine vorbereitete Abfrage gebunden werden) (!Damit alle Abfragen automatisch verschlüsselt sind) (!Damit keine Datenbanktabellen mehr nötig sind) (!Damit alle Benutzer Administratorrechte erhalten)




Welche Aussage beschreibt einen Fremdschlüssel korrekt? (Er verweist in einer Tabelle auf den Schlüssel eines zugehörigen Datensatzes) (!Er ersetzt grundsätzlich sämtliche Primärschlüssel) (!Er ist immer das Kennwort der Datenbank) (!Er muss in jeder Zeile frei erfunden werden)




Welche SQL-Klausel filtert Messungen mit Alarmstatus? (WHERE) (!CREATE) (!DROP) (!GRANT)




Was gehört zu einem aussagekräftigen Testprotokoll? (Testeingabe, Sollverhalten, Istverhalten und Versionsstand) (!Nur die Behauptung dass alles funktioniert) (!Echte Kundendaten als Pflichtnachweis) (!Nur ein Screenshot ohne Kontext)




Welche Daten eignen sich für den hier beschriebenen Lernprototyp? (Frei erfundene Messwerte ohne Personenbezug) (!Echte Kundennamen aus dem Betrieb) (!Private Passwörter von Mitarbeitenden) (!Ungeprüfte Gesundheitsdaten der Klasse)




Welche Aussage über SQLite im Beispielszenario ist richtig? (Eine In-Memory-Datenbank verliert ihre Inhalte beim Beenden) (!Sie speichert alle Testdaten automatisch für immer) (!Sie erfordert zwingend einen öffentlichen Webserver) (!Sie verhindert ohne zusätzliche Prüfung jede fehlerhafte Eingabe)




Wie soll eine Änderung an einem bestehenden Programm geprüft werden? (Mit erneuten Funktions- und Regressionstests) (!Nur durch Umbenennen der Datei) (!Durch Abschalten aller Fehlermeldungen) (!Durch Löschen der bisherigen Testfälle)





Memory

Primärschlüssel Kennung eines Datensatzes innerhalb seiner Tabelle
Fremdschlüssel Verweis auf den Schlüssel eines anderen Datensatzes
Debugger Werkzeug zum schrittweisen Untersuchen eines Programms
Compiler Werkzeug zur Übersetzung von Programmcode
Regressionstest Erneute Prüfung bisher funktionierender Teile nach Änderungen
Datenminimierung Nur für einen festgelegten Zweck notwendige Daten verarbeiten





Drag-and-drop: Phasen zuordnen

Ordne die passende Tätigkeit zu. Phase im Kundenauftrag
Kundenbedarf und Abnahmekriterien erfragen Informieren
Ablaufplan und ER-Modell zeichnen Planen
Sprache und Datenbank begründet auswählen Entscheiden
Programm und Datenbank umsetzen Durchführen
Grenzfälle und Soll-Ist-Abgleich prüfen Kontrollieren





Kreuzwort

Compiler Wie heißt ein Werkzeug zur Übersetzung von Programmcode?
Debugger Wie heißt das Werkzeug zum schrittweisen Suchen von Programmfehlern?
Tabelle In welcher Struktur speichert ein relationales System Datensätze?
Abfrage Wie heißt die gezielte Anforderung von Daten aus einer Datenbank?
Schleife Wie heißt eine Kontrollstruktur zur wiederholten Ausführung?
Variable Wie heißt ein benannter Speicherplatz für einen Programmwert?





LearningApps


Lückentext

Ergänze die Fachbegriffe aus dem Kurs.
Ein Kundenauftrag beginnt mit prüfbaren

und einem geklärten Zweck.
Ein grafischer Ablauf mit Entscheidungen lässt sich als

darstellen.
Der eindeutige Identifikator eines Tabelleneintrags heißt

.
Ein Verweis von einer Messung auf das zugehörige Gerät ist ein

.
Mit der SQL-Klausel

grenzt du passende Datensätze ein.
Eine Funktion kontrolliert den Messbereich durch

der Eingabe.
Bei der Entwicklung mit erfundenen Daten vermeidest du die Nutzung von

.
Ein erneuter Test bestehender Funktionen nach einer Änderung heißt

.
Die Zahl der Alarme im simulierten Messdatensatz beträgt

.



Offene Aufgaben


Leicht

  1. Lastenheft: Formuliere aus dem fiktiven Temperaturauftrag vier Anforderungen und je einen objektiv prüfbaren Abnahmesatz.
  2. Programmablaufplan: Zeichne den Ablauf vom Einlesen bis zur Alarmanzeige mit einer Verzweigung und kennzeichne ungültige Eingaben.
  3. Datentyp: Ordne Temperatur, Alarmstatus, Gerätename und Messwertliste geeigneten Python-Datentypen zu und begründe die Auswahl.
  4. Arbeitssicherheit: Erstelle eine Sicherheitskarte: Was darfst du lokal simulieren und welche Arbeiten an realer elektrischer Hardware gehören ausschließlich unter befugte Aufsicht?


Standard

  1. Struktogramm: Entwirf ein Struktogramm für die Werteprüfung und vergleiche es mit einem Programmablaufplan auf Lesbarkeit und Fehlererkennung.
  2. SQL: Erstelle mit erfundenen Datensätzen die beiden Tabellen und eine gefilterte JOIN-Abfrage; dokumentiere Ergebnis und Schlüsselbeziehung.
  3. Softwaretest: Ergänze T3 aus dem Praxisfall als ausführbaren Negativtest für 99 Grad und Texteingaben mit erwarteten Ausnahmen.
  4. Benutzeroberfläche: Entwerfe eine barrierearme Skizze der Alarmansicht mit Zustandsanzeige, verständlichen Fehlermeldungen und ohne echte Daten.


Schwer

  1. Softwarearchitektur: Vergleiche Python mit einer Mikrocontrollerlösung anhand von Hardwarebedarf, Energie, Sicherheit, Wartbarkeit und Gesamtkosten; begründe die Empfehlung.
  2. Datenbanknormalisierung: Ergänze zwei simulierte Geräte, erläutere das 1:n-Modell und entwickle Abfragen für Alarmanzahl je Gerät und Mittelwert je Gerät.
  3. Versionsverwaltung: Plane eine Änderung der Alarmgrenze durch Konfiguration, setze sie in einer Kopie um und protokolliere Regressionstests samt Rückfallmöglichkeit.
  4. Datenschutz durch Technikgestaltung: Entwirf ein Sicherheits- und Nachhaltigkeitskonzept für einen theoretischen späteren Netzbetrieb mit Rollen, Löschung, verschlüsselter Verbindung und Ressourcenabschätzung.




Text bearbeiten Bild einfügen Video einbetten Interaktive Aufgaben erstellen



Lernkontrolle

  1. Anforderungsanalyse: Leite für einen fiktiven Werkstattauftrag mindestens fünf Akzeptanzkriterien ab und begründe, wie ihre Prüfung Kundenmissverständnisse verhindert.
  2. Algorithmus: Vergleiche ein Struktogramm mit Python-Code für die Grenzwertlogik und begründe, wo typischerweise ein Grenzfehler entstehen kann.
  3. Datenbank: Zeichne ein ER-Modell für Gerät und Messung; erkläre die Wahl der Schlüssel und zeige eine JOIN-Abfrage mit Filter und erwartetem Beispielresultat.
  4. Softwaretest: Entwirf Grenzwert-, Falschtyp-, Leerdaten- und Integritätstests mit erwartetem Verhalten; markiere, welche davon tatsächlich ausgeführt wurden.
  5. Informationssicherheit: Beurteile eine geplante Cloud-Übertragung realer Sensordaten gegenüber der lokalen Simulation nach Datenminimierung, Schutzbedarf und Betriebskosten.
  6. Projektdokumentation: Führe eine simulierte Kundenabnahme mit Prüftabelle, Rollenklärung, bekannten Einschränkungen und einer fachlich begründeten nächsten Ausbaustufe durch.


Lernnachweis

Du reichst ein Portfolio mit den folgenden eindeutig überprüfbaren Produkten ein: (1) anonymisierte Auftragsanalyse und Abnahmekriterien, (2) Programmablaufplan oder Struktogramm, (3) ER-Modell und kommentierte Tabellenstruktur, (4) selbst ausführbarer Python-Quelltext mit genauer Startanleitung, (5) Testprotokoll mit Ist-Soll-Vergleich auch für absichtlich ungültige Eingaben, (6) SQL-Abfrage und Ergebnis mit den fünf fiktiven Werten, (7) Lizenz-/Quellennachweise, (8) Sicherheits-, Datenschutz- und Nachhaltigkeitsreflexion sowie (9) fünfminütige Präsentation mit begründetem Alternativenvergleich. Belege deine Ergebnisse ohne echte Personen- oder Betriebsdaten. Der Programmcode im Praxisfall zeigt einen Musterweg; ein Lernnachweis erfordert deine eigene begründete Anpassung und die reproduzierbare Durchführung der zusätzlichen Tests T3 und T6.

Für die Selbstkontrolle kannst du das 100-Punkte-Raster aus dem Praxisfall verwenden. Die Lehrkraft oder Ausbildungsleitung prüft die tatsächliche Leistung; die Musterlösung ersetzt weder betriebliche Freigaben noch den verbindlichen Lernfeld- oder Ausbildungsplan.


OER und Wikipedia

Curriculum und Berufsrecht (offizielle Primärquellen):

Technische und rechtliche Fachquellen:

Verifizierte Bildquellen und Urheberrechte: Die Abbildungen sind fremde Werke mit ihren jeweils angegebenen Rechten; es wurden keine Bearbeitungen angefertigt. Lizenzpflichten gelten auch bei einer Weiterverwendung außerhalb dieses Kurses.

Eingebundene Datei geprüfte Datei-/Quellenseite Urheber Lizenz/Status
File:Software Development Life cycle.png Commons Tazlavi CC BY-SA 4.0
File:Flowchart de.svg Commons Erik Streb CC BY-SA 3.0
File:Client-server model.svg Commons Lubaochuan CC BY-SA 4.0
File:Entity-Relationship Model (diagram).png Commons Wooptoo gemeinfrei laut Urhebererklärung

Videonachweise: Die zwei deutschsprachigen Videos wurden über ihre veröffentlichten YouTube-Einträge und Themenbeschreibungen geprüft. Es handelt sich um externe Verweise bzw. Einbettungen, nicht um frei nachnutzbare Videodateien. Eine offene Lizenz wurde für sie nicht nachgewiesen; daher nicht herunterladen, neu hochladen oder als OER umetikettieren.

Wikipedia als ergänzender, offen lizenzierter Einstieg: Relationale Datenbank. Maßgeblich für konkrete APIs, Schutzmaßnahmen und Prüfungen bleiben die oben verlinkten Fach- und Primärquellen.


Verknüpfte Lernbereiche

Lernfeldverbindungen: LF 4 „Informationstechnische Systeme bereitstellen“ (Grundkonfiguration und Dokumentation), LF 7 „Computersysteme konfigurieren und einrichten“ (Datenschutz und Datensicherheit), LF 8 „Vernetzte Systeme installieren, erweitern und administrieren“ (Schnittstellen und Rechte), LF 9 „Anwenderspezifische Systeme auswählen und integrieren“ (Auftragsbezug), LF 11 „Kommunikationssysteme planen und realisieren“ (Datenübertragung) und LF 13 „Komplexe Informationssysteme ändern und instand halten“ (Änderung und Fehlersuche). Die konkrete Reihenfolge folgt Schule, Bundesland und Betrieb.


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

Suche verfeinern

Dein Lernplan bestimmt, was oben steht. Alle anderen Inhalte bleiben erreichbar. Seitenaufrufe beeinflussen die Auswahl nicht.

Inhalte werden geladen ...

Mediathek wird aus dem Wiki geladen ...