feat(ihk): add complete AP2 courses for FIAE, FIDP, and FIDV (ZPA 2. Auflage)

- Added ihk_ap2_fiae (Anwendungsentwicklung: 12 modules, 4 tracks, Clean Architecture, GoF, UML 2.5, SOLID, O-Notation, 80h-Project guide)
- Added ihk_ap2_fidp (Daten- & Prozessanalyse: 12 modules, 4 tracks, BPMN 2.0, ETL/CDC, Star Schema, ML-Evaluation, interactive confusion matrix calculator, 40h-Project guide)
- Added ihk_ap2_fidv (Digitale Vernetzung: 12 modules, 4 tracks, CPS/RAMI 4.0, IO-Link, Profinet, TSN, OPC UA/MQTT, 5G Campus, IEC 62443, interactive Purdue trainer, 40h-Project guide)
- Expanded authentic question bank to 207 questions with official ZPA expectation horizons
- Registered all courses in courses_manifest.js, it_ausbildungen_manifest.js, server.py routes, and dashboard.html with button-only navigation
This commit is contained in:
Alex Mueller 2026-09-14 21:49:29 +02:00
parent 54b1eb2ad5
commit b67fae4df3
156 changed files with 8396 additions and 16 deletions

View file

@ -2272,5 +2272,347 @@ window.COURSES_MANIFEST = {
] ]
} }
] ]
},
"ihk_ap2_fiae": {
"id": "ihk_ap2_fiae",
"title": "IHK AP2 Crashkurs: Fachinformatiker Anwendungsentwicklung",
"language": "ihk_ap2_fiae",
"icon": "💻",
"runner": "none",
"description": "Vollständige Prüfungsvorbereitung für FIAE (LF 9–12, WiSo, 80h-Projekt). 12 Module nach ZPA Nord-West 2. Auflage: Software-Architektur (MVC, Hexagonal, Clean), GoF-Entwurfsmuster, UML 2.5, Algorithmen (O-Notation), OOP & SOLID, Enterprise SQL & ORM, REST/GraphQL, Testing & Vollsimulation.",
"tracks": [
{
"id": "track_1_architektur_und_design",
"title": "🌱 Lehrpfad 1: Software-Architektur, Modellierung & Anforderungsanalyse (LF 9 & 10)",
"description": "Clean & Hexagonal Architecture, GoF Patterns (Singleton, Factory, Strategy, Observer), UML 2.5 (Klassendiagramm, Sequenzdiagramm, Aktivitätsdiagramm, State Machine), User Stories, Lasten-/Pflichtenheft & Function-Point-Methode.",
"certificateKey": "ihk_ap2_fiae_architektur",
"chapters": [
{
"folder": "01_software_architektur_und_design_patterns",
"title": "LF 9: Software-Architektur & Design Patterns (MVC, Clean, GoF-Muster)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "02_uml_modellierung_und_softwareentwurf",
"title": "LF 9: Normierte UML 2.5 Modellierung (Klassen-, Sequenz- & Aktivitätsdiagramme)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "03_anforderungsanalyse_und_aufwandsschaetzung",
"title": "LF 10: Anforderungsanalyse, Agilität & Aufwandsschätzung (Function Points, COCOMO)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
},
{
"id": "track_2_algorithmen_und_oop",
"title": "⚙️ Lehrpfad 2: Algorithmen, Datenstrukturen & Objektorientierung (LF 10 & 11)",
"description": "O-Notation (Zeit- & Speicherkomplexität), Sortier- & Suchalgorithmen, Bäume, Graphen, Hashmaps, OOP-Konzepte & SOLID-Prinzipien.",
"certificateKey": "ihk_ap2_fiae_algorithmen",
"chapters": [
{
"folder": "04_algorithmen_und_komplexitaet_o_notation",
"title": "LF 10: Algorithmen, Komplexität & O-Notation (Sortieren, Suchen, Rekursion)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "05_datenstrukturen_und_speichermanagement",
"title": "LF 10: Fortgeschrittene Datenstrukturen & Memory Management (Trees, HashTables, Caching)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "06_objektorientierte_programmierung_solid",
"title": "LF 11: Objektorientierte Programmierung & SOLID-Prinzipien (Clean Code)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
},
{
"id": "track_3_daten_apis_und_testing",
"title": "☁️ Lehrpfad 3: Enterprise SQL, API-Design & Quality Assurance (LF 11 & 12)",
"description": "ZPA-SQL (DDL, DML, DCL, Normalisierung, Transaktionen/ACID), RESTful APIs (HTTP Verbs, Statuscodes, OpenAPI), GraphQL, TDD, Unit-/Integrations-Tests & CI/CD.",
"certificateKey": "ihk_ap2_fiae_daten_testing",
"chapters": [
{
"folder": "07_enterprise_sql_und_datenbank_modellierung",
"title": "LF 11: Enterprise SQL & Datenbank-Design (ER-Modell, Normalisierung, ACID, Transaktionen)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "08_api_design_rest_json_und_graphql",
"title": "LF 11: Modernes API-Design, REST, JSON & Web-Security (OAuth2, JWT, CORS)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "09_software_testing_und_ci_cd_pipelines",
"title": "LF 12: Software-Testing, Teststufen & CI/CD (TDD, Mocking, Testüberdeckung)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
},
{
"id": "track_4_wiso_projekt_und_pruefung",
"title": "🏆 Lehrpfad 4: WiSo, 80h-Projektarbeit & AP2-Prüfungssimulation",
"description": "Software-Lizenzmodelle (GPL, MIT, Apache, SaaS), Arbeits- & Urheberrecht, Leitfaden für die 80-stündige Projektarbeit samt Dokumentation & Fachgespräch sowie Vollprüfung.",
"certificateKey": "ihk_ap2_fiae_master",
"chapters": [
{
"folder": "10_wiso_arbeitsrecht_und_lizenzmodelle",
"title": "WiSo: IT-Arbeitsrecht, Urheberrecht, Lizenzmodelle (Open Source vs. Commercial) & DSGVO",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "11_betriebliche_projektarbeit_guide_80h",
"title": "Projekt: Betriebliche Projektarbeit (80h) & Fachgespräch (Guide nach § 15 BBiG)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "12_ap2_fiae_gesamtpruefung_simulation",
"title": "Abschluss: AP2 FIAE Gesamtprüfungssimulation (PB 1, PB 2 & WiSo)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
}
]
},
"ihk_ap2_fidp": {
"id": "ihk_ap2_fidp",
"title": "IHK AP2 Crashkurs: Fachinformatiker Daten- und Prozessanalyse",
"language": "ihk_ap2_fidp",
"icon": "📊",
"runner": "none",
"description": "Vollständige Prüfungsvorbereitung für FIDP (LF 9–12, WiSo, 40h-Projekt). 12 Module nach ZPA Nord-West 2. Auflage: Geschäftsprozessanalyse, BPMN 2.0 (ISO 19510), ISO 25012 Datenqualität, ETL/CDC, Star-/Snowflake-Schema, Big Data & Kafka, Deskriptive/Induktive Statistik, Machine Learning Evaluation (Confusion Matrix, ROC), BI-Dashboard-Design, Data Governance & Vollsimulation.",
"tracks": [
{
"id": "track_1_prozessanalyse_und_qualitaet",
"title": "🌱 Lehrpfad 1: Prozessanalyse, BPMN 2.0 & Datenqualität (LF 9 & 10)",
"description": "Ist-Analyse, Durchlaufzeiten (DLZ), Prozess-Effizienz, BPMN 2.0 (Pools, Lanes, Gateways, Boundary Events), Datenformate (JSON, Parquet) & ISO/IEC 25012 Datenqualitätsmerkmale.",
"certificateKey": "ihk_ap2_fidp_prozesse",
"chapters": [
{
"folder": "01_prozessanalyse_und_prozessoptimierung",
"title": "LF 9: Geschäftsprozessanalyse & Optimierungsmethoden (KPIs, Kaizen, Lean)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "02_bpmn20_und_prozessmodellierung_vertiefung",
"title": "LF 9: Normierte BPMN 2.0 Prozessmodellierung (Gateways, Intermediate Events)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "03_datenquellen_und_datenqualitaet",
"title": "LF 10: Datenquellen, Formate & Datenqualität (ISO 25012, Parquet)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
},
{
"id": "track_2_etl_und_warehousing",
"title": "⚙️ Lehrpfad 2: Data Engineering, ETL & Data Warehousing (LF 10 & 11)",
"description": "ETL vs. ELT, Change Data Capture (CDC), Idempotenz, DWH-3-Schichten-Architektur, Star- vs. Snowflake-Schema, Slowly Changing Dimensions (SCD 1-3) & Big Data Streaming (Kafka, Lakehouse).",
"certificateKey": "ihk_ap2_fidp_dwh",
"chapters": [
{
"folder": "04_etl_prozesse_und_datenpipelines",
"title": "LF 10: ETL/ELT-Prozesse & Moderne Datenpipelines (CDC, Airflow, Idempotenz)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "05_data_warehouse_und_datenmodellierung",
"title": "LF 10: Data Warehouse Architekturen & Star-/Snowflake-Schema (SCD 1-3)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "06_big_data_architekturen_und_streaming",
"title": "LF 11: Big Data, Streaming & Data Lakehouse (5 V's, Kafka, Lambda/Kappa)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
},
{
"id": "track_3_statistik_ml_und_bi",
"title": "☁️ Lehrpfad 3: Statistik, Machine Learning & BI-Reporting (LF 11 & 12)",
"description": "Deskriptive & induktive Statistik (Mittelwert, Median, Hypothesentest, p-Wert), Machine Learning Evaluation (Confusion Matrix, Precision, Recall, F1-Score) & Dashboard-Design nach Tufte & IBCS.",
"certificateKey": "ihk_ap2_fidp_analytics",
"chapters": [
{
"folder": "07_deskriptive_und_induktive_statistik",
"title": "LF 11: Deskriptive & Induktive Statistik (Lage-/Streumaße, Hypothesentests)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "08_machine_learning_und_kuenstliche_intelligenz",
"title": "LF 11: Machine Learning & Modell-Evaluation (Confusion Matrix, F1-Score)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "09_datenvisualisierung_und_bi_reporting",
"title": "LF 12: Datenvisualisierung & BI-Dashboard-Design (IBCS, Tufte, Power BI)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
},
{
"id": "track_4_governance_projekt_und_pruefung",
"title": "🏆 Lehrpfad 4: Governance, 40h-Projektarbeit & AP2-Prüfungssimulation",
"description": "DSGVO (Art. 5/6/9), Anonymisierung vs. Pseudonymisierung, Data Lineage, Leitfaden für die 40h-Projektarbeit samt Nutzwertanalyse & Vollprüfungssimulation.",
"certificateKey": "ihk_ap2_fidp_master",
"chapters": [
{
"folder": "10_datenschutz_compliance_und_wiso",
"title": "WiSo & LF 12: Data Governance, DSGVO & IT-Recht (Anonymisierung, Lineage)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "11_betriebliche_projektarbeit_guide_40h",
"title": "Projekt: Betriebliche Projektarbeit (40h) & Fachgespräch (Guide)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "12_ap2_fidp_gesamtpruefung_simulation",
"title": "Abschluss: AP2 FIDP Gesamtprüfungssimulation (PB 1, PB 2 & WiSo)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
}
]
},
"ihk_ap2_fidv": {
"id": "ihk_ap2_fidv",
"title": "IHK AP2 Crashkurs: Fachinformatiker Digitale Vernetzung",
"language": "ihk_ap2_fidv",
"icon": "🏭",
"runner": "none",
"description": "Vollständige Prüfungsvorbereitung für FIDV (LF 9–12, WiSo, 40h-Projekt). 12 Module nach ZPA Nord-West 2. Auflage: Cyber-Physische Systeme (CPS), RAMI 4.0, IO-Link & Sensorik, Edge Computing (IPCs, K3s), Profinet IO (RT/IRT), TSN (802.1Qbv), OPC UA & MQTT, Private 5G-Campusnetze (Band n78), Industrial Security IEC 62443, Purdue-Modell & IDMZ, PRP/HSR Zero-Failover & Vollsimulation.",
"tracks": [
{
"id": "track_1_cps_und_edge",
"title": "🌱 Lehrpfad 1: CPS, Sensorik & Edge Computing (LF 9 & 10)",
"description": "Cyber-Physische Systeme (CPS), RAMI 4.0, Verwaltungsschale (AAS), 4-20 mA Stromschleifen, IO-Link (IEC 61131-9), Nyquist-Shannon & Industrie-PCs / Edge-Gateways.",
"certificateKey": "ihk_ap2_fidv_cps",
"chapters": [
{
"folder": "01_industrie40_und_cyber_physische_systeme",
"title": "LF 9: Industrie 4.0 & Cyber-Physische Systeme (RAMI 4.0, AAS, Digital Twin)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "02_sensorik_aktorik_und_signalverarbeitung",
"title": "LF 9: Industrielle Sensorik, Aktorik & Signalwandlung (IO-Link, 4-20 mA)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "03_edge_computing_und_iot_gateways",
"title": "LF 10: Edge Computing, Industrie-PCs & IoT-Gateways (Docker, K3s, Filterung)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
},
{
"id": "track_2_busse_und_protokolle",
"title": "⚙️ Lehrpfad 2: Industrielle Kommunikation & IoT-Protokolle (LF 10 & 11)",
"description": "Modbus RTU/TCP, Profinet IO (RT/IRT), TSN (IEEE 802.1Qbv), OPC UA (Client/Server, Nodes), MQTT (QoS 0/1/2, LWT, Retain) & Private 5G-Campusnetze (Band n78 3,7-3,8 GHz).",
"certificateKey": "ihk_ap2_fidv_busse",
"chapters": [
{
"folder": "04_industrielle_kommunikation_und_feldbusse",
"title": "LF 10: Feldbusse & Industrial Ethernet (Profinet IO, Modbus, TSN)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "05_iot_protokolle_mqtt_coap_und_opc_ua",
"title": "LF 11: Industrielle IoT-Protokolle (OPC UA, MQTT, CoAP)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "06_drahtlose_vernetzung_und_5g_campusnetze",
"title": "LF 11: Drahtlose Vernetzung & Private 5G-Campusnetze (URLLC, n78, LoRaWAN)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
},
{
"id": "track_3_ot_security_und_resilienz",
"title": "☁️ Lehrpfad 3: Industrial Security & OT-Netzwerkresilienz (LF 11 & 12)",
"description": "IEC 62443 (Zonen & Conduits, Security Levels 1-4), Purdue-Modell (Level 0-5), Industrial DMZ (IDMZ 3.5), Deep Packet Inspection (DPI), PRP/HSR Zero-Failover & passives OT-Monitoring.",
"certificateKey": "ihk_ap2_fidv_security",
"chapters": [
{
"folder": "07_industrial_security_iec_62443",
"title": "LF 11: Industrial Security nach IEC 62443 (Zonen & Conduits, SL 1-4)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "08_netzwerksegmentierung_und_ot_firewalls",
"title": "LF 11: Purdue-Referenzmodell & OT-Netzwerksegmentierung (IDMZ, DPI)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "09_ot_monitoring_anomalieerkennung_und_resilienz",
"title": "LF 12: OT-Netzwerkresilienz, PRP/HSR & Passives Monitoring (TAP vs. SPAN)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
},
{
"id": "track_4_safety_projekt_und_pruefung",
"title": "🏆 Lehrpfad 4: Maschinensicherheit, 40h-Projektarbeit & AP2-Prüfungssimulation",
"description": "Safety vs. Security, Performance Level (PL) & SIL, CE-Kennzeichnung (wesentliche Veränderung), Leitfaden für die 40h-Projektarbeit samt Retrofit & Vollprüfungssimulation.",
"certificateKey": "ihk_ap2_fidv_master",
"chapters": [
{
"folder": "10_betriebsorganisation_sicherheit_und_wiso",
"title": "WiSo & LF 12: Maschinensicherheit (Safety vs. Security, SIL/PL) & Recht",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "11_betriebliche_projektarbeit_guide_40h",
"title": "Projekt: Betriebliche Projektarbeit (40h) & Fachgespräch (Guide)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "12_ap2_fidv_gesamtpruefung_simulation",
"title": "Abschluss: AP2 FIDV Gesamtprüfungssimulation (PB 1, PB 2 & WiSo)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
}
]
} }
}; };

View file

@ -0,0 +1,95 @@
/**
* Interaktiver Konfusionsmatrix- & ML-Kennzahlen-Rechner für FIDP
* IHK ZPA Nord-West AP2
*/
(function() {
function renderConfusionMatrix(containerId) {
const container = document.getElementById(containerId);
if (!container) return;
container.innerHTML = `
<div style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; color: #f8fafc;">
<h4 style="color: #38bdf8; margin-top: 0; margin-bottom: 12px;">📊 Interaktiver Konfusionsmatrix-Rechner (FIDP)</h4>
<p style="color: #94a3b8; font-size: 0.9rem; margin-bottom: 16px;">
Geben Sie die Werte der 2x2-Konfusionsmatrix ein, um Accuracy, Precision, Recall und F1-Score nach IHK-Formeln live zu berechnen:
</p>
<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 16px; max-width: 480px; margin-bottom: 20px;">
<div style="background: #1e293b; padding: 12px; border-radius: 6px; border-left: 4px solid #22c55e;">
<label style="font-size: 0.85rem; color: #4ade80; display: block; font-weight: 600;">True Positive (TP)</label>
<input type="number" id="cm_tp" value="80" min="0" class="ihk-input" style="width: 100%; margin-top: 6px;" />
</div>
<div style="background: #1e293b; padding: 12px; border-radius: 6px; border-left: 4px solid #f59e0b;">
<label style="font-size: 0.85rem; color: #fcd34d; display: block; font-weight: 600;">False Positive (FP - Alpha-Fehler)</label>
<input type="number" id="cm_fp" value="20" min="0" class="ihk-input" style="width: 100%; margin-top: 6px;" />
</div>
<div style="background: #1e293b; padding: 12px; border-radius: 6px; border-left: 4px solid #ef4444;">
<label style="font-size: 0.85rem; color: #f87171; display: block; font-weight: 600;">False Negative (FN - Beta-Fehler)</label>
<input type="number" id="cm_fn" value="10" min="0" class="ihk-input" style="width: 100%; margin-top: 6px;" />
</div>
<div style="background: #1e293b; padding: 12px; border-radius: 6px; border-left: 4px solid #3b82f6;">
<label style="font-size: 0.85rem; color: #60a5fa; display: block; font-weight: 600;">True Negative (TN)</label>
<input type="number" id="cm_tn" value="890" min="0" class="ihk-input" style="width: 100%; margin-top: 6px;" />
</div>
</div>
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; background: #1e293b; padding: 16px; border-radius: 6px;">
<div>
<div style="color: #94a3b8; font-size: 0.8rem;">Genauigkeit (Accuracy)</div>
<div id="res_acc" style="font-size: 1.3rem; font-weight: bold; color: #38bdf8;">-- %</div>
<div style="font-size: 0.75rem; color: #64748b;">(TP + TN) / Gesamt</div>
</div>
<div>
<div style="color: #94a3b8; font-size: 0.8rem;">Präzision (Precision)</div>
<div id="res_prec" style="font-size: 1.3rem; font-weight: bold; color: #fcd34d;">-- %</div>
<div style="font-size: 0.75rem; color: #64748b;">TP / (TP + FP)</div>
</div>
<div>
<div style="color: #94a3b8; font-size: 0.8rem;">Trefferquote (Recall)</div>
<div id="res_rec" style="font-size: 1.3rem; font-weight: bold; color: #4ade80;">-- %</div>
<div style="font-size: 0.75rem; color: #64748b;">TP / (TP + FN)</div>
</div>
<div>
<div style="color: #94a3b8; font-size: 0.8rem;">Harmonisches Mittel (F1)</div>
<div id="res_f1" style="font-size: 1.3rem; font-weight: bold; color: #c084fc;">--</div>
<div style="font-size: 0.75rem; color: #64748b;">2 * (P * R) / (P + R)</div>
</div>
</div>
</div>
`;
function update() {
const tp = parseFloat(document.getElementById('cm_tp').value) || 0;
const fp = parseFloat(document.getElementById('cm_fp').value) || 0;
const fn = parseFloat(document.getElementById('cm_fn').value) || 0;
const tn = parseFloat(document.getElementById('cm_tn').value) || 0;
const total = tp + fp + fn + tn;
if (total === 0) return;
const acc = ((tp + tn) / total) * 100;
const prec = (tp + fp > 0) ? (tp / (tp + fp)) * 100 : 0;
const rec = (tp + fn > 0) ? (tp / (tp + fn)) * 100 : 0;
const p = prec / 100;
const r = rec / 100;
const f1 = (p + r > 0) ? (2 * (p * r) / (p + r)) : 0;
document.getElementById('res_acc').textContent = acc.toFixed(2) + ' %';
document.getElementById('res_prec').textContent = prec.toFixed(2) + ' %';
document.getElementById('res_rec').textContent = rec.toFixed(2) + ' %';
document.getElementById('res_f1').textContent = f1.toFixed(3);
}
['cm_tp', 'cm_fp', 'cm_fn', 'cm_tn'].forEach(id => {
document.getElementById(id).addEventListener('input', update);
});
update();
}
window.renderConfusionMatrix = renderConfusionMatrix;
document.addEventListener('DOMContentLoaded', () => {
if (document.getElementById('confusion-matrix-app')) {
renderConfusionMatrix('confusion-matrix-app');
}
});
})();

View file

@ -1,4 +1,6 @@
// Automatisch generierte IHK-Fragendatenbank /**
* Offizieller IHK Prüfungskatalog ZPA Nord-West 2. Auflage
*/
window.IHK_QUESTION_BANK = [ window.IHK_QUESTION_BANK = [
{ {
"id": "ap1_lf1_001", "id": "ap1_lf1_001",
@ -2051,5 +2053,403 @@ window.IHK_QUESTION_BANK = [
"solution": "Erteilung: Prokura kann nur durch den Inhaber/Geschäftsführer ausdrücklich und persönlich erteilt werden; Handlungsvollmacht kann formlos auch durch Prokuristen erteilt werden. (2 Pkt.)\nUmfang: Prokura ermächtigt zu ALLEN Arten von gerichtlichen und außergerichtlichen Geschäften und Rechtshandlungen, die der Betrieb IRGENDEINES Handelsgewerbes mit sich bringt (Ausnahme: Grundstücke verkaufen/belasten bedarf gesonderter Befugnis). Handlungsvollmacht ermächtigt nur zu Geschäften, die der Betrieb DIESES KONKRETEN Handelsgewerbes gewöhnlich mit sich bringt. (3 Pkt.)\nHandelsregister: Prokura MUSS zwingend ins Handelsregister eingetragen werden (deklaratorisch); Handlungsvollmacht wird NICHT eingetragen. (1,5 Pkt.)\nZeichnung: Prokurist zeichnet mit \"per procura\" / \"ppa. Vorname Nachname\"; Handlungsbevollmächtigter zeichnet mit \"in Vollmacht\" / \"i.V.\" oder \"in Auftrag\" / \"i.A.\". (1,5 Pkt.)", "solution": "Erteilung: Prokura kann nur durch den Inhaber/Geschäftsführer ausdrücklich und persönlich erteilt werden; Handlungsvollmacht kann formlos auch durch Prokuristen erteilt werden. (2 Pkt.)\nUmfang: Prokura ermächtigt zu ALLEN Arten von gerichtlichen und außergerichtlichen Geschäften und Rechtshandlungen, die der Betrieb IRGENDEINES Handelsgewerbes mit sich bringt (Ausnahme: Grundstücke verkaufen/belasten bedarf gesonderter Befugnis). Handlungsvollmacht ermächtigt nur zu Geschäften, die der Betrieb DIESES KONKRETEN Handelsgewerbes gewöhnlich mit sich bringt. (3 Pkt.)\nHandelsregister: Prokura MUSS zwingend ins Handelsregister eingetragen werden (deklaratorisch); Handlungsvollmacht wird NICHT eingetragen. (1,5 Pkt.)\nZeichnung: Prokurist zeichnet mit \"per procura\" / \"ppa. Vorname Nachname\"; Handlungsbevollmächtigter zeichnet mit \"in Vollmacht\" / \"i.V.\" oder \"in Auftrag\" / \"i.A.\". (1,5 Pkt.)",
"type": "text", "type": "text",
"options": [] "options": []
},
{
"id": "fiae_arch_001",
"exam": "AP2_T1",
"lernfeld": "LF 9 AE",
"topic": "Clean Architecture & Schichtenmodell",
"scenario": "Für ein E-Commerce-Portal soll eine wartbare und zukunftssichere Softwarearchitektur konzipiert werden.",
"question": "Erläutern Sie das Prinzip der Schichtenarchitektur (Drei-Schichten-Architektur: Präsentation, Geschäftslogik, Datenzugriff). Erklären Sie die Dependency Inversion Rule (Abhängigkeitsregel) in der Clean Architecture und warum Domänenlogik unabhängig von Datenbanken und Frameworks sein muss.",
"points": 8,
"solution": "Drei-Schichten-Architektur:\n1. Präsentationsschicht (Presentation Layer / UI): Verantwortlich für Interaktion mit Benutzer/Client (Views, REST-Controller). Nimmt Eingaben entgegen und stellt Ergebnisse dar. (2 Pkt.)\n2. Geschäftslogikschicht (Business Logic / Domain Layer): Beinhaltet Kernregeln, Berechnungen und Validierungen des Unternehmens. Unabhängig von UI und DB. (2 Pkt.)\n3. Datenzugriffsschicht (Data Access / Persistence Layer): Verwaltet Datenbankabfragen, ORM, Dateizugriffe und externe APIs. (2 Pkt.)\n\nClean Architecture & Dependency Inversion:\nDie Abhängigkeitsregel besagt, dass Quellcode-Abhängigkeiten immer nur nach innen auf die Domänenlogik zeigen dürfen. Äußere Schichten (DB, Web-Framework, UI) hängen von inneren Schichten (Entities, Use Cases) ab, niemals umgekehrt. Dies geschieht über Interfaces: Die Geschäftslogik definiert Schnittstellen (z. B. IUserRepository), die die äußere Datenschicht implementiert. Vorteil: Datenbanken, UI oder externe APIs können ohne Änderung der Geschäftsregeln ausgetauscht oder getestet werden. (2 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fiae_arch_002",
"exam": "AP2_T1",
"lernfeld": "LF 9 AE",
"topic": "Design Patterns Strategy vs Factory Method",
"scenario": "In einem Warenwirtschaftssystem sollen unterschiedliche Rabattberechnungen und Versandarten dynamisch zur Laufzeit angewendet werden.",
"question": "Beschreiben Sie das GoF-Entwurfsmuster \"Strategy (Strategie)\" anhand von Context, Strategy-Interface und Concrete Strategies. Grenzen Sie es kurz vom Factory Method Pattern ab.",
"points": 8,
"solution": "Strategy Pattern (Verhaltensmuster):\n- Zweck: Definiert eine Familie von Algorithmen, kapselt jeden einzelnen und macht sie zur Laufzeit austauschbar. (2 Pkt.)\n- Komponenten:\n 1. Strategy (Interface): Definiert die gemeinsame Methodensignatur für alle Algorithmen (z. B. calculateDiscount(Order order): double). (2 Pkt.)\n 2. Concrete Strategies: Konkrete Implementierungen des Algorithmus (z. B. VipCustomerDiscount, SeasonalDiscount, NoDiscount). (2 Pkt.)\n 3. Context (Kontext): Hält eine Referenz auf ein Strategy-Objekt und delegiert die Ausführung an dieses (z. B. OrderProcessor.setDiscountStrategy(...)). (1 Pkt.)\n- Abgrenzung zum Factory Method Pattern: Strategy ist ein Verhaltensmuster zur dynamischen Verhaltensänderung bestehender Objekte; Factory Method ist ein Erzeugungsmuster zur instanziierungsunabhängigen Erzeugung von Objekten über abgeleitete Klassen. (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fiae_arch_003",
"exam": "AP2_T1",
"lernfeld": "LF 9 AE",
"topic": "Design Patterns Observer & Singleton",
"scenario": "In einer Messaging-Applikation sollen mehrere Benutzeroberflächen-Komponenten sofort informiert werden, sobald eine neue Chatnachricht eintrifft.",
"question": "Erläutern Sie das Entwurfsmuster Observer (Beobachter) mit den Rollen Subject (Publisher) und Observer (Subscriber). Erklären Sie zudem das Singleton-Muster und warum es in modernen Softwaresystemen oft als Anti-Pattern angesehen wird.",
"points": 8,
"solution": "Observer Pattern (Publisher/Subscriber):\n- Subject (Publisher): Verwaltet eine Liste von Abonnenten (Observer). Bietet Methoden zum Anmelden (attach/subscribe), Abmelden (detach/unsubscribe) und Benachrichtigen (notifyObservers()). Bei Zustandsänderung durchläuft notifyObservers() die Liste und ruft update() auf. (3 Pkt.)\n- Observer (Subscriber): Definiert eine gemeinsame update()-Methode, die vom Subject aufgerufen wird, um über Änderungen informiert zu werden. Lose Kopplung zwischen Sender und Empfängern. (2 Pkt.)\n\nSingleton Pattern:\n- Zweck: Stellt sicher, dass von einer Klasse exakt eine einzige Instanz existiert, und bietet einen globalen Zugriffspunkt (privater Konstruktor, statische Instanzvariable, statische getInstance()-Methode). (1,5 Pkt.)\n- Kritik / Anti-Pattern: Erzeugt enge globale Kopplung, erschwert Unit-Testing und Mocking massiv, verstößt gegen das Single Responsibility Principle und kann in Multi-Threaded-Umgebungen Race Conditions verursachen. Moderner Ersatz: Dependency Injection. (1,5 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fiae_algo_001",
"exam": "AP2_T2",
"lernfeld": "LF 10 AE",
"topic": "Algorithmen-Komplexität O-Notation",
"scenario": "Für eine stark wachsende Plattform müssen Algorithmen auf ihre Skalierbarkeit und Laufzeitkomplexität hin analysiert werden.",
"question": "Erklären Sie die Landau-Symbole (O-Notation) zur Abschätzung der Zeitkomplexität. Ordnen Sie folgende Komplexitätsklassen von der effizientesten zur ineffizientesten Laufzeit: O(n log n), O(1), O(n²), O(log n), O(n). Nennen Sie je ein typisches Code- oder Algorithmenbeispiel für O(1), O(log n) und O(n).",
"points": 8,
"solution": "Bedeutung der O-Notation:\nBeschreibt das asymptotische Wachstumsverhalten des Ressourcenbedarfs (Laufzeit/Speicher) eines Algorithmus in Abhängigkeit von der Eingabegröße n im Worst-Case-Szenario. Konstante Faktoren werden vernachlässigt. (2 Pkt.)\n\nReihenfolge nach Effizienz (von schnell/effizient zu langsam/ineffizient):\n1. O(1) [konstant] < 2. O(log n) [logarithmisch] < 3. O(n) [linear] < 4. O(n log n) [linear-logarithmisch] < 5. O(n²) [quadratisch]. (3 Pkt.)\n\nBeispiele:\n- O(1): Direkter Array-Zugriff per Index (z. B. array[5]) oder Abfrage per Schlüssel in einer Hash-Map. (1 Pkt.)\n- O(log n): Binäre Suche in einem sortierten Array (Halbierungsprinzip). (1 Pkt.)\n- O(n): Lineare Suche in einer unsortierten Liste oder eine einfache for-Schleife über n Elemente. (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fiae_algo_002",
"exam": "AP2_T2",
"lernfeld": "LF 10 AE",
"topic": "Sortieralgorithmen Quicksort vs Mergesort",
"scenario": "Ein Datenstrom von Millionen Datensätzen soll effizient sortiert werden.",
"question": "Vergleichen Sie Quicksort und Mergesort nach dem Divide-and-Conquer-Prinzip hinsichtlich Best-Case-, Average-Case- und Worst-Case-Laufzeit, Speicherplatzkomplexität und Stabilität.",
"points": 8,
"solution": "Gemeinsamkeit: Beide nutzen Divide-and-Conquer (Teile-und-Herrsche). (1 Pkt.)\n\nQuicksort:\n- Laufzeit: Best-Case O(n log n), Average-Case O(n log n), Worst-Case O(n²) (wenn Pivot-Element extrem ungünstig gewählt, z. B. bereits sortierte Liste). (2 Pkt.)\n- Speicherkomplexität: O(log n) durch Rekursions-Stack (In-Place-Verfahren, benötigt kein Zusatzarray). (1,5 Pkt.)\n- Stabilität: In der Regel instabil (gleiche Elemente können ihre relative Reihenfolge ändern). (0,5 Pkt.)\n\nMergesort:\n- Laufzeit: Garantiert O(n log n) in Best-, Average- und Worst-Case! (2 Pkt.)\n- Speicherkomplexität: O(n), da Hilfsarrays beim Verschmelzen (Merge) benötigt werden. (0,5 Pkt.)\n- Stabilität: Stabil (relative Reihenfolge gleicher Elemente bleibt erhalten). (0,5 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fiae_oop_001",
"exam": "AP2_T2",
"lernfeld": "LF 10 AE",
"topic": "SOLID-Prinzipien der OOP",
"scenario": "Ein Software-Projekt leidet unter Spaghetti-Code und mangelnder Erweiterbarkeit.",
"question": "Benennen und erläutern Sie die 5 SOLID-Prinzipien der objektorientierten Programmierung. Gehen Sie vertieft auf das Single Responsibility Principle (SRP) und das Dependency Inversion Principle (DIP) ein.",
"points": 8,
"solution": "Die 5 SOLID-Prinzipien:\n1. S - Single Responsibility Principle (SRP): Eine Klasse sollte genau eine einzige Verantwortung (einen einzigen Grund zur Änderung) haben. Beispiel: Eine Klasse User sollte Daten halten, aber nicht selbst E-Mails versenden oder sich in der Datenbank speichern. (2 Pkt.)\n2. O - Open/Closed Principle (OCP): Software-Einheiten sollten offen für Erweiterung, aber geschlossen für Modifikation sein (z. B. durch Vererbung und Interfaces statt if/else-Ketten). (1,5 Pkt.)\n3. L - Liskov Substitution Principle (LSP): Subklassen müssen anstelle ihrer Basisklassen eingesetzt werden können, ohne dass das Programm fehlerhaft reagiert. (1,5 Pkt.)\n4. I - Interface Segregation Principle (ISP): Viele spezialisierte, schlanke Interfaces sind besser als ein riesiges Allzweck-Interface (keine erzwungene Implementierung ungenutzter Methoden). (1,5 Pkt.)\n5. D - Dependency Inversion Principle (DIP): High-Level-Module dürfen nicht von Low-Level-Modulen abhängen; beide müssen von Abstraktionen (Interfaces) abhängen. Abstraktionen dürfen nicht von Details abhängen. (1,5 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fiae_api_001",
"exam": "AP2_T2",
"lernfeld": "LF 11 AE",
"topic": "RESTful API Design & HTTP-Statuscodes",
"scenario": "Für eine Smartphone-App wird ein Backend mit REST-Schnittstellen entworfen.",
"question": "Definieren Sie die 4 zentralen HTTP-Verben (GET, POST, PUT, DELETE) und deren Idempotenz. Nennen und erläutern Sie je zwei typische HTTP-Statuscodes der Kategorien 2xx, 4xx und 5xx.",
"points": 8,
"solution": "HTTP-Verben & Idempotenz (Mehrfache Ausführung führt zum selben Serverzustand):\n- GET: Ruft Ressourcen ab. Sicher & Idempotent. (1 Pkt.)\n- POST: Erzeugt eine neue Ressource unter einer Collection. Nicht idempotent (mehrfache Aufrufe erzeugen mehrere Datensätze). (1 Pkt.)\n- PUT: Ersetzt eine bestehende Ressource vollständig. Idempotent. (1 Pkt.)\n- DELETE: Löscht eine Ressource. Idempotent. (1 Pkt.)\n\nHTTP-Statuscodes:\n- 2xx (Erfolg): 200 OK (Standard-Erfolg), 201 Created (Ressource neu angelegt), 204 No Content (Erfolg ohne Rückgabedaten). (1,5 Pkt.)\n- 4xx (Client-Fehler): 400 Bad Request (Fehlerhafte Syntax/Validierung), 401 Unauthorized (Nicht authentifiziert), 403 Forbidden (Rechte fehlen), 404 Not Found (Ressource existiert nicht). (1,5 Pkt.)\n- 5xx (Server-Fehler): 500 Internal Server Error (Unbehandelter Serverfehler), 502 Bad Gateway, 503 Service Unavailable (Überlastung/Wartung). (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fiae_test_001",
"exam": "AP2_T2",
"lernfeld": "LF 12 AE",
"topic": "Test-Driven Development TDD & Testpyramide",
"scenario": "In einem agilen Scrum-Team soll die Softwarequalität durch automatisierte Tests gesichert werden.",
"question": "Beschreiben Sie den TDD-Zyklus (Red-Green-Refactor). Erläutern Sie die Testpyramide (Unit-Tests, Integrationstests, End-to-End-Tests) und warum Unit-Tests das Fundament bilden.",
"points": 8,
"solution": "TDD-Zyklus (Red-Green-Refactor):\n1. Red: Einen neuen automatisierten Unit-Test für ein Feature schreiben, bevor Produktionscode existiert. Der Test muss zwingend fehlschlagen (rot). (1,5 Pkt.)\n2. Green: Minimalen Produktionscode schreiben, der gerade ausreicht, um den Test erfolgreich zu bestehen (grün). (1,5 Pkt.)\n3. Refactor: Den Code bereinigen (Duplikate entfernen, Lesbarkeit verbessern, Patterns anwenden), während sichergestellt wird, dass alle Tests weiterhin grün bleiben. (1,5 Pkt.)\n\nTestpyramide:\n- Basis: Unit-Tests (Komponententests). Testen einzelne Klassen/Methoden isoliert mit Mocks. Schnellste Ausführung (ms), geringste Kosten, höchste Testabdeckung (ca. 70-80 %). (2 Pkt.)\n- Mitte: Integrationstests. Testen das Zusammenspiel mehrerer Module (z. B. Service mit DB oder API). Längere Laufzeit, mittlere Anzahl. (1 Pkt.)\n- Spitze: End-to-End (E2E) / UI-Tests. Testen das Gesamtsystem aus Nutzersicht über Browser/Client. Langsam, fehleranfällig (brittle), teuer im Unterhalt, geringste Anzahl. (0,5 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidp_proc_001",
"exam": "AP2_T1",
"lernfeld": "LF 9 DP",
"topic": "Prozessanalyse Durchlauf- und Liegezeiten",
"scenario": "In einem Logistikunternehmen soll die Auftragsabwicklung von Bestelleingang bis Warenausgang analysiert und optimiert werden.",
"question": "Definieren Sie Durchlaufzeit, Bearbeitungszeit, Liegezeit und Rüstzeit. Erläutern Sie die Prozess-Zykluseffizienz (Process Cycle Efficiency PCE) und wie Flaschenhälse (Bottlenecks) identifiziert werden.",
"points": 8,
"solution": "Zeitdefinitionen im Prozess:\n- Durchlaufzeit (DLZ): Die gesamte Zeitspanne vom Start des Prozesses (Bestelleingang) bis zur Fertigstellung (Auslieferung). (2 Pkt.)\n- Bearbeitungszeit: Die Zeit, in der tatsächlich wertschöpfend am Auftrag gearbeitet wird. (1,5 Pkt.)\n- Liegezeit / Wartezeit: Unproduktive Zeit, in der ein Auftrag auf Bearbeitung, Transport oder Freigabe wartet (macht oft 80-95 % der DLZ aus!). (1,5 Pkt.)\n- Rüstzeit: Zeit zur Vorbereitung von Maschinen/Systemen auf den nächsten Auftrag. (1 Pkt.)\n\nProzess-Zykluseffizienz (PCE):\nPCE = (Wertschöpfende Bearbeitungszeit / Gesamte Durchlaufzeit) * 100 %. Zeigt den Grad der Prozessverschwendung. (1 Pkt.)\nFlaschenhals-Identifikation (Bottleneck): Der Prozessschritt mit der geringsten Kapazität bzw. der längsten Bearbeitungszeit je Einheit, vor dem sich Auftragsstaus bilden. Bestimmt den maximalen Durchsatz des Gesamtsystems. (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidp_data_001",
"exam": "AP2_T1",
"lernfeld": "LF 9 DP",
"topic": "Datenqualität nach ISO 8000",
"scenario": "Für eine KI-gestützte Kundenanalyse sollen CRM-, ERP- und Webshop-Daten zusammengeführt werden.",
"question": "Nennen und erläutern Sie 4 wesentliche Dimensionen der Datenqualität nach ISO 8000 / DAMA DMBOK. Beschreiben Sie typische Methoden des Data Cleaning (Datenbereinigung).",
"points": 8,
"solution": "Dimensionen der Datenqualität:\n1. Vollständigkeit (Completeness): Alle benötigten Datenfelder und Datensätze sind vorhanden (keine unbegründeten NULL-Werte). (1,5 Pkt.)\n2. Korrektheit / Genauigkeit (Accuracy): Die Daten spiegeln die reale Welt fehlerfrei wider (z. B. korrekte Schreibweise von Namen und Adressen). (1,5 Pkt.)\n3. Konsistenz (Consistency): Keine widersprüchlichen Daten in verschiedenen Systemen oder Tabellen (z. B. identische Postleitzahl und Ort). (1,5 Pkt.)\n4. Aktualität (Timeliness): Die Daten repräsentieren den aktuellen Zustand und sind für den Verwendungszweck zeitnah verfügbar. (1,5 Pkt.)\n\nMethoden des Data Cleaning:\n- Deduplizierung: Erkennung und Zusammenführung doppelter Datensätze (Fuzzy Matching). (1 Pkt.)\n- Standardisierung / Normalisierung: Vereinheitlichung von Formaten (z. B. Telefonnummern im E.164-Format, Datumsformate nach ISO 8601). (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidp_etl_001",
"exam": "AP2_T1",
"lernfeld": "LF 10 DP",
"topic": "ETL vs ELT Datenpipelines & CDC",
"scenario": "Ein Unternehmen baut eine moderne Analytics-Plattform mit Cloud Data Warehouse auf.",
"question": "Vergleichen Sie das klassische ETL-Verfahren (Extract, Transform, Load) mit dem modernen ELT-Verfahren (Extract, Load, Transform). Erläutern Sie Change Data Capture (CDC) zur inkrementellen Datenübernahme.",
"points": 8,
"solution": "Vergleich ETL vs. ELT:\n- ETL (Extract, Transform, Load): Daten werden aus Quellsystemen extrahiert, auf einem separaten Transformations-Server bereinigt/aggregiert und erst danach in das Ziel-Data-Warehouse geladen. Vorteil: Nur bereinigte Daten erreichen das DWH, Schutz sensibler Daten vor Laden. Nachteil: Eigener ETL-Server als Flaschenhals. (3 Pkt.)\n- ELT (Extract, Load, Transform): Rohdaten werden direkt aus den Quellen in das Zielsystem (z. B. Cloud DWH wie Snowflake, BigQuery oder Data Lake) geladen; die Transformation erfolgt dort mit der massiv parallelen Rechenleistung des DWHs. Vorteil: Extrem skalierbar, Rohdaten bleiben für spätere neue Analysen erhalten. (3 Pkt.)\n\nChange Data Capture (CDC):\nVerfahren zur Identifikation und Weiterleitung ausschließlich geänderter Daten (Inserts, Updates, Deletes) aus Quell-Datenbanken (z. B. über das Datenbank-Transaktionslog). Verhindert ressourcenfressende tägliche Vollexporte. (2 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidp_dwh_001",
"exam": "AP2_T1",
"lernfeld": "LF 10 DP",
"topic": "Data Warehouse Star-Schema vs Snowflake-Schema",
"scenario": "Für das Management-Reporting einer Handelskette wird ein multidimensionales Datenmodell entworfen.",
"question": "Erklären Sie den Aufbau eines Star-Schemas (Faktentabelle und Dimensionstabellen). Grenzen Sie das Star-Schema vom Snowflake-Schema hinsichtlich Normalisierung und Abfrageperformance ab.",
"points": 8,
"solution": "Aufbau des Star-Schemas:\n- Faktentabelle: Zentrales Element. Enthält numerische, aggregierbare Messgrößen (Fakten, z. B. Umsatz, Menge, Rabatt) sowie Fremdschlüssel zu allen angebundenen Dimensionen. (2,5 Pkt.)\n- Dimensionstabellen: Umgeben die Faktentabelle wie Zacken eines Sterns. Enthalten beschreibende Attribute zur Filterung und Gruppierung (z. B. Zeit, Kunde, Filiale, Produkt). Sind im Star-Schema bewusst DENORMALISIERT. (2,5 Pkt.)\n\nAbgrenzung zum Snowflake-Schema:\n- Snowflake-Schema: Die Dimensionstabellen werden bis zur 3. Normalform normalisiert (z. B. Produkt -> Produktkategorie -> Hauptgruppe). Vorteil: Geringere Redundanz, Vermeidung von Update-Anomalien. (1,5 Pkt.)\n- Abfrageperformance: Star-Schema ist bei OLAP-Abfragen deutlich schneller, da weniger relationale JOINs für Berichte nötig sind. In modernen Data Warehouses wird das Star-Schema bevorzugt. (1,5 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidp_stat_001",
"exam": "AP2_T2",
"lernfeld": "LF 11 DP",
"topic": "Statistische Kennzahlen & Hypothesentests",
"scenario": "In einer A/B-Testing-Studie soll geprüft werden, ob ein neues Checkout-Design die Conversion Rate signifikant erhöht.",
"question": "Unterscheiden Sie Mittelwert, Median und Modus. Erläutern Sie Standardabweichung und Varianz. Was bedeuten Nullhypothese (H0), Alternativhypothese (H1) und der p-Wert bei einem Signifikanzniveau von alpha = 0,05?",
"points": 8,
"solution": "Lage- und Streumaße:\n- Mittelwert: Arithmetischer Durchschnitt. Anfällig für extreme Ausreißer. (1 Pkt.)\n- Median: Der Wert, der die sortierte Datenreihe genau in zwei Hälften teilt (50 %-Quantil). Robust gegen Ausreißer. (1 Pkt.)\n- Modus: Der am häufigsten vorkommende Wert in einer Datenmenge. (1 Pkt.)\n- Varianz: Mittlere quadrierte Abweichung aller Messwerte vom arithmetischen Mittelwert. Standardabweichung ist die Quadratwurzel der Varianz (selbe Einheit wie Ausgangsdaten). (2 Pkt.)\n\nHypothesentest:\n- Nullhypothese (H0): Annahme, dass KEIN Unterschied oder Effekt zwischen Variante A und B existiert. (1 Pkt.)\n- Alternativhypothese (H1): Die Forschungshypothese, dass ein signifikanter Unterschied besteht. (1 Pkt.)\n- p-Wert und Signifikanz: Wahrscheinlichkeit, die beobachteten Daten zu erhalten, wenn H0 wahr wäre. Ist p < 0,05, wird H0 verworfen: Das Ergebnis ist statistisch signifikant. (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidp_ml_001",
"exam": "AP2_T2",
"lernfeld": "LF 12 DP",
"topic": "Machine Learning Evaluation Confusion Matrix",
"scenario": "Ein Machine-Learning-Modell soll betrügerische Kreditkartentransaktionen (Fraud) automatisiert klassifizieren.",
"question": "Erläutern Sie die 4 Felder einer Confusion Matrix (TP, FP, TN, FN). Definieren Sie die Kennzahlen Precision (Genauigkeit), Recall (Trefferquote/Sensitivität) und F1-Score. Warum ist die reine Accuracy (Genauigkeit) bei unausgeglichenen Datensätzen irreführend?",
"points": 8,
"solution": "Confusion Matrix (Wahrheitsmatrix):\n- True Positive (TP): Betrug korrekt als Betrug erkannt. (1 Pkt.)\n- False Positive (FP): Legitime Buchung fälschlicherweise als Betrug markiert (Fehlalarm, Typ-I-Fehler). (1 Pkt.)\n- True Negative (TN): Legitime Buchung korrekt als legitim eingestuft. (1 Pkt.)\n- False Negative (FN): Betrug fälschlicherweise übersehen und als legitim deklariert (Typ-II-Fehler, hohes Schadensrisiko!). (1 Pkt.)\n\nMetriken:\n- Precision = TP / (TP + FP): Wie viele der als Betrug deklarierten Fälle waren wirklich Betrug? (1 Pkt.)\n- Recall = TP / (TP + FN): Wie viel Prozent aller tatsächlichen Betrugsfälle hat das Modell aufgespürt? (1 Pkt.)\n- F1-Score = 2 * (Precision * Recall) / (Precision + Recall): Harmonisches Mittel aus Precision und Recall. (1 Pkt.)\n\nAccuracy-Problem bei Unbalanced Data: Bei 99,9 % regulären Buchungen erreicht ein primitives Modell, das einfach immer \"Legitim\" rät, 99,9 % Accuracy, erkennt aber NULL Betrugsfälle! Daher ist Accuracy unbrauchbar. (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidv_cps_001",
"exam": "AP2_T1",
"lernfeld": "LF 9 DV",
"topic": "Cyber-physische Systeme & RAMI 4.0",
"scenario": "In einer Smart Factory werden Fertigungsanlagen mit dem Cloud-Leitsystem vernetzt.",
"question": "Definieren Sie ein Cyber-physisches System (CPS) und dessen Komponenten. Erläutern Sie das Referenzarchitekturmodell Industrie 4.0 (RAMI 4.0) mit seinen 3 Dimensionen (Schichten, Lebenszyklus/Wertstrom, Hierarchieebenen).",
"points": 8,
"solution": "Cyber-physisches System (CPS):\nVerbindung von mechanischen und elektronischen Komponenten (Hardware, Sensoren, Aktoren) mit softwarebasierten Steuerungen und Kommunikationsnetzen (Internet/Ethernet). CPS erfassen physikalische Daten, werten sie autonom aus und steuern physische Prozesse über Aktoren in Echtzeit. (3 Pkt.)\n\nRAMI 4.0 (Dreidimensionales Modell):\n1. Achse: Schichten (Layers / 6 Ebenen): Asset, Integration, Communication, Information, Functional, Business. Beschreibt IT- und Geschäftsaspekte. (2 Pkt.)\n2. Achse: Lebenszyklus & Wertstrom (Life Cycle & Value Stream nach IEC 62890): Entwicklung (Typ) bis Produktion/Nutzung (Instanz). (1,5 Pkt.)\n3. Achse: Hierarchieebenen (nach IEC 62264): Vom Produkt (Product), über Feldgerät (Field Device), Steuerung (Control Device), Station, Arbeitsplatz (Work Center), Unternehmen (Enterprise) bis zur vernetzten Welt (Connected World). (1,5 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidv_bus_001",
"exam": "AP2_T1",
"lernfeld": "LF 10 DV",
"topic": "Industrielle Feldbusse Profinet vs Modbus TCP",
"scenario": "Eine Industrieanlage soll mit Steuerungen (SPS) und Antrieben vernetzt werden.",
"question": "Vergleichen Sie Modbus TCP und Profinet hinsichtlich OSI-Schicht, Echtzeitfähigkeit (Jitter, Latenz) und Einsatzgebieten. Erklären Sie die 3 Conformance Classes (CC-A, CC-B, CC-C) bzw. RT und IRT von Profinet.",
"points": 8,
"solution": "Modbus TCP vs. Profinet:\n- Modbus TCP: Einfaches Master-Slave / Client-Server Protokoll auf OSI-Schicht 7 über Standard-TCP/IP (Port 502). Nicht echtzeitfähig, da TCP-Handshakes und Retransmissions unvorhersehbare Latenzen erzeugen. Sehr weit verbreitet für einfache Sensorabfragen. (2 Pkt.)\n- Profinet: Industrial Ethernet Standard (IEC 61158). Bietet deterministische Echtzeitkommunikation durch Umgehung des TCP/IP-Stacks bei Prozessdaten. (2 Pkt.)\n\nProfinet Echtzeitklassen:\n- Profinet Standard (TCP/IP): Für Konfiguration und Diagnose (Zykluszeit > 100 ms). (1 Pkt.)\n- Profinet RT (Real-Time): Prozessdaten umgehen TCP/IP und laufen direkt auf Layer 2 mit VLAN-Priorisierung (Zykluszeit 1-10 ms, softwarebasiert). (1,5 Pkt.)\n- Profinet IRT (Isochronous Real-Time): Taktsynchron mit Hardware-Unterstützung (spezielle ASIC-Switches). Zeitschlitzverfahren (TDMA) garantiert Latenzen < 1 ms und Jitter < 1 µs für hochpräzise Motion-Control-Antriebe. (1,5 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidv_iot_001",
"exam": "AP2_T1",
"lernfeld": "LF 10 DV",
"topic": "OPC UA Informationsmodell vs MQTT",
"scenario": "Maschinendaten einer heterogenen Produktionslinie sollen sowohl an das interne SCADA-System als auch an ein Cloud-Analytics-System übertragen werden.",
"question": "Vergleichen Sie OPC UA (Open Platform Communications Unified Architecture) mit dem MQTT-Protokoll bezüglich Kommunikationsmuster (Client/Server vs. Publish/Subscribe), Datenmodellierung, Overhead und typischem Einsatzzweck.",
"points": 8,
"solution": "Vergleich OPC UA vs. MQTT:\n- Kommunikationsmuster:\n • OPC UA: Primär Client/Server (Punkt-zu-Punkt Anfrage/Antwort), optional auch Pub/Sub. Bietet Methodenaufrufe (RPC) und Quittierungen. (1,5 Pkt.)\n • MQTT: Reines Publish/Subscribe über einen zentralen Message Broker. Entkoppelt Sender und Empfänger zeitlich und räumlich. (1,5 Pkt.)\n- Datenmodellierung & Semantik:\n • OPC UA: Extrem mächtiges, objektorientiertes Informationsmodell (Nodes, References, Datentypen, Einheiten). Die Maschine beschreibt sich selbst semantisch! (2 Pkt.)\n • MQTT: Vollkommen payload-agnostisch (reiner Byte-Stream im Body, z. B. JSON). Keine standardisierte Semantik. (1 Pkt.)\n- Overhead & Einsatzzweck:\n • OPC UA: Höherer Protokoll-Overhead, ideal für M2M-Kommunikation und vertikale Integration von der Maschine ins MES/ERP. (1 Pkt.)\n • MQTT: Extrem schlanker Header (ab 2 Byte), ideal für bandbreitenarme Funknetze (LoRaWAN, Mobilfunk) und Massen-Telemetriedaten in die Cloud. (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidv_sec_001",
"exam": "AP2_T2",
"lernfeld": "LF 11 DV",
"topic": "Industrial Security nach IEC 62443",
"scenario": "Das Automatisierungsnetzwerk einer Fabrik soll gegen Cyber-Angriffe und Sabotage gehärtet werden.",
"question": "Erläutern Sie das Zonen- und Conduit-Modell nach der Normenreihe IEC 62443. Was ist ein Conduit (Verbindungskanal)? Welche Sicherheitsanforderungen gelten an den Schnittstellen zwischen IT- und OT-Netzen?",
"points": 8,
"solution": "Zonen- und Conduit-Modell (IEC 62443):\n- Zonen (Zones): Gruppierung logischer oder physischer Assets mit denselben Sicherheitsanforderungen (Security Level SL 1 bis 4). Alle Systeme innerhalb einer Zone vertrauen einander weitgehend. (3 Pkt.)\n- Conduits (Verbindungskanäle): Kommunikationspfade zwischen unterschiedlichen Zonen. Ein Conduit bündelt alle Verbindungen und MUSS durch Sicherheitsmaßnahmen (z. B. Industrial Firewall, VPN, IDS) überwacht und reglementiert werden. Unkontrollierte Querkommunikation zwischen Zonen ist verboten. (3 Pkt.)\n\nIT/OT-Schnittstellen:\n- Strikt getrennte Demilitarisierte Zone (Industrial DMZ / IDMZ) nach dem Purdue-Modell (Level 3.5).\n- Kein direkter Datenverkehr zwischen Office-IT (Level 4/5) und Fertigungs-OT (Level 0-3). Kommunikation darf nur über Proxies, Bastion Hosts oder Jump-Server in der IDMZ erfolgen. (2 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidv_net_001",
"exam": "AP2_T2",
"lernfeld": "LF 12 DV",
"topic": "Redundanzprotokolle PRP und HSR in der OT",
"scenario": "In einem Energie-Umspannwerk darf bei einem Netzwerkausfall keine einzige Millisekunde Datenübertragung verloren gehen.",
"question": "Erläutern Sie die industriellen Redundanzprotokolle Parallel Redundancy Protocol (PRP) und High-availability Seamless Redundancy (HSR) nach IEC 62439-3. Warum reicht das klassische Spanning Tree Protocol (RSTP) in diesen Anwendungen nicht aus?",
"points": 8,
"solution": "Kritik an Spanning Tree (RSTP):\nRSTP benötigt nach einem Linkausfall mehrere hundert Millisekunden bis Sekunden zur Rekonvergenz. Für zeitkritische Schutzabschaltungen in Industrie und Energie (Schaltzeit < 4 ms) bedeutet dies einen unzulässigen Stillstand. (2 Pkt.)\n\nPRP (Parallel Redundancy Protocol):\n- Ein Endgerät (DANP - Dual Attached Node with PRP) ist gleichzeitig an ZWEI komplett voneinander getrennte Netzwerke (LAN A und LAN B) angeschlossen.\n- Datenframes werden dupliziert und zeitgleich über beide Netze versendet. Der Empfänger verarbeitet das zuerst eintreffende Paket und verwirft das Duplikat nahtlos (Umschaltzeit: EXAKT 0 ms!). Fällt ein Netz komplett aus, läuft der Betrieb ohne Unterbrechung weiter. (3 Pkt.)\n\nHSR (High-availability Seamless Redundancy):\n- Ring-Topologie ohne zentrale Switche. Jedes Gerät sendet das Paket zeitgleich in beide Ringrichtungen (im und gegen den Uhrzeigersinn). Der Empfänger entnimmt das erste Paket und verwirft das zweite (Umschaltzeit 0 ms). (3 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidp_proc_002",
"profession": "FIDP",
"exam_part": "AP2_PB2",
"topic": "BPMN 2.0: Ausnahmebehandlung & Intermediate Events",
"points": 10,
"scenario": "In einem Beschaffungsprozess soll ein Lieferant binnen 48 Stunden eine Auftragsbestätigung übermitteln. Trifft diese nicht rechtzeitig ein, muss ein Eskalationsprozess an den strategischen Einkauf ausgelöst werden.",
"question": "a) Benennen Sie das BPMN-Element, mit dem die 48-Stunden-Frist an der Aktivität 'Auftragsbestätigung abwarten' modelliert wird.\nb) Erläutern Sie den Unterschied zwischen einem unterbrechenden (interrupting) und einem nicht-unterbrechenden (non-interrupting) Boundary Event anhand dieses Szenarios.\nc) Welche Gateway-Art ist zu wählen, wenn nach Prüfung der Bestätigung entweder die Standard-Lieferung, eine Express-Lieferung oder bei Lieferengpass ein Alternativartikel parallel angefragt werden soll?",
"expected_solution": "a) Angeheftetes Zwischenereignis (Boundary Timer Event / Zeit-Grenzereignis).\nb) Unterbrechend: Bricht die Hauptaktivität sofort ab und leitet die Token ausschließlich in den Eskalationspfad (Auftragsbestätigung wird nicht mehr angenommen). Nicht-unterbrechend: Die Frist löst eine Warnung/Eskalation aus, die ursprüngliche Aktivität bleibt jedoch aktiv und kann noch abgeschlossen werden.\nc) Inklusives Gateway (OR / OR-Split), da eine oder mehrere Verzweigungen gleichzeitig aktiv werden können (z.B. Express-Lieferung UND parallele Alternativartikel-Anfrage)."
},
{
"id": "fidp_data_002",
"profession": "FIDP",
"exam_part": "AP2_PB1",
"topic": "Datenformate & Datenqualität: Parquet vs. JSON & ISO 25012",
"points": 10,
"scenario": "Ein Logistikunternehmen speichert täglich 80 Millionen Sensordaten aus Frachtcontainern. Derzeit liegen die Daten als unkomprimierte JSON-Dateien vor. Die analytischen Abfragen auf Zeitreihen dauern mehrere Stunden.",
"question": "a) Erläutern Sie das Speicherprinzip von Apache Parquet (spaltenorientiert) im Vergleich zu zeilenbasierten JSON-Dateien.\nb) Nennen Sie zwei konkrete Vorteile, die sich bei analytischen Aggregationsabfragen (z.B. Durchschnittstemperatur pro Monat) durch Parquet ergeben.\nc) Nennen und erläutern Sie zwei Merkmale der Datenqualität nach DIN ISO/IEC 25012, die bei Sensordaten vor der Persistierung geprüft werden müssen.",
"expected_solution": "a) JSON ist zeilenorientiert (Row-oriented); Parquet ist spaltenorientiert (Column-oriented), d.h. Werte derselben Spalte werden zusammenhängend auf der Festplatte gespeichert.\nb) 1. Column Pruning: Es müssen nur die Spalten von der Festplatte gelesen werden, die in der Abfrage benötigt werden (drastische Reduktion der I/O-Last). 2. Hohe Kompressionsrate: Da homogene Datentypen hintereinander liegen, greifen Algorithmen wie Snappy oder Dictionary Encoding extrem effizient.\nc) 1. Genauigkeit (Accuracy): Sensormesswerte dürfen keine Messfehler oder unphysikalischen Ausreißer aufweisen. 2. Vollständigkeit (Completeness): Es dürfen keine Zeitintervalle oder Funkabrisse unbemerkt fehlen."
},
{
"id": "fidp_etl_002",
"profession": "FIDP",
"exam_part": "AP2_PB1",
"topic": "ETL: Change Data Capture (CDC) & Idempotenz",
"points": 8,
"scenario": "Eine E-Commerce-Plattform synchronisiert Kundendaten aus einem operativen PostgreSQL-System in ein analytisches Snowflake Data Warehouse.",
"question": "a) Erläutern Sie das Funktionsprinzip von Change Data Capture (CDC) über das Write-Ahead-Log (WAL) im Vergleich zu zyklischen Vollabfragen via SELECT mit Timestamp.\nb) Definieren Sie den Begriff 'Idempotenz' im Kontext von Datenpipelines und begründen Sie, warum Idempotenz im Fehlerfall essenziell ist.",
"expected_solution": "a) CDC liest die Änderungen (INSERT, UPDATE, DELETE) direkt asynchron und latenzarm aus den Transaktionslogs (WAL) der Datenbank aus. Dadurch entsteht nahezu keine zusätzliche Last auf der operativen Datenbank und gelöschte Datensätze (Deletes) werden lückenlos erfasst, was bei Timestamp-SELECTs oft nicht möglich ist.\nb) Idempotenz bedeutet, dass eine Pipeline-Operation beliebig oft mit denselben Eingangsdaten ausgeführt werden kann, ohne das Endergebnis zu verändern. Im Fehlerfall oder bei Pipeline-Wiederholungen (Retries) verhindert dies doppelte Datensätze (Duplikate) und inkonsistente Aggregationen."
},
{
"id": "fidp_dwh_002",
"profession": "FIDP",
"exam_part": "AP2_PB1",
"topic": "Data Warehouse: Slowly Changing Dimensions (SCD Typ 1 vs. Typ 2)",
"points": 10,
"scenario": "In einem CRM-System ändert ein Großkunde seinen Firmensitz von München nach Frankfurt am Main. Im Data Warehouse sollen historische Umsatzzahlen weiterhin der Region München zugeordnet bleiben, zukünftige Umsätze jedoch Frankfurt.",
"question": "a) Begründen Sie, warum SCD Typ 1 für diese Anforderung ungeeignet ist.\nb) Beschreiben Sie den Aufbau und die Funktionsweise einer SCD Typ 2 Implementierung in der Kundendimension (nennen Sie drei typische Metadaten-Spalten).\nc) Was versteht man unter einem 'Surrogatschlüssel' (Surrogate Key) und warum ist er bei SCD Typ 2 zwingend erforderlich?",
"expected_solution": "a) SCD Typ 1 überschreibt den bestehenden Datensatz einfach. Dadurch geht die Historie verloren, und historische Umsätze würden fälschlicherweise nachträglich Frankfurt zugeordnet.\nb) Bei SCD Typ 2 wird für jede Änderung ein neuer Datensatz in der Dimensionstabelle angelegt. Die Historie wird über Metadatenspalten gesteuert: 1. `gueltig_von` (Valid From / Startdatum), 2. `gueltig_bis` (Valid To / Enddatum, z.B. 9999-12-31), 3. `is_current` (Flag 1/0 für den aktuell gültigen Datensatz).\nc) Ein Surrogatschlüssel ist ein künstlicher, datenbankinterner Primärschlüssel (z.B. fortlaufende Ganzzahl / Bigint). Da der fachliche Geschäftsschlüssel (Business Key, z.B. Kundennummer) bei SCD Typ 2 mehrfach in der Tabelle vorkommt, garantiert nur der Surrogatschlüssel die Eindeutigkeit jeder historischen Version."
},
{
"id": "fidp_stat_002",
"profession": "FIDP",
"exam_part": "AP2_PB1",
"topic": "Induktive Statistik: Hypothesentest, p-Wert & A/B-Testing",
"points": 8,
"scenario": "Ein Online-Shop testet einen neuen Checkout-Button in einem A/B-Test. Variante A (bestehend) erreicht eine Konversionsrate von 3,2 %, Variante B (neu) 3,8 %. Der berechnete p-Wert beträgt 0,023 bei einem festgelegten Signifikanzniveau alpha von 0,05.",
"question": "a) Formulieren Sie die Nullhypothese H0 und die Alternativhypothese H1 für diesen Test.\nb) Interpretieren Sie das Testergebnis: Wird die Nullhypothese verworfen? Begründen Sie Ihre Entscheidung anhand des p-Werts.\nc) Erläutern Sie den Unterschied zwischen einem Alpha-Fehler (Fehler 1. Art) und einem Beta-Fehler (Fehler 2. Art).",
"expected_solution": "a) H0: Die neue Button-Variante hat keinen signifikanten Einfluss auf die Konversionsrate (Variante B ist gleich oder schlechter als A). H1: Die neue Variante führt zu einer signifikant höheren Konversionsrate als Variante A.\nb) Da der p-Wert (0,023) kleiner ist als das Signifikanzniveau alpha (0,05), wird die Nullhypothese verworfen. Die Konversionssteigerung ist mit 95 % statistischer Sicherheit signifikant.\nc) Alpha-Fehler (Fehler 1. Art): H0 wird fälschlicherweise verworfen, obwohl kein echter Unterschied vorliegt (falsch-positiv). Beta-Fehler (Fehler 2. Art): H0 wird beibehalten, obwohl Variante B in Wahrheit überlegen ist (falsch-negativ)."
},
{
"id": "fidp_ml_002",
"profession": "FIDP",
"exam_part": "AP2_PB1",
"topic": "Machine Learning: Confusion Matrix & Kennzahlen (Precision, Recall)",
"points": 10,
"scenario": "Ein Machine-Learning-Modell soll betrügerische Kreditkartentransaktionen (Fraud) erkennen. Ein Testdatensatz von 1.000 Transaktionen liefert folgende Konfusionsmatrix: True Positive (TP) = 80, False Positive (FP) = 20, False Negative (FN) = 10, True Negative (TN) = 890.",
"question": "a) Berechnen Sie die Accuracy (Treffgenauigkeit) des Modells in Prozent.\nb) Berechnen Sie die Precision (Präzision) und den Recall (Sensitivität / Trefferquote).\nc) Begründen Sie, warum bei Betrugserkennung der Recall in der Regel wichtiger ist als die Precision.",
"expected_solution": "a) Accuracy = (TP + TN) / Gesamt = (80 + 890) / 1000 = 970 / 1000 = 97,0 %.\nb) Precision = TP / (TP + FP) = 80 / (80 + 20) = 80 / 100 = 80,0 %.\nRecall = TP / (TP + FN) = 80 / (80 + 10) = 80 / 90 = 88,89 %.\nc) Ein unentdeckter Betrugsfall (False Negative) verursacht direkten finanziellen Schaden und rechtliche Risiken. Ein Fehlalarm (False Positive) führt hingegen meist nur zu einer kurzen manuellen Nachprüfung oder SMS-Bestätigung. Daher muss FN minimiert und somit der Recall maximiert werden."
},
{
"id": "fidp_bi_001",
"profession": "FIDP",
"exam_part": "AP2_PB2",
"topic": "Business Intelligence: Visualisierung & Dashboard-Design",
"points": 8,
"scenario": "Die Geschäftsführung wünscht ein operatives Vertriebs-Dashboard. Ein Junior-Analyst hat hierfür 3D-Kreisdiagramme mit 15 Segmenten und auffälligen Ampelfarben (Rot/Grün) ohne Beschriftung erstellt.",
"question": "a) Kritisieren Sie den Entwurf des Analysten anhand von zwei ergonomischen Grundsätzen (z.B. Barrierefreiheit, Gestaltgesetze).\nb) Welcher Diagrammtyp eignet sich besser, um Umsatzanteile von 15 Produktkategorien darzustellen? Begründen Sie Ihre Wahl.\nc) Was versteht man unter dem Begriff 'Data-Ink-Ratio' nach Edward Tufte?",
"expected_solution": "a) 1. Kreisdiagramme mit 15 Segmenten überfordern das menschliche Auge (Winkel und Flächen können kognitiv schlecht verglichen werden; 3D-Effekte verzerren Proportionen zusätzlich). 2. Reine Rot/Grün-Farbkodierung schließt Menschen mit Rot-Grün-Sehschwäche aus (mangelnde Barrierefreiheit).\nb) Ein horizontales Balkendiagramm (Bar Chart), absteigend nach Umsatz sortiert. Kategorienamen sind horizontal lesbar, und Balkenlängen lassen sich vom menschlichen Gehirn präzise und mühelos vergleichen.\nc) Das Verhältnis von nützlicher Tinte (Data-Ink), die echte Dateninformationen übermittelt, zur gesamten Druck-/Pixelmenge. Ziel ist die Maximierung der Data-Ink-Ratio durch Entfernen redundanter Dekorationen (3D-Effekte, unnötige Gitterlinien, Zierrahmen)."
},
{
"id": "fidp_gov_001",
"profession": "FIDP",
"exam_part": "AP2_PB1",
"topic": "Data Governance & DSGVO: Anonymisierung vs. Pseudonymisierung",
"points": 8,
"scenario": "Ein Gesundheits-Startup möchte Patientendaten für statistische Forschungszwecke auswerten. Gemäß DSGVO Art. 9 handelt es sich um besondere Kategorien personenbezogener Daten.",
"question": "a) Erläutern Sie den technischen und rechtlichen Unterschied zwischen 'Pseudonymisierung' und 'Anonymisierung'.\nb) Nennen Sie zwei typische Techniken zur Anonymisierung von tabellarischen Datensätzen (z.B. k-Anonymität, Aggregation).\nc) Was versteht man unter 'Data Lineage' im Rahmen von Data Governance?",
"expected_solution": "a) Pseudonymisierung (Art. 4 Nr. 5 DSGVO): Personenidentifikatoren (Name, SV-Nummer) werden durch Pseudonyme/Hashes ersetzt. Eine Re-Identifizierung ist unter Zuhilfenahme zusätzlicher, separat gesicherter Schlüssel noch möglich. Die Daten bleiben personenbezogen.\nAnonymisierung: Daten werden so irreversibel verändert, dass die betroffene Person weder durch den Verantwortlichen noch durch Dritte identifiziert werden kann. Anonyme Daten fallen nicht mehr unter die DSGVO.\nb) 1. k-Anonymität / Verallgemeinerung (z.B. Alter in Altersgruppen 30-39 fassen, Postleitzahlen auf die ersten zwei Stellen kürzen). 2. Datenstörung / Perturbation / Rauschinjektion (Differential Privacy) oder Unterdrückung seltener Datensätze.\nc) Data Lineage beschreibt den lückenlosen Lebenszyklus und Fluss von Daten vom Ursprung (Datenquelle) über alle Transformationen und ETL-Stufen bis zum Zielsystem/Bericht. Sie stellt Nachvollziehbarkeit, Auditierbarkeit und Compliance sicher."
},
{
"id": "fidv_cps_002",
"profession": "FIDV",
"exam_part": "AP2_PB2",
"topic": "RAMI 4.0 & Verwaltungsschale (Asset Administration Shell)",
"points": 10,
"scenario": "In einer Smart Factory soll eine neue CNC-Fräsmaschine als Industrie 4.0 Komponente integriert werden. Die Architektur soll dem RAMI 4.0 Modell folgen.",
"question": "a) Nennen Sie die drei Achsen des RAMI 4.0 Referenzarchitekturmodells.\nb) Welche Funktion hat die Verwaltungsschale (Asset Administration Shell - AAS) für physische Maschinen?\nc) Auf welcher Hierarchy Level Ebene nach RAMI 4.0 ordnet sich die CNC-Fräse ein?",
"expected_solution": "a) 1. Architektur-Schichten (Layers: Asset, Integration, Communication, Information, Functional, Business).\n2. Lebenszyklus & Wertschöpfungskette (Life Cycle & Value Stream: Typ vs. Instanz, Entwicklung bis Wartung).\n3. Hierarchie-Ebenen (Hierarchy Levels: Product, Field Device, Control Device, Station, Work Center, Enterprise, Connected World).\nb) Die AAS bildet die standardisierte digitale Schnittstelle (den Digitalen Zwilling) des physischen Assets. Sie kapselt alle Daten, Dokumentationen, Fähigkeiten, Parameter und Kommunikationsschnittstellen der Maschine herstellerunabhängig.\nc) Station (oder Control Device / Field Device je nach Betrachtung der Einzelkomponenten; als Gesamtmaschine typischerweise 'Station' / 'Work Center')."
},
{
"id": "fidv_sens_001",
"profession": "FIDV",
"exam_part": "AP2_PB2",
"topic": "Sensorik: IO-Link vs. Analoge Schnittstellen & A/D-Wandlung",
"points": 10,
"scenario": "An einem Fließband erfassen Drucksensoren den Hydraulikdruck. Bislang wurden analoge 4-20 mA Stromschleifen eingesetzt. Nun wird auf IO-Link umgerüstet.",
"question": "a) Erläutern Sie einen wesentlichen Vorteil einer 4-20 mA Stromschnittstelle gegenüber einer 0-10 V Spannungsschnittstelle bei langen Leitungswegen.\nb) Warum wird bei analogen Sensoren ein Live-Zero (4 mA statt 0 mA) genutzt?\nc) Nennen Sie drei konkrete Vorteile, die der digitale Standard IO-Link (IEC 61131-9) gegenüber rein analogen 4-20 mA Sensoren bietet.",
"expected_solution": "a) Der Schleifenstrom von 4-20 mA ist unabhängig vom Leitungswiderstand (Spannungsabfall) der Zuleitung, wodurch Messfehler durch Leitungslängen vermieden werden. Zudem ist die Stromschleife unempfindlicher gegen elektromagnetische Einstreuungen.\nb) Drahtbruchsicherheit: Fließt ein Strom von 0 mA, liegt ein Leitungsabriss oder Sensorfehler vor. Werte zwischen 4 und 20 mA repräsentieren den echten Messbereich.\nc) 1. Digitale, störungsfreie Übertragung von Prozesswerten, Parametern und Diagnosedaten über dieselbe Standard-3-Leiter-Verkabelung. 2. Fernparametrierung und automatischer Sensortausch ohne manuelles Konfigurieren (Plug & Play via IODD-Datei). 3. Zusätzliche Diagnoseinformationen (z.B. Verschmutzung, Temperaturwarnung, Überlast)."
},
{
"id": "fidv_edge_001",
"profession": "FIDV",
"exam_part": "AP2_PB1",
"topic": "Edge Computing vs. Cloud & IoT-Gateways",
"points": 8,
"scenario": "Ein Walzwerk erfasst Vibrationsdaten mit einer Abtastrate von 20 kHz pro Lager, um Lagerschäden mittels FFT (Fast Fourier Transformation) im Millisekundenbereich vorherzusagen.",
"question": "a) Begründen Sie anhand von zwei technischen Faktoren (Latenz, Bandbreite), warum die Rohdatenverarbeitung auf einem Edge-Gateway direkt an der Maschine statt in einer zentralen Cloud erfolgen muss.\nb) Welche Aufgaben übernimmt das Edge-Gateway typischerweise, bevor selektive Daten an die Cloud weitergeleitet werden?\nc) Nennen Sie ein leichtgewichtiges Container-Betriebssystem oder eine K8s-Distribution, die speziell für Industrie-PCs (IPCs) an der Edge geeignet ist.",
"expected_solution": "a) 1. Bandbreite: 20 kHz Abtastrate bei mehreren Sensoren erzeugt gigabyteweise Daten pro Stunde; die dauerhafte Übertragung über WAN-Verbindungen würde das Unternehmensnetzwerk überlasten und erhebliche Cloud-Kosten verursachen. 2. Latenz & Echtzeit: Die Schadenserkennung und Notabschaltung muss binnen Millisekunden erfolgen; Cloud-Roundtrips unterliegen unvorhersehbarem Jitter und Latenzschwankungen.\nb) Filterung, Aggregation, Vorverarbeitung/Transformation (z.B. FFT-Schwingungsanalyse zur Merkmaltextraktion) und Protokollkonvertierung (z.B. Feldbus nach MQTT/OPC UA).\nc) K3s (Lightweight Kubernetes), MicroK8s, BalenaOS oder Ubuntu Core."
},
{
"id": "fidv_bus_002",
"profession": "FIDV",
"exam_part": "AP2_PB1",
"topic": "Industrielle Kommunikation: Profinet IO vs. TSN",
"points": 8,
"scenario": "In einer Fertigungslinie tauschen speicherprogrammierbare Steuerungen (SPS) und Servoantriebe zyklisch Prozessdaten aus. Gleichzeitig sollen Kamerabilder zur Qualitätsprüfung über dieselbe Netzwerkinfrastruktur übertragen werden.",
"question": "a) Erläutern Sie den Unterschied zwischen Profinet RT (Real-Time) und Profinet IRT (Isochronous Real-Time).\nb) Welches grundlegende Problem des Standard-Ethernet (CSMA/CD bzw. Best-Effort Switching) verhindert harte Echtzeitfähigkeit?\nc) Wie löst Time-Sensitive Networking (TSN, z.B. IEEE 802.1Qbv) die Koexistenz von zeitkritischem Steuerungsverkehr und bandbreitenintensivem IT-Videoverkehr auf derselben physikalischen Leitung?",
"expected_solution": "a) Profinet RT arbeitet softwarebasiert auf Layer 2 und umgeht den TCP/IP-Stack (Zykluszeiten typischerweise 1-10 ms). Profinet IRT nutzt spezielle Switch-Hardware für taktsynchronisierte Datenübertragung mit fest reservierten Zeitschlitzen im Mikrosekundenbereich (harte Echtzeit, Jitter < 1 µs).\nb) Standard-Ethernet nutzt Best-Effort Übertragung. Wenn mehrere Sender gleichzeitig Pakete über einen Switch-Port leiten, entstehen Puffer-Warteschlangen (Queuing Delay), Jitter und im schlimmsten Fall Paketverluste.\nc) TSN nutzt den Time-Aware Shaper (IEEE 802.1Qbv): Die Übertragungszeit auf der Leitung wird in sich wiederholende Zeitschlitze unterteilt. In definierten Zeitfenstern dürfen ausschließlich zeitkritische Pakete mit höchster Priorität die Leitung blockierungsfrei nutzen, während Standard-Datenverkehr temporär pausiert wird."
},
{
"id": "fidv_iot_002",
"profession": "FIDV",
"exam_part": "AP2_PB1",
"topic": "OPC UA: Sicherheitskonzept & Zertifikate",
"points": 8,
"scenario": "Ein MES-System (Manufacturing Execution System) soll Prozessdaten von mehreren OPC UA Servern aus der Fertigung auslesen.",
"question": "a) Welche drei Sicherheitsaspekte werden durch den OPC UA Security Layer standardmäßig abgedeckt (CIA-Triade)?\nb) Beschreiben Sie den Mechanismus des Trust-Managements beim Verbindungsaufbau zwischen einem OPC UA Client und einem OPC UA Server (Rolle von X.509-Zertifikaten).\nc) Was passiert, wenn auf dem OPC UA Server die Security Policy 'None' konfiguriert ist, und wie ist dies in Produktionsnetzen zu bewerten?",
"expected_solution": "a) 1. Vertraulichkeit (Verschlüsselung der Nutzdaten via AES), 2. Integrität (Signatur der Nachrichten via SHA/RSA), 3. Authentizität (Gegenseitige Identifikation von Client und Server via X.509 Zertifikate).\nb) Client und Server tauschen beim Verbindungsaufbau ihre öffentlichen X.509-Zertifikate aus. Die Verbindung kommt nur zustande, wenn das jeweilige Zertifikat in der 'Trusted'-Liste des Partners hinterlegt ist oder von einer vertrauenswürdigen CA signiert wurde (Reject / Trust Store).\nc) 'None' bedeutet unverschlüsselte und unsignierte Übertragung im Klartext ohne Authentifizierung. In industriellen Produktionsnetzen stellt dies ein enormes Sicherheitsrisiko dar (Man-in-the-Middle Angriffe, Sabotage von Steuerungswerten) und verstößt gegen gängige Standards wie IEC 62443."
},
{
"id": "fidv_wire_001",
"profession": "FIDV",
"exam_part": "AP2_PB2",
"topic": "Drahtlose Vernetzung: 5G Campusnetze vs. LoRaWAN",
"points": 8,
"scenario": "Ein Logistikzentrum plant die Vernetzung von autonom fahrenden Flurförderzeugen (AGVs) in der Halle und die Verfolgung von Containern auf einem 10 km² großen Außengelände.",
"question": "a) Begründen Sie, warum für die Steuerung der autonomen Fahrzeuge (AGVs) ein privates 5G-Campusnetz (URLLC) anstelle von LoRaWAN eingesetzt werden muss.\nb) Welcher Frequenzbereich steht Unternehmen in Deutschland für private 5G-Campusnetze durch die Bundesnetzagentur zur Verfügung?\nc) Warum ist LoRaWAN die optimale Wahl für die Batterieversorgten Tracker auf dem Außengelände? Nennen Sie zwei Gründe.",
"expected_solution": "a) AGVs erfordern kontinuierliche Steuerung mit extrem geringer Latenz (< 5 ms) und hoher Zuverlässigkeit (URLLC - Ultra-Reliable Low-Latency Communication). LoRaWAN hat extrem geringe Bandbreite, hohe Latenzen und Sendezeitbeschränkungen (Duty Cycle von meist 1 %).\nb) Frequenzbereich 3.700 MHz bis 3.800 MHz (3,7 - 3,8 GHz / Band n78).\nc) 1. Sehr hohe Funkreichweite (mehrere Kilometer im Freifeld durch Sub-GHz Chirp Spread Spectrum Modulation). 2. Extrem geringer Energieverbrauch, der Batterie-Laufzeiten von 5 bis 10 Jahren ohne Wartung ermöglicht."
},
{
"id": "fidv_sec_002",
"profession": "FIDV",
"exam_part": "AP2_PB1",
"topic": "Purdue-Modell & OT-Netzwerksegmentierung (IDMZ)",
"points": 10,
"scenario": "Nach einem Ransomware-Vorfall in der Office-IT soll das Produktionsnetzwerk (OT) isoliert und nach dem Purdue-Referenzmodell neu strukturiert werden.",
"question": "a) Ordnen Sie die folgenden Systeme den Purdue-Levels (Level 0, Level 1, Level 2, Level 3, Level 4) zu: SPS, ERP-System, Temperaturfühler, SCADA-Server, HMI-Touchpanel.\nb) Welche Funktion hat die Industrial Demilitarized Zone (IDMZ / Level 3.5)?\nc) Nennen Sie zwei Dienste, die typischerweise in der IDMZ platziert werden, und eine goldene Regel für den Datenverkehr durch die IDMZ.",
"expected_solution": "a) Level 0: Temperaturfühler (Prozess/Physik); Level 1: SPS (Basis-Steuerung); Level 2: HMI-Touchpanel (Bereichs-Bedienung); Level 3: SCADA-Server (Betriebsleitebene / MES); Level 4: ERP-System (Enterprise IT).\nb) Die IDMZ (Level 3.5) bildet einen Puffer- und Trennungsbereich zwischen der Office-IT (Level 4/5) und der Fertigungs-OT (Level 0-3). Sie verhindert jede direkte Netzwerkverbindung zwischen IT und OT.\nc) Dienste in IDMZ: Patch-Management / WSUS-Spiegel, Historian-Replikat, Jump-Host / Bastion Host für Fernwartung. Goldene Regel: Kein direkter Durchgangsverkehr erlaubt! Jede Verbindung endet in der IDMZ; Daten werden abgelegt und von der anderen Seite separat abgeholt."
},
{
"id": "fidv_res_001",
"profession": "FIDV",
"exam_part": "AP2_PB1",
"topic": "Netzwerkresilienz: PRP & HSR (IEC 62439-3) vs. RSTP",
"points": 8,
"scenario": "In einem Umspannwerk und einer petrochemischen Raffinerie dürfen bei einem Kabelbruch keine Datenpakete verloren gehen, da dies zum Abschalten der Notfallventile führen würde.",
"question": "a) Begründen Sie, warum herkömmliche Redundanzverfahren wie RSTP (Rapid Spanning Tree) für diese Anwendung unzureichend sind.\nb) Erläutern Sie das Funktionsprinzip des Parallel Redundancy Protocol (PRP nach IEC 62439-3).\nc) Was ist die theoretische Umschaltzeit (Reconfiguration Time) von PRP bei Ausfall eines Übertragungspfades?",
"expected_solution": "a) RSTP benötigt für die Rekonfiguration des Netzes nach einem Linkausfall typischerweise einige Hundert Millisekunden bis mehrere Sekunden. In dieser Zeit kommt es zu Paketverlusten, die Schutzabschaltungen auslösen können.\nb) Bei PRP sendet ein Endgerät (Dual Attached Node - DANP) jedes Datenpaket zeitgleich über zwei völlig getrennte, parallele Netzwerke (LAN A und LAN B). Der Empfänger verarbeitet das zuerst eintreffende Paket und verwirft das Duplikat anhand einer Sequenznummer (Redundancy Control Trailer).\nc) 0 ms (unterbrechungsfreie Umschaltung, Zero-Failover-Time), da das Duplikat auf dem redundanten Pfad kontinuierlich weiterläuft."
},
{
"id": "fidv_gov_001",
"profession": "FIDV",
"exam_part": "AP2_WiSo",
"topic": "Funktionale Sicherheit (Safety) vs. Security & CE-Kennzeichnung",
"points": 8,
"scenario": "Ein Sondermaschinenbauer vernetzt eine Roboterzelle mit der Firmen-IT, um Zustandsdaten zu analysieren.",
"question": "a) Erläutern Sie den fundamentalen Unterschied zwischen 'Safety' (Maschinensicherheit) und 'Security' (Informationssicherheit).\nb) Welche Rolle spielt der Performance Level (PL nach EN ISO 13849-1) bzw. das Safety Integrity Level (SIL nach IEC 61508) bei einer Not-Aus-Schaltung?\nc) Erklären Sie, warum das nachträgliche Vernetzen einer Bestandsmaschine zu einem Erlöschen der CE-Konformität führen kann (Wesentliche Veränderung).",
"expected_solution": "a) Safety schützt Menschen und die Umwelt vor Gefahren, die von der Maschine ausgehen (z.B. Verletzungen durch Roboterarm, Not-Aus). Security schützt die Maschine und Daten vor Gefahren, die von böswilligen Angreifern oder Schadsoftware ausgehen (z.B. Hacking, Manipulation).\nb) PL (a bis e) und SIL (1 bis 4) klassifizieren die Zuverlässigkeit und Ausfallwahrscheinlichkeit sicherheitsbezogener Steuerungsfunktionen. Ein Not-Aus erfordert typischerweise PL e / SIL 3 (höchste Sicherheitsstufe mit redundanter Auslegung).\nc) Werden durch die digitale Vernetzung neue Gefährdungen geschaffen (z.B. Manipulierbarkeit von Schutzmechanismen über das Netzwerk), liegt eine 'wesentliche Veränderung' nach dem Produktsicherheitsgesetz / Maschinenrichtlinie vor. Das bestehende CE-Zeichen wird ungültig, und der Betreiber wird rechtlich zum Hersteller mit Pflicht zur erneuten Risikobeurteilung und CE-Zertifizierung."
} }
]; ];

View file

@ -2050,5 +2050,403 @@
"solution": "Erteilung: Prokura kann nur durch den Inhaber/Geschäftsführer ausdrücklich und persönlich erteilt werden; Handlungsvollmacht kann formlos auch durch Prokuristen erteilt werden. (2 Pkt.)\nUmfang: Prokura ermächtigt zu ALLEN Arten von gerichtlichen und außergerichtlichen Geschäften und Rechtshandlungen, die der Betrieb IRGENDEINES Handelsgewerbes mit sich bringt (Ausnahme: Grundstücke verkaufen/belasten bedarf gesonderter Befugnis). Handlungsvollmacht ermächtigt nur zu Geschäften, die der Betrieb DIESES KONKRETEN Handelsgewerbes gewöhnlich mit sich bringt. (3 Pkt.)\nHandelsregister: Prokura MUSS zwingend ins Handelsregister eingetragen werden (deklaratorisch); Handlungsvollmacht wird NICHT eingetragen. (1,5 Pkt.)\nZeichnung: Prokurist zeichnet mit \"per procura\" / \"ppa. Vorname Nachname\"; Handlungsbevollmächtigter zeichnet mit \"in Vollmacht\" / \"i.V.\" oder \"in Auftrag\" / \"i.A.\". (1,5 Pkt.)", "solution": "Erteilung: Prokura kann nur durch den Inhaber/Geschäftsführer ausdrücklich und persönlich erteilt werden; Handlungsvollmacht kann formlos auch durch Prokuristen erteilt werden. (2 Pkt.)\nUmfang: Prokura ermächtigt zu ALLEN Arten von gerichtlichen und außergerichtlichen Geschäften und Rechtshandlungen, die der Betrieb IRGENDEINES Handelsgewerbes mit sich bringt (Ausnahme: Grundstücke verkaufen/belasten bedarf gesonderter Befugnis). Handlungsvollmacht ermächtigt nur zu Geschäften, die der Betrieb DIESES KONKRETEN Handelsgewerbes gewöhnlich mit sich bringt. (3 Pkt.)\nHandelsregister: Prokura MUSS zwingend ins Handelsregister eingetragen werden (deklaratorisch); Handlungsvollmacht wird NICHT eingetragen. (1,5 Pkt.)\nZeichnung: Prokurist zeichnet mit \"per procura\" / \"ppa. Vorname Nachname\"; Handlungsbevollmächtigter zeichnet mit \"in Vollmacht\" / \"i.V.\" oder \"in Auftrag\" / \"i.A.\". (1,5 Pkt.)",
"type": "text", "type": "text",
"options": [] "options": []
},
{
"id": "fiae_arch_001",
"exam": "AP2_T1",
"lernfeld": "LF 9 AE",
"topic": "Clean Architecture & Schichtenmodell",
"scenario": "Für ein E-Commerce-Portal soll eine wartbare und zukunftssichere Softwarearchitektur konzipiert werden.",
"question": "Erläutern Sie das Prinzip der Schichtenarchitektur (Drei-Schichten-Architektur: Präsentation, Geschäftslogik, Datenzugriff). Erklären Sie die Dependency Inversion Rule (Abhängigkeitsregel) in der Clean Architecture und warum Domänenlogik unabhängig von Datenbanken und Frameworks sein muss.",
"points": 8,
"solution": "Drei-Schichten-Architektur:\n1. Präsentationsschicht (Presentation Layer / UI): Verantwortlich für Interaktion mit Benutzer/Client (Views, REST-Controller). Nimmt Eingaben entgegen und stellt Ergebnisse dar. (2 Pkt.)\n2. Geschäftslogikschicht (Business Logic / Domain Layer): Beinhaltet Kernregeln, Berechnungen und Validierungen des Unternehmens. Unabhängig von UI und DB. (2 Pkt.)\n3. Datenzugriffsschicht (Data Access / Persistence Layer): Verwaltet Datenbankabfragen, ORM, Dateizugriffe und externe APIs. (2 Pkt.)\n\nClean Architecture & Dependency Inversion:\nDie Abhängigkeitsregel besagt, dass Quellcode-Abhängigkeiten immer nur nach innen auf die Domänenlogik zeigen dürfen. Äußere Schichten (DB, Web-Framework, UI) hängen von inneren Schichten (Entities, Use Cases) ab, niemals umgekehrt. Dies geschieht über Interfaces: Die Geschäftslogik definiert Schnittstellen (z. B. IUserRepository), die die äußere Datenschicht implementiert. Vorteil: Datenbanken, UI oder externe APIs können ohne Änderung der Geschäftsregeln ausgetauscht oder getestet werden. (2 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fiae_arch_002",
"exam": "AP2_T1",
"lernfeld": "LF 9 AE",
"topic": "Design Patterns Strategy vs Factory Method",
"scenario": "In einem Warenwirtschaftssystem sollen unterschiedliche Rabattberechnungen und Versandarten dynamisch zur Laufzeit angewendet werden.",
"question": "Beschreiben Sie das GoF-Entwurfsmuster \"Strategy (Strategie)\" anhand von Context, Strategy-Interface und Concrete Strategies. Grenzen Sie es kurz vom Factory Method Pattern ab.",
"points": 8,
"solution": "Strategy Pattern (Verhaltensmuster):\n- Zweck: Definiert eine Familie von Algorithmen, kapselt jeden einzelnen und macht sie zur Laufzeit austauschbar. (2 Pkt.)\n- Komponenten:\n 1. Strategy (Interface): Definiert die gemeinsame Methodensignatur für alle Algorithmen (z. B. calculateDiscount(Order order): double). (2 Pkt.)\n 2. Concrete Strategies: Konkrete Implementierungen des Algorithmus (z. B. VipCustomerDiscount, SeasonalDiscount, NoDiscount). (2 Pkt.)\n 3. Context (Kontext): Hält eine Referenz auf ein Strategy-Objekt und delegiert die Ausführung an dieses (z. B. OrderProcessor.setDiscountStrategy(...)). (1 Pkt.)\n- Abgrenzung zum Factory Method Pattern: Strategy ist ein Verhaltensmuster zur dynamischen Verhaltensänderung bestehender Objekte; Factory Method ist ein Erzeugungsmuster zur instanziierungsunabhängigen Erzeugung von Objekten über abgeleitete Klassen. (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fiae_arch_003",
"exam": "AP2_T1",
"lernfeld": "LF 9 AE",
"topic": "Design Patterns Observer & Singleton",
"scenario": "In einer Messaging-Applikation sollen mehrere Benutzeroberflächen-Komponenten sofort informiert werden, sobald eine neue Chatnachricht eintrifft.",
"question": "Erläutern Sie das Entwurfsmuster Observer (Beobachter) mit den Rollen Subject (Publisher) und Observer (Subscriber). Erklären Sie zudem das Singleton-Muster und warum es in modernen Softwaresystemen oft als Anti-Pattern angesehen wird.",
"points": 8,
"solution": "Observer Pattern (Publisher/Subscriber):\n- Subject (Publisher): Verwaltet eine Liste von Abonnenten (Observer). Bietet Methoden zum Anmelden (attach/subscribe), Abmelden (detach/unsubscribe) und Benachrichtigen (notifyObservers()). Bei Zustandsänderung durchläuft notifyObservers() die Liste und ruft update() auf. (3 Pkt.)\n- Observer (Subscriber): Definiert eine gemeinsame update()-Methode, die vom Subject aufgerufen wird, um über Änderungen informiert zu werden. Lose Kopplung zwischen Sender und Empfängern. (2 Pkt.)\n\nSingleton Pattern:\n- Zweck: Stellt sicher, dass von einer Klasse exakt eine einzige Instanz existiert, und bietet einen globalen Zugriffspunkt (privater Konstruktor, statische Instanzvariable, statische getInstance()-Methode). (1,5 Pkt.)\n- Kritik / Anti-Pattern: Erzeugt enge globale Kopplung, erschwert Unit-Testing und Mocking massiv, verstößt gegen das Single Responsibility Principle und kann in Multi-Threaded-Umgebungen Race Conditions verursachen. Moderner Ersatz: Dependency Injection. (1,5 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fiae_algo_001",
"exam": "AP2_T2",
"lernfeld": "LF 10 AE",
"topic": "Algorithmen-Komplexität O-Notation",
"scenario": "Für eine stark wachsende Plattform müssen Algorithmen auf ihre Skalierbarkeit und Laufzeitkomplexität hin analysiert werden.",
"question": "Erklären Sie die Landau-Symbole (O-Notation) zur Abschätzung der Zeitkomplexität. Ordnen Sie folgende Komplexitätsklassen von der effizientesten zur ineffizientesten Laufzeit: O(n log n), O(1), O(n²), O(log n), O(n). Nennen Sie je ein typisches Code- oder Algorithmenbeispiel für O(1), O(log n) und O(n).",
"points": 8,
"solution": "Bedeutung der O-Notation:\nBeschreibt das asymptotische Wachstumsverhalten des Ressourcenbedarfs (Laufzeit/Speicher) eines Algorithmus in Abhängigkeit von der Eingabegröße n im Worst-Case-Szenario. Konstante Faktoren werden vernachlässigt. (2 Pkt.)\n\nReihenfolge nach Effizienz (von schnell/effizient zu langsam/ineffizient):\n1. O(1) [konstant] < 2. O(log n) [logarithmisch] < 3. O(n) [linear] < 4. O(n log n) [linear-logarithmisch] < 5. O(n²) [quadratisch]. (3 Pkt.)\n\nBeispiele:\n- O(1): Direkter Array-Zugriff per Index (z. B. array[5]) oder Abfrage per Schlüssel in einer Hash-Map. (1 Pkt.)\n- O(log n): Binäre Suche in einem sortierten Array (Halbierungsprinzip). (1 Pkt.)\n- O(n): Lineare Suche in einer unsortierten Liste oder eine einfache for-Schleife über n Elemente. (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fiae_algo_002",
"exam": "AP2_T2",
"lernfeld": "LF 10 AE",
"topic": "Sortieralgorithmen Quicksort vs Mergesort",
"scenario": "Ein Datenstrom von Millionen Datensätzen soll effizient sortiert werden.",
"question": "Vergleichen Sie Quicksort und Mergesort nach dem Divide-and-Conquer-Prinzip hinsichtlich Best-Case-, Average-Case- und Worst-Case-Laufzeit, Speicherplatzkomplexität und Stabilität.",
"points": 8,
"solution": "Gemeinsamkeit: Beide nutzen Divide-and-Conquer (Teile-und-Herrsche). (1 Pkt.)\n\nQuicksort:\n- Laufzeit: Best-Case O(n log n), Average-Case O(n log n), Worst-Case O(n²) (wenn Pivot-Element extrem ungünstig gewählt, z. B. bereits sortierte Liste). (2 Pkt.)\n- Speicherkomplexität: O(log n) durch Rekursions-Stack (In-Place-Verfahren, benötigt kein Zusatzarray). (1,5 Pkt.)\n- Stabilität: In der Regel instabil (gleiche Elemente können ihre relative Reihenfolge ändern). (0,5 Pkt.)\n\nMergesort:\n- Laufzeit: Garantiert O(n log n) in Best-, Average- und Worst-Case! (2 Pkt.)\n- Speicherkomplexität: O(n), da Hilfsarrays beim Verschmelzen (Merge) benötigt werden. (0,5 Pkt.)\n- Stabilität: Stabil (relative Reihenfolge gleicher Elemente bleibt erhalten). (0,5 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fiae_oop_001",
"exam": "AP2_T2",
"lernfeld": "LF 10 AE",
"topic": "SOLID-Prinzipien der OOP",
"scenario": "Ein Software-Projekt leidet unter Spaghetti-Code und mangelnder Erweiterbarkeit.",
"question": "Benennen und erläutern Sie die 5 SOLID-Prinzipien der objektorientierten Programmierung. Gehen Sie vertieft auf das Single Responsibility Principle (SRP) und das Dependency Inversion Principle (DIP) ein.",
"points": 8,
"solution": "Die 5 SOLID-Prinzipien:\n1. S - Single Responsibility Principle (SRP): Eine Klasse sollte genau eine einzige Verantwortung (einen einzigen Grund zur Änderung) haben. Beispiel: Eine Klasse User sollte Daten halten, aber nicht selbst E-Mails versenden oder sich in der Datenbank speichern. (2 Pkt.)\n2. O - Open/Closed Principle (OCP): Software-Einheiten sollten offen für Erweiterung, aber geschlossen für Modifikation sein (z. B. durch Vererbung und Interfaces statt if/else-Ketten). (1,5 Pkt.)\n3. L - Liskov Substitution Principle (LSP): Subklassen müssen anstelle ihrer Basisklassen eingesetzt werden können, ohne dass das Programm fehlerhaft reagiert. (1,5 Pkt.)\n4. I - Interface Segregation Principle (ISP): Viele spezialisierte, schlanke Interfaces sind besser als ein riesiges Allzweck-Interface (keine erzwungene Implementierung ungenutzter Methoden). (1,5 Pkt.)\n5. D - Dependency Inversion Principle (DIP): High-Level-Module dürfen nicht von Low-Level-Modulen abhängen; beide müssen von Abstraktionen (Interfaces) abhängen. Abstraktionen dürfen nicht von Details abhängen. (1,5 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fiae_api_001",
"exam": "AP2_T2",
"lernfeld": "LF 11 AE",
"topic": "RESTful API Design & HTTP-Statuscodes",
"scenario": "Für eine Smartphone-App wird ein Backend mit REST-Schnittstellen entworfen.",
"question": "Definieren Sie die 4 zentralen HTTP-Verben (GET, POST, PUT, DELETE) und deren Idempotenz. Nennen und erläutern Sie je zwei typische HTTP-Statuscodes der Kategorien 2xx, 4xx und 5xx.",
"points": 8,
"solution": "HTTP-Verben & Idempotenz (Mehrfache Ausführung führt zum selben Serverzustand):\n- GET: Ruft Ressourcen ab. Sicher & Idempotent. (1 Pkt.)\n- POST: Erzeugt eine neue Ressource unter einer Collection. Nicht idempotent (mehrfache Aufrufe erzeugen mehrere Datensätze). (1 Pkt.)\n- PUT: Ersetzt eine bestehende Ressource vollständig. Idempotent. (1 Pkt.)\n- DELETE: Löscht eine Ressource. Idempotent. (1 Pkt.)\n\nHTTP-Statuscodes:\n- 2xx (Erfolg): 200 OK (Standard-Erfolg), 201 Created (Ressource neu angelegt), 204 No Content (Erfolg ohne Rückgabedaten). (1,5 Pkt.)\n- 4xx (Client-Fehler): 400 Bad Request (Fehlerhafte Syntax/Validierung), 401 Unauthorized (Nicht authentifiziert), 403 Forbidden (Rechte fehlen), 404 Not Found (Ressource existiert nicht). (1,5 Pkt.)\n- 5xx (Server-Fehler): 500 Internal Server Error (Unbehandelter Serverfehler), 502 Bad Gateway, 503 Service Unavailable (Überlastung/Wartung). (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fiae_test_001",
"exam": "AP2_T2",
"lernfeld": "LF 12 AE",
"topic": "Test-Driven Development TDD & Testpyramide",
"scenario": "In einem agilen Scrum-Team soll die Softwarequalität durch automatisierte Tests gesichert werden.",
"question": "Beschreiben Sie den TDD-Zyklus (Red-Green-Refactor). Erläutern Sie die Testpyramide (Unit-Tests, Integrationstests, End-to-End-Tests) und warum Unit-Tests das Fundament bilden.",
"points": 8,
"solution": "TDD-Zyklus (Red-Green-Refactor):\n1. Red: Einen neuen automatisierten Unit-Test für ein Feature schreiben, bevor Produktionscode existiert. Der Test muss zwingend fehlschlagen (rot). (1,5 Pkt.)\n2. Green: Minimalen Produktionscode schreiben, der gerade ausreicht, um den Test erfolgreich zu bestehen (grün). (1,5 Pkt.)\n3. Refactor: Den Code bereinigen (Duplikate entfernen, Lesbarkeit verbessern, Patterns anwenden), während sichergestellt wird, dass alle Tests weiterhin grün bleiben. (1,5 Pkt.)\n\nTestpyramide:\n- Basis: Unit-Tests (Komponententests). Testen einzelne Klassen/Methoden isoliert mit Mocks. Schnellste Ausführung (ms), geringste Kosten, höchste Testabdeckung (ca. 70-80 %). (2 Pkt.)\n- Mitte: Integrationstests. Testen das Zusammenspiel mehrerer Module (z. B. Service mit DB oder API). Längere Laufzeit, mittlere Anzahl. (1 Pkt.)\n- Spitze: End-to-End (E2E) / UI-Tests. Testen das Gesamtsystem aus Nutzersicht über Browser/Client. Langsam, fehleranfällig (brittle), teuer im Unterhalt, geringste Anzahl. (0,5 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidp_proc_001",
"exam": "AP2_T1",
"lernfeld": "LF 9 DP",
"topic": "Prozessanalyse Durchlauf- und Liegezeiten",
"scenario": "In einem Logistikunternehmen soll die Auftragsabwicklung von Bestelleingang bis Warenausgang analysiert und optimiert werden.",
"question": "Definieren Sie Durchlaufzeit, Bearbeitungszeit, Liegezeit und Rüstzeit. Erläutern Sie die Prozess-Zykluseffizienz (Process Cycle Efficiency PCE) und wie Flaschenhälse (Bottlenecks) identifiziert werden.",
"points": 8,
"solution": "Zeitdefinitionen im Prozess:\n- Durchlaufzeit (DLZ): Die gesamte Zeitspanne vom Start des Prozesses (Bestelleingang) bis zur Fertigstellung (Auslieferung). (2 Pkt.)\n- Bearbeitungszeit: Die Zeit, in der tatsächlich wertschöpfend am Auftrag gearbeitet wird. (1,5 Pkt.)\n- Liegezeit / Wartezeit: Unproduktive Zeit, in der ein Auftrag auf Bearbeitung, Transport oder Freigabe wartet (macht oft 80-95 % der DLZ aus!). (1,5 Pkt.)\n- Rüstzeit: Zeit zur Vorbereitung von Maschinen/Systemen auf den nächsten Auftrag. (1 Pkt.)\n\nProzess-Zykluseffizienz (PCE):\nPCE = (Wertschöpfende Bearbeitungszeit / Gesamte Durchlaufzeit) * 100 %. Zeigt den Grad der Prozessverschwendung. (1 Pkt.)\nFlaschenhals-Identifikation (Bottleneck): Der Prozessschritt mit der geringsten Kapazität bzw. der längsten Bearbeitungszeit je Einheit, vor dem sich Auftragsstaus bilden. Bestimmt den maximalen Durchsatz des Gesamtsystems. (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidp_data_001",
"exam": "AP2_T1",
"lernfeld": "LF 9 DP",
"topic": "Datenqualität nach ISO 8000",
"scenario": "Für eine KI-gestützte Kundenanalyse sollen CRM-, ERP- und Webshop-Daten zusammengeführt werden.",
"question": "Nennen und erläutern Sie 4 wesentliche Dimensionen der Datenqualität nach ISO 8000 / DAMA DMBOK. Beschreiben Sie typische Methoden des Data Cleaning (Datenbereinigung).",
"points": 8,
"solution": "Dimensionen der Datenqualität:\n1. Vollständigkeit (Completeness): Alle benötigten Datenfelder und Datensätze sind vorhanden (keine unbegründeten NULL-Werte). (1,5 Pkt.)\n2. Korrektheit / Genauigkeit (Accuracy): Die Daten spiegeln die reale Welt fehlerfrei wider (z. B. korrekte Schreibweise von Namen und Adressen). (1,5 Pkt.)\n3. Konsistenz (Consistency): Keine widersprüchlichen Daten in verschiedenen Systemen oder Tabellen (z. B. identische Postleitzahl und Ort). (1,5 Pkt.)\n4. Aktualität (Timeliness): Die Daten repräsentieren den aktuellen Zustand und sind für den Verwendungszweck zeitnah verfügbar. (1,5 Pkt.)\n\nMethoden des Data Cleaning:\n- Deduplizierung: Erkennung und Zusammenführung doppelter Datensätze (Fuzzy Matching). (1 Pkt.)\n- Standardisierung / Normalisierung: Vereinheitlichung von Formaten (z. B. Telefonnummern im E.164-Format, Datumsformate nach ISO 8601). (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidp_etl_001",
"exam": "AP2_T1",
"lernfeld": "LF 10 DP",
"topic": "ETL vs ELT Datenpipelines & CDC",
"scenario": "Ein Unternehmen baut eine moderne Analytics-Plattform mit Cloud Data Warehouse auf.",
"question": "Vergleichen Sie das klassische ETL-Verfahren (Extract, Transform, Load) mit dem modernen ELT-Verfahren (Extract, Load, Transform). Erläutern Sie Change Data Capture (CDC) zur inkrementellen Datenübernahme.",
"points": 8,
"solution": "Vergleich ETL vs. ELT:\n- ETL (Extract, Transform, Load): Daten werden aus Quellsystemen extrahiert, auf einem separaten Transformations-Server bereinigt/aggregiert und erst danach in das Ziel-Data-Warehouse geladen. Vorteil: Nur bereinigte Daten erreichen das DWH, Schutz sensibler Daten vor Laden. Nachteil: Eigener ETL-Server als Flaschenhals. (3 Pkt.)\n- ELT (Extract, Load, Transform): Rohdaten werden direkt aus den Quellen in das Zielsystem (z. B. Cloud DWH wie Snowflake, BigQuery oder Data Lake) geladen; die Transformation erfolgt dort mit der massiv parallelen Rechenleistung des DWHs. Vorteil: Extrem skalierbar, Rohdaten bleiben für spätere neue Analysen erhalten. (3 Pkt.)\n\nChange Data Capture (CDC):\nVerfahren zur Identifikation und Weiterleitung ausschließlich geänderter Daten (Inserts, Updates, Deletes) aus Quell-Datenbanken (z. B. über das Datenbank-Transaktionslog). Verhindert ressourcenfressende tägliche Vollexporte. (2 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidp_dwh_001",
"exam": "AP2_T1",
"lernfeld": "LF 10 DP",
"topic": "Data Warehouse Star-Schema vs Snowflake-Schema",
"scenario": "Für das Management-Reporting einer Handelskette wird ein multidimensionales Datenmodell entworfen.",
"question": "Erklären Sie den Aufbau eines Star-Schemas (Faktentabelle und Dimensionstabellen). Grenzen Sie das Star-Schema vom Snowflake-Schema hinsichtlich Normalisierung und Abfrageperformance ab.",
"points": 8,
"solution": "Aufbau des Star-Schemas:\n- Faktentabelle: Zentrales Element. Enthält numerische, aggregierbare Messgrößen (Fakten, z. B. Umsatz, Menge, Rabatt) sowie Fremdschlüssel zu allen angebundenen Dimensionen. (2,5 Pkt.)\n- Dimensionstabellen: Umgeben die Faktentabelle wie Zacken eines Sterns. Enthalten beschreibende Attribute zur Filterung und Gruppierung (z. B. Zeit, Kunde, Filiale, Produkt). Sind im Star-Schema bewusst DENORMALISIERT. (2,5 Pkt.)\n\nAbgrenzung zum Snowflake-Schema:\n- Snowflake-Schema: Die Dimensionstabellen werden bis zur 3. Normalform normalisiert (z. B. Produkt -> Produktkategorie -> Hauptgruppe). Vorteil: Geringere Redundanz, Vermeidung von Update-Anomalien. (1,5 Pkt.)\n- Abfrageperformance: Star-Schema ist bei OLAP-Abfragen deutlich schneller, da weniger relationale JOINs für Berichte nötig sind. In modernen Data Warehouses wird das Star-Schema bevorzugt. (1,5 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidp_stat_001",
"exam": "AP2_T2",
"lernfeld": "LF 11 DP",
"topic": "Statistische Kennzahlen & Hypothesentests",
"scenario": "In einer A/B-Testing-Studie soll geprüft werden, ob ein neues Checkout-Design die Conversion Rate signifikant erhöht.",
"question": "Unterscheiden Sie Mittelwert, Median und Modus. Erläutern Sie Standardabweichung und Varianz. Was bedeuten Nullhypothese (H0), Alternativhypothese (H1) und der p-Wert bei einem Signifikanzniveau von alpha = 0,05?",
"points": 8,
"solution": "Lage- und Streumaße:\n- Mittelwert: Arithmetischer Durchschnitt. Anfällig für extreme Ausreißer. (1 Pkt.)\n- Median: Der Wert, der die sortierte Datenreihe genau in zwei Hälften teilt (50 %-Quantil). Robust gegen Ausreißer. (1 Pkt.)\n- Modus: Der am häufigsten vorkommende Wert in einer Datenmenge. (1 Pkt.)\n- Varianz: Mittlere quadrierte Abweichung aller Messwerte vom arithmetischen Mittelwert. Standardabweichung ist die Quadratwurzel der Varianz (selbe Einheit wie Ausgangsdaten). (2 Pkt.)\n\nHypothesentest:\n- Nullhypothese (H0): Annahme, dass KEIN Unterschied oder Effekt zwischen Variante A und B existiert. (1 Pkt.)\n- Alternativhypothese (H1): Die Forschungshypothese, dass ein signifikanter Unterschied besteht. (1 Pkt.)\n- p-Wert und Signifikanz: Wahrscheinlichkeit, die beobachteten Daten zu erhalten, wenn H0 wahr wäre. Ist p < 0,05, wird H0 verworfen: Das Ergebnis ist statistisch signifikant. (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidp_ml_001",
"exam": "AP2_T2",
"lernfeld": "LF 12 DP",
"topic": "Machine Learning Evaluation Confusion Matrix",
"scenario": "Ein Machine-Learning-Modell soll betrügerische Kreditkartentransaktionen (Fraud) automatisiert klassifizieren.",
"question": "Erläutern Sie die 4 Felder einer Confusion Matrix (TP, FP, TN, FN). Definieren Sie die Kennzahlen Precision (Genauigkeit), Recall (Trefferquote/Sensitivität) und F1-Score. Warum ist die reine Accuracy (Genauigkeit) bei unausgeglichenen Datensätzen irreführend?",
"points": 8,
"solution": "Confusion Matrix (Wahrheitsmatrix):\n- True Positive (TP): Betrug korrekt als Betrug erkannt. (1 Pkt.)\n- False Positive (FP): Legitime Buchung fälschlicherweise als Betrug markiert (Fehlalarm, Typ-I-Fehler). (1 Pkt.)\n- True Negative (TN): Legitime Buchung korrekt als legitim eingestuft. (1 Pkt.)\n- False Negative (FN): Betrug fälschlicherweise übersehen und als legitim deklariert (Typ-II-Fehler, hohes Schadensrisiko!). (1 Pkt.)\n\nMetriken:\n- Precision = TP / (TP + FP): Wie viele der als Betrug deklarierten Fälle waren wirklich Betrug? (1 Pkt.)\n- Recall = TP / (TP + FN): Wie viel Prozent aller tatsächlichen Betrugsfälle hat das Modell aufgespürt? (1 Pkt.)\n- F1-Score = 2 * (Precision * Recall) / (Precision + Recall): Harmonisches Mittel aus Precision und Recall. (1 Pkt.)\n\nAccuracy-Problem bei Unbalanced Data: Bei 99,9 % regulären Buchungen erreicht ein primitives Modell, das einfach immer \"Legitim\" rät, 99,9 % Accuracy, erkennt aber NULL Betrugsfälle! Daher ist Accuracy unbrauchbar. (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidv_cps_001",
"exam": "AP2_T1",
"lernfeld": "LF 9 DV",
"topic": "Cyber-physische Systeme & RAMI 4.0",
"scenario": "In einer Smart Factory werden Fertigungsanlagen mit dem Cloud-Leitsystem vernetzt.",
"question": "Definieren Sie ein Cyber-physisches System (CPS) und dessen Komponenten. Erläutern Sie das Referenzarchitekturmodell Industrie 4.0 (RAMI 4.0) mit seinen 3 Dimensionen (Schichten, Lebenszyklus/Wertstrom, Hierarchieebenen).",
"points": 8,
"solution": "Cyber-physisches System (CPS):\nVerbindung von mechanischen und elektronischen Komponenten (Hardware, Sensoren, Aktoren) mit softwarebasierten Steuerungen und Kommunikationsnetzen (Internet/Ethernet). CPS erfassen physikalische Daten, werten sie autonom aus und steuern physische Prozesse über Aktoren in Echtzeit. (3 Pkt.)\n\nRAMI 4.0 (Dreidimensionales Modell):\n1. Achse: Schichten (Layers / 6 Ebenen): Asset, Integration, Communication, Information, Functional, Business. Beschreibt IT- und Geschäftsaspekte. (2 Pkt.)\n2. Achse: Lebenszyklus & Wertstrom (Life Cycle & Value Stream nach IEC 62890): Entwicklung (Typ) bis Produktion/Nutzung (Instanz). (1,5 Pkt.)\n3. Achse: Hierarchieebenen (nach IEC 62264): Vom Produkt (Product), über Feldgerät (Field Device), Steuerung (Control Device), Station, Arbeitsplatz (Work Center), Unternehmen (Enterprise) bis zur vernetzten Welt (Connected World). (1,5 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidv_bus_001",
"exam": "AP2_T1",
"lernfeld": "LF 10 DV",
"topic": "Industrielle Feldbusse Profinet vs Modbus TCP",
"scenario": "Eine Industrieanlage soll mit Steuerungen (SPS) und Antrieben vernetzt werden.",
"question": "Vergleichen Sie Modbus TCP und Profinet hinsichtlich OSI-Schicht, Echtzeitfähigkeit (Jitter, Latenz) und Einsatzgebieten. Erklären Sie die 3 Conformance Classes (CC-A, CC-B, CC-C) bzw. RT und IRT von Profinet.",
"points": 8,
"solution": "Modbus TCP vs. Profinet:\n- Modbus TCP: Einfaches Master-Slave / Client-Server Protokoll auf OSI-Schicht 7 über Standard-TCP/IP (Port 502). Nicht echtzeitfähig, da TCP-Handshakes und Retransmissions unvorhersehbare Latenzen erzeugen. Sehr weit verbreitet für einfache Sensorabfragen. (2 Pkt.)\n- Profinet: Industrial Ethernet Standard (IEC 61158). Bietet deterministische Echtzeitkommunikation durch Umgehung des TCP/IP-Stacks bei Prozessdaten. (2 Pkt.)\n\nProfinet Echtzeitklassen:\n- Profinet Standard (TCP/IP): Für Konfiguration und Diagnose (Zykluszeit > 100 ms). (1 Pkt.)\n- Profinet RT (Real-Time): Prozessdaten umgehen TCP/IP und laufen direkt auf Layer 2 mit VLAN-Priorisierung (Zykluszeit 1-10 ms, softwarebasiert). (1,5 Pkt.)\n- Profinet IRT (Isochronous Real-Time): Taktsynchron mit Hardware-Unterstützung (spezielle ASIC-Switches). Zeitschlitzverfahren (TDMA) garantiert Latenzen < 1 ms und Jitter < 1 µs für hochpräzise Motion-Control-Antriebe. (1,5 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidv_iot_001",
"exam": "AP2_T1",
"lernfeld": "LF 10 DV",
"topic": "OPC UA Informationsmodell vs MQTT",
"scenario": "Maschinendaten einer heterogenen Produktionslinie sollen sowohl an das interne SCADA-System als auch an ein Cloud-Analytics-System übertragen werden.",
"question": "Vergleichen Sie OPC UA (Open Platform Communications Unified Architecture) mit dem MQTT-Protokoll bezüglich Kommunikationsmuster (Client/Server vs. Publish/Subscribe), Datenmodellierung, Overhead und typischem Einsatzzweck.",
"points": 8,
"solution": "Vergleich OPC UA vs. MQTT:\n- Kommunikationsmuster:\n • OPC UA: Primär Client/Server (Punkt-zu-Punkt Anfrage/Antwort), optional auch Pub/Sub. Bietet Methodenaufrufe (RPC) und Quittierungen. (1,5 Pkt.)\n • MQTT: Reines Publish/Subscribe über einen zentralen Message Broker. Entkoppelt Sender und Empfänger zeitlich und räumlich. (1,5 Pkt.)\n- Datenmodellierung & Semantik:\n • OPC UA: Extrem mächtiges, objektorientiertes Informationsmodell (Nodes, References, Datentypen, Einheiten). Die Maschine beschreibt sich selbst semantisch! (2 Pkt.)\n • MQTT: Vollkommen payload-agnostisch (reiner Byte-Stream im Body, z. B. JSON). Keine standardisierte Semantik. (1 Pkt.)\n- Overhead & Einsatzzweck:\n • OPC UA: Höherer Protokoll-Overhead, ideal für M2M-Kommunikation und vertikale Integration von der Maschine ins MES/ERP. (1 Pkt.)\n • MQTT: Extrem schlanker Header (ab 2 Byte), ideal für bandbreitenarme Funknetze (LoRaWAN, Mobilfunk) und Massen-Telemetriedaten in die Cloud. (1 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidv_sec_001",
"exam": "AP2_T2",
"lernfeld": "LF 11 DV",
"topic": "Industrial Security nach IEC 62443",
"scenario": "Das Automatisierungsnetzwerk einer Fabrik soll gegen Cyber-Angriffe und Sabotage gehärtet werden.",
"question": "Erläutern Sie das Zonen- und Conduit-Modell nach der Normenreihe IEC 62443. Was ist ein Conduit (Verbindungskanal)? Welche Sicherheitsanforderungen gelten an den Schnittstellen zwischen IT- und OT-Netzen?",
"points": 8,
"solution": "Zonen- und Conduit-Modell (IEC 62443):\n- Zonen (Zones): Gruppierung logischer oder physischer Assets mit denselben Sicherheitsanforderungen (Security Level SL 1 bis 4). Alle Systeme innerhalb einer Zone vertrauen einander weitgehend. (3 Pkt.)\n- Conduits (Verbindungskanäle): Kommunikationspfade zwischen unterschiedlichen Zonen. Ein Conduit bündelt alle Verbindungen und MUSS durch Sicherheitsmaßnahmen (z. B. Industrial Firewall, VPN, IDS) überwacht und reglementiert werden. Unkontrollierte Querkommunikation zwischen Zonen ist verboten. (3 Pkt.)\n\nIT/OT-Schnittstellen:\n- Strikt getrennte Demilitarisierte Zone (Industrial DMZ / IDMZ) nach dem Purdue-Modell (Level 3.5).\n- Kein direkter Datenverkehr zwischen Office-IT (Level 4/5) und Fertigungs-OT (Level 0-3). Kommunikation darf nur über Proxies, Bastion Hosts oder Jump-Server in der IDMZ erfolgen. (2 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidv_net_001",
"exam": "AP2_T2",
"lernfeld": "LF 12 DV",
"topic": "Redundanzprotokolle PRP und HSR in der OT",
"scenario": "In einem Energie-Umspannwerk darf bei einem Netzwerkausfall keine einzige Millisekunde Datenübertragung verloren gehen.",
"question": "Erläutern Sie die industriellen Redundanzprotokolle Parallel Redundancy Protocol (PRP) und High-availability Seamless Redundancy (HSR) nach IEC 62439-3. Warum reicht das klassische Spanning Tree Protocol (RSTP) in diesen Anwendungen nicht aus?",
"points": 8,
"solution": "Kritik an Spanning Tree (RSTP):\nRSTP benötigt nach einem Linkausfall mehrere hundert Millisekunden bis Sekunden zur Rekonvergenz. Für zeitkritische Schutzabschaltungen in Industrie und Energie (Schaltzeit < 4 ms) bedeutet dies einen unzulässigen Stillstand. (2 Pkt.)\n\nPRP (Parallel Redundancy Protocol):\n- Ein Endgerät (DANP - Dual Attached Node with PRP) ist gleichzeitig an ZWEI komplett voneinander getrennte Netzwerke (LAN A und LAN B) angeschlossen.\n- Datenframes werden dupliziert und zeitgleich über beide Netze versendet. Der Empfänger verarbeitet das zuerst eintreffende Paket und verwirft das Duplikat nahtlos (Umschaltzeit: EXAKT 0 ms!). Fällt ein Netz komplett aus, läuft der Betrieb ohne Unterbrechung weiter. (3 Pkt.)\n\nHSR (High-availability Seamless Redundancy):\n- Ring-Topologie ohne zentrale Switche. Jedes Gerät sendet das Paket zeitgleich in beide Ringrichtungen (im und gegen den Uhrzeigersinn). Der Empfänger entnimmt das erste Paket und verwirft das zweite (Umschaltzeit 0 ms). (3 Pkt.)",
"type": "text",
"options": []
},
{
"id": "fidp_proc_002",
"profession": "FIDP",
"exam_part": "AP2_PB2",
"topic": "BPMN 2.0: Ausnahmebehandlung & Intermediate Events",
"points": 10,
"scenario": "In einem Beschaffungsprozess soll ein Lieferant binnen 48 Stunden eine Auftragsbestätigung übermitteln. Trifft diese nicht rechtzeitig ein, muss ein Eskalationsprozess an den strategischen Einkauf ausgelöst werden.",
"question": "a) Benennen Sie das BPMN-Element, mit dem die 48-Stunden-Frist an der Aktivität 'Auftragsbestätigung abwarten' modelliert wird.\nb) Erläutern Sie den Unterschied zwischen einem unterbrechenden (interrupting) und einem nicht-unterbrechenden (non-interrupting) Boundary Event anhand dieses Szenarios.\nc) Welche Gateway-Art ist zu wählen, wenn nach Prüfung der Bestätigung entweder die Standard-Lieferung, eine Express-Lieferung oder bei Lieferengpass ein Alternativartikel parallel angefragt werden soll?",
"expected_solution": "a) Angeheftetes Zwischenereignis (Boundary Timer Event / Zeit-Grenzereignis).\nb) Unterbrechend: Bricht die Hauptaktivität sofort ab und leitet die Token ausschließlich in den Eskalationspfad (Auftragsbestätigung wird nicht mehr angenommen). Nicht-unterbrechend: Die Frist löst eine Warnung/Eskalation aus, die ursprüngliche Aktivität bleibt jedoch aktiv und kann noch abgeschlossen werden.\nc) Inklusives Gateway (OR / OR-Split), da eine oder mehrere Verzweigungen gleichzeitig aktiv werden können (z.B. Express-Lieferung UND parallele Alternativartikel-Anfrage)."
},
{
"id": "fidp_data_002",
"profession": "FIDP",
"exam_part": "AP2_PB1",
"topic": "Datenformate & Datenqualität: Parquet vs. JSON & ISO 25012",
"points": 10,
"scenario": "Ein Logistikunternehmen speichert täglich 80 Millionen Sensordaten aus Frachtcontainern. Derzeit liegen die Daten als unkomprimierte JSON-Dateien vor. Die analytischen Abfragen auf Zeitreihen dauern mehrere Stunden.",
"question": "a) Erläutern Sie das Speicherprinzip von Apache Parquet (spaltenorientiert) im Vergleich zu zeilenbasierten JSON-Dateien.\nb) Nennen Sie zwei konkrete Vorteile, die sich bei analytischen Aggregationsabfragen (z.B. Durchschnittstemperatur pro Monat) durch Parquet ergeben.\nc) Nennen und erläutern Sie zwei Merkmale der Datenqualität nach DIN ISO/IEC 25012, die bei Sensordaten vor der Persistierung geprüft werden müssen.",
"expected_solution": "a) JSON ist zeilenorientiert (Row-oriented); Parquet ist spaltenorientiert (Column-oriented), d.h. Werte derselben Spalte werden zusammenhängend auf der Festplatte gespeichert.\nb) 1. Column Pruning: Es müssen nur die Spalten von der Festplatte gelesen werden, die in der Abfrage benötigt werden (drastische Reduktion der I/O-Last). 2. Hohe Kompressionsrate: Da homogene Datentypen hintereinander liegen, greifen Algorithmen wie Snappy oder Dictionary Encoding extrem effizient.\nc) 1. Genauigkeit (Accuracy): Sensormesswerte dürfen keine Messfehler oder unphysikalischen Ausreißer aufweisen. 2. Vollständigkeit (Completeness): Es dürfen keine Zeitintervalle oder Funkabrisse unbemerkt fehlen."
},
{
"id": "fidp_etl_002",
"profession": "FIDP",
"exam_part": "AP2_PB1",
"topic": "ETL: Change Data Capture (CDC) & Idempotenz",
"points": 8,
"scenario": "Eine E-Commerce-Plattform synchronisiert Kundendaten aus einem operativen PostgreSQL-System in ein analytisches Snowflake Data Warehouse.",
"question": "a) Erläutern Sie das Funktionsprinzip von Change Data Capture (CDC) über das Write-Ahead-Log (WAL) im Vergleich zu zyklischen Vollabfragen via SELECT mit Timestamp.\nb) Definieren Sie den Begriff 'Idempotenz' im Kontext von Datenpipelines und begründen Sie, warum Idempotenz im Fehlerfall essenziell ist.",
"expected_solution": "a) CDC liest die Änderungen (INSERT, UPDATE, DELETE) direkt asynchron und latenzarm aus den Transaktionslogs (WAL) der Datenbank aus. Dadurch entsteht nahezu keine zusätzliche Last auf der operativen Datenbank und gelöschte Datensätze (Deletes) werden lückenlos erfasst, was bei Timestamp-SELECTs oft nicht möglich ist.\nb) Idempotenz bedeutet, dass eine Pipeline-Operation beliebig oft mit denselben Eingangsdaten ausgeführt werden kann, ohne das Endergebnis zu verändern. Im Fehlerfall oder bei Pipeline-Wiederholungen (Retries) verhindert dies doppelte Datensätze (Duplikate) und inkonsistente Aggregationen."
},
{
"id": "fidp_dwh_002",
"profession": "FIDP",
"exam_part": "AP2_PB1",
"topic": "Data Warehouse: Slowly Changing Dimensions (SCD Typ 1 vs. Typ 2)",
"points": 10,
"scenario": "In einem CRM-System ändert ein Großkunde seinen Firmensitz von München nach Frankfurt am Main. Im Data Warehouse sollen historische Umsatzzahlen weiterhin der Region München zugeordnet bleiben, zukünftige Umsätze jedoch Frankfurt.",
"question": "a) Begründen Sie, warum SCD Typ 1 für diese Anforderung ungeeignet ist.\nb) Beschreiben Sie den Aufbau und die Funktionsweise einer SCD Typ 2 Implementierung in der Kundendimension (nennen Sie drei typische Metadaten-Spalten).\nc) Was versteht man unter einem 'Surrogatschlüssel' (Surrogate Key) und warum ist er bei SCD Typ 2 zwingend erforderlich?",
"expected_solution": "a) SCD Typ 1 überschreibt den bestehenden Datensatz einfach. Dadurch geht die Historie verloren, und historische Umsätze würden fälschlicherweise nachträglich Frankfurt zugeordnet.\nb) Bei SCD Typ 2 wird für jede Änderung ein neuer Datensatz in der Dimensionstabelle angelegt. Die Historie wird über Metadatenspalten gesteuert: 1. `gueltig_von` (Valid From / Startdatum), 2. `gueltig_bis` (Valid To / Enddatum, z.B. 9999-12-31), 3. `is_current` (Flag 1/0 für den aktuell gültigen Datensatz).\nc) Ein Surrogatschlüssel ist ein künstlicher, datenbankinterner Primärschlüssel (z.B. fortlaufende Ganzzahl / Bigint). Da der fachliche Geschäftsschlüssel (Business Key, z.B. Kundennummer) bei SCD Typ 2 mehrfach in der Tabelle vorkommt, garantiert nur der Surrogatschlüssel die Eindeutigkeit jeder historischen Version."
},
{
"id": "fidp_stat_002",
"profession": "FIDP",
"exam_part": "AP2_PB1",
"topic": "Induktive Statistik: Hypothesentest, p-Wert & A/B-Testing",
"points": 8,
"scenario": "Ein Online-Shop testet einen neuen Checkout-Button in einem A/B-Test. Variante A (bestehend) erreicht eine Konversionsrate von 3,2 %, Variante B (neu) 3,8 %. Der berechnete p-Wert beträgt 0,023 bei einem festgelegten Signifikanzniveau alpha von 0,05.",
"question": "a) Formulieren Sie die Nullhypothese H0 und die Alternativhypothese H1 für diesen Test.\nb) Interpretieren Sie das Testergebnis: Wird die Nullhypothese verworfen? Begründen Sie Ihre Entscheidung anhand des p-Werts.\nc) Erläutern Sie den Unterschied zwischen einem Alpha-Fehler (Fehler 1. Art) und einem Beta-Fehler (Fehler 2. Art).",
"expected_solution": "a) H0: Die neue Button-Variante hat keinen signifikanten Einfluss auf die Konversionsrate (Variante B ist gleich oder schlechter als A). H1: Die neue Variante führt zu einer signifikant höheren Konversionsrate als Variante A.\nb) Da der p-Wert (0,023) kleiner ist als das Signifikanzniveau alpha (0,05), wird die Nullhypothese verworfen. Die Konversionssteigerung ist mit 95 % statistischer Sicherheit signifikant.\nc) Alpha-Fehler (Fehler 1. Art): H0 wird fälschlicherweise verworfen, obwohl kein echter Unterschied vorliegt (falsch-positiv). Beta-Fehler (Fehler 2. Art): H0 wird beibehalten, obwohl Variante B in Wahrheit überlegen ist (falsch-negativ)."
},
{
"id": "fidp_ml_002",
"profession": "FIDP",
"exam_part": "AP2_PB1",
"topic": "Machine Learning: Confusion Matrix & Kennzahlen (Precision, Recall)",
"points": 10,
"scenario": "Ein Machine-Learning-Modell soll betrügerische Kreditkartentransaktionen (Fraud) erkennen. Ein Testdatensatz von 1.000 Transaktionen liefert folgende Konfusionsmatrix: True Positive (TP) = 80, False Positive (FP) = 20, False Negative (FN) = 10, True Negative (TN) = 890.",
"question": "a) Berechnen Sie die Accuracy (Treffgenauigkeit) des Modells in Prozent.\nb) Berechnen Sie die Precision (Präzision) und den Recall (Sensitivität / Trefferquote).\nc) Begründen Sie, warum bei Betrugserkennung der Recall in der Regel wichtiger ist als die Precision.",
"expected_solution": "a) Accuracy = (TP + TN) / Gesamt = (80 + 890) / 1000 = 970 / 1000 = 97,0 %.\nb) Precision = TP / (TP + FP) = 80 / (80 + 20) = 80 / 100 = 80,0 %.\nRecall = TP / (TP + FN) = 80 / (80 + 10) = 80 / 90 = 88,89 %.\nc) Ein unentdeckter Betrugsfall (False Negative) verursacht direkten finanziellen Schaden und rechtliche Risiken. Ein Fehlalarm (False Positive) führt hingegen meist nur zu einer kurzen manuellen Nachprüfung oder SMS-Bestätigung. Daher muss FN minimiert und somit der Recall maximiert werden."
},
{
"id": "fidp_bi_001",
"profession": "FIDP",
"exam_part": "AP2_PB2",
"topic": "Business Intelligence: Visualisierung & Dashboard-Design",
"points": 8,
"scenario": "Die Geschäftsführung wünscht ein operatives Vertriebs-Dashboard. Ein Junior-Analyst hat hierfür 3D-Kreisdiagramme mit 15 Segmenten und auffälligen Ampelfarben (Rot/Grün) ohne Beschriftung erstellt.",
"question": "a) Kritisieren Sie den Entwurf des Analysten anhand von zwei ergonomischen Grundsätzen (z.B. Barrierefreiheit, Gestaltgesetze).\nb) Welcher Diagrammtyp eignet sich besser, um Umsatzanteile von 15 Produktkategorien darzustellen? Begründen Sie Ihre Wahl.\nc) Was versteht man unter dem Begriff 'Data-Ink-Ratio' nach Edward Tufte?",
"expected_solution": "a) 1. Kreisdiagramme mit 15 Segmenten überfordern das menschliche Auge (Winkel und Flächen können kognitiv schlecht verglichen werden; 3D-Effekte verzerren Proportionen zusätzlich). 2. Reine Rot/Grün-Farbkodierung schließt Menschen mit Rot-Grün-Sehschwäche aus (mangelnde Barrierefreiheit).\nb) Ein horizontales Balkendiagramm (Bar Chart), absteigend nach Umsatz sortiert. Kategorienamen sind horizontal lesbar, und Balkenlängen lassen sich vom menschlichen Gehirn präzise und mühelos vergleichen.\nc) Das Verhältnis von nützlicher Tinte (Data-Ink), die echte Dateninformationen übermittelt, zur gesamten Druck-/Pixelmenge. Ziel ist die Maximierung der Data-Ink-Ratio durch Entfernen redundanter Dekorationen (3D-Effekte, unnötige Gitterlinien, Zierrahmen)."
},
{
"id": "fidp_gov_001",
"profession": "FIDP",
"exam_part": "AP2_PB1",
"topic": "Data Governance & DSGVO: Anonymisierung vs. Pseudonymisierung",
"points": 8,
"scenario": "Ein Gesundheits-Startup möchte Patientendaten für statistische Forschungszwecke auswerten. Gemäß DSGVO Art. 9 handelt es sich um besondere Kategorien personenbezogener Daten.",
"question": "a) Erläutern Sie den technischen und rechtlichen Unterschied zwischen 'Pseudonymisierung' und 'Anonymisierung'.\nb) Nennen Sie zwei typische Techniken zur Anonymisierung von tabellarischen Datensätzen (z.B. k-Anonymität, Aggregation).\nc) Was versteht man unter 'Data Lineage' im Rahmen von Data Governance?",
"expected_solution": "a) Pseudonymisierung (Art. 4 Nr. 5 DSGVO): Personenidentifikatoren (Name, SV-Nummer) werden durch Pseudonyme/Hashes ersetzt. Eine Re-Identifizierung ist unter Zuhilfenahme zusätzlicher, separat gesicherter Schlüssel noch möglich. Die Daten bleiben personenbezogen.\nAnonymisierung: Daten werden so irreversibel verändert, dass die betroffene Person weder durch den Verantwortlichen noch durch Dritte identifiziert werden kann. Anonyme Daten fallen nicht mehr unter die DSGVO.\nb) 1. k-Anonymität / Verallgemeinerung (z.B. Alter in Altersgruppen 30-39 fassen, Postleitzahlen auf die ersten zwei Stellen kürzen). 2. Datenstörung / Perturbation / Rauschinjektion (Differential Privacy) oder Unterdrückung seltener Datensätze.\nc) Data Lineage beschreibt den lückenlosen Lebenszyklus und Fluss von Daten vom Ursprung (Datenquelle) über alle Transformationen und ETL-Stufen bis zum Zielsystem/Bericht. Sie stellt Nachvollziehbarkeit, Auditierbarkeit und Compliance sicher."
},
{
"id": "fidv_cps_002",
"profession": "FIDV",
"exam_part": "AP2_PB2",
"topic": "RAMI 4.0 & Verwaltungsschale (Asset Administration Shell)",
"points": 10,
"scenario": "In einer Smart Factory soll eine neue CNC-Fräsmaschine als Industrie 4.0 Komponente integriert werden. Die Architektur soll dem RAMI 4.0 Modell folgen.",
"question": "a) Nennen Sie die drei Achsen des RAMI 4.0 Referenzarchitekturmodells.\nb) Welche Funktion hat die Verwaltungsschale (Asset Administration Shell - AAS) für physische Maschinen?\nc) Auf welcher Hierarchy Level Ebene nach RAMI 4.0 ordnet sich die CNC-Fräse ein?",
"expected_solution": "a) 1. Architektur-Schichten (Layers: Asset, Integration, Communication, Information, Functional, Business).\n2. Lebenszyklus & Wertschöpfungskette (Life Cycle & Value Stream: Typ vs. Instanz, Entwicklung bis Wartung).\n3. Hierarchie-Ebenen (Hierarchy Levels: Product, Field Device, Control Device, Station, Work Center, Enterprise, Connected World).\nb) Die AAS bildet die standardisierte digitale Schnittstelle (den Digitalen Zwilling) des physischen Assets. Sie kapselt alle Daten, Dokumentationen, Fähigkeiten, Parameter und Kommunikationsschnittstellen der Maschine herstellerunabhängig.\nc) Station (oder Control Device / Field Device je nach Betrachtung der Einzelkomponenten; als Gesamtmaschine typischerweise 'Station' / 'Work Center')."
},
{
"id": "fidv_sens_001",
"profession": "FIDV",
"exam_part": "AP2_PB2",
"topic": "Sensorik: IO-Link vs. Analoge Schnittstellen & A/D-Wandlung",
"points": 10,
"scenario": "An einem Fließband erfassen Drucksensoren den Hydraulikdruck. Bislang wurden analoge 4-20 mA Stromschleifen eingesetzt. Nun wird auf IO-Link umgerüstet.",
"question": "a) Erläutern Sie einen wesentlichen Vorteil einer 4-20 mA Stromschnittstelle gegenüber einer 0-10 V Spannungsschnittstelle bei langen Leitungswegen.\nb) Warum wird bei analogen Sensoren ein Live-Zero (4 mA statt 0 mA) genutzt?\nc) Nennen Sie drei konkrete Vorteile, die der digitale Standard IO-Link (IEC 61131-9) gegenüber rein analogen 4-20 mA Sensoren bietet.",
"expected_solution": "a) Der Schleifenstrom von 4-20 mA ist unabhängig vom Leitungswiderstand (Spannungsabfall) der Zuleitung, wodurch Messfehler durch Leitungslängen vermieden werden. Zudem ist die Stromschleife unempfindlicher gegen elektromagnetische Einstreuungen.\nb) Drahtbruchsicherheit: Fließt ein Strom von 0 mA, liegt ein Leitungsabriss oder Sensorfehler vor. Werte zwischen 4 und 20 mA repräsentieren den echten Messbereich.\nc) 1. Digitale, störungsfreie Übertragung von Prozesswerten, Parametern und Diagnosedaten über dieselbe Standard-3-Leiter-Verkabelung. 2. Fernparametrierung und automatischer Sensortausch ohne manuelles Konfigurieren (Plug & Play via IODD-Datei). 3. Zusätzliche Diagnoseinformationen (z.B. Verschmutzung, Temperaturwarnung, Überlast)."
},
{
"id": "fidv_edge_001",
"profession": "FIDV",
"exam_part": "AP2_PB1",
"topic": "Edge Computing vs. Cloud & IoT-Gateways",
"points": 8,
"scenario": "Ein Walzwerk erfasst Vibrationsdaten mit einer Abtastrate von 20 kHz pro Lager, um Lagerschäden mittels FFT (Fast Fourier Transformation) im Millisekundenbereich vorherzusagen.",
"question": "a) Begründen Sie anhand von zwei technischen Faktoren (Latenz, Bandbreite), warum die Rohdatenverarbeitung auf einem Edge-Gateway direkt an der Maschine statt in einer zentralen Cloud erfolgen muss.\nb) Welche Aufgaben übernimmt das Edge-Gateway typischerweise, bevor selektive Daten an die Cloud weitergeleitet werden?\nc) Nennen Sie ein leichtgewichtiges Container-Betriebssystem oder eine K8s-Distribution, die speziell für Industrie-PCs (IPCs) an der Edge geeignet ist.",
"expected_solution": "a) 1. Bandbreite: 20 kHz Abtastrate bei mehreren Sensoren erzeugt gigabyteweise Daten pro Stunde; die dauerhafte Übertragung über WAN-Verbindungen würde das Unternehmensnetzwerk überlasten und erhebliche Cloud-Kosten verursachen. 2. Latenz & Echtzeit: Die Schadenserkennung und Notabschaltung muss binnen Millisekunden erfolgen; Cloud-Roundtrips unterliegen unvorhersehbarem Jitter und Latenzschwankungen.\nb) Filterung, Aggregation, Vorverarbeitung/Transformation (z.B. FFT-Schwingungsanalyse zur Merkmaltextraktion) und Protokollkonvertierung (z.B. Feldbus nach MQTT/OPC UA).\nc) K3s (Lightweight Kubernetes), MicroK8s, BalenaOS oder Ubuntu Core."
},
{
"id": "fidv_bus_002",
"profession": "FIDV",
"exam_part": "AP2_PB1",
"topic": "Industrielle Kommunikation: Profinet IO vs. TSN",
"points": 8,
"scenario": "In einer Fertigungslinie tauschen speicherprogrammierbare Steuerungen (SPS) und Servoantriebe zyklisch Prozessdaten aus. Gleichzeitig sollen Kamerabilder zur Qualitätsprüfung über dieselbe Netzwerkinfrastruktur übertragen werden.",
"question": "a) Erläutern Sie den Unterschied zwischen Profinet RT (Real-Time) und Profinet IRT (Isochronous Real-Time).\nb) Welches grundlegende Problem des Standard-Ethernet (CSMA/CD bzw. Best-Effort Switching) verhindert harte Echtzeitfähigkeit?\nc) Wie löst Time-Sensitive Networking (TSN, z.B. IEEE 802.1Qbv) die Koexistenz von zeitkritischem Steuerungsverkehr und bandbreitenintensivem IT-Videoverkehr auf derselben physikalischen Leitung?",
"expected_solution": "a) Profinet RT arbeitet softwarebasiert auf Layer 2 und umgeht den TCP/IP-Stack (Zykluszeiten typischerweise 1-10 ms). Profinet IRT nutzt spezielle Switch-Hardware für taktsynchronisierte Datenübertragung mit fest reservierten Zeitschlitzen im Mikrosekundenbereich (harte Echtzeit, Jitter < 1 µs).\nb) Standard-Ethernet nutzt Best-Effort Übertragung. Wenn mehrere Sender gleichzeitig Pakete über einen Switch-Port leiten, entstehen Puffer-Warteschlangen (Queuing Delay), Jitter und im schlimmsten Fall Paketverluste.\nc) TSN nutzt den Time-Aware Shaper (IEEE 802.1Qbv): Die Übertragungszeit auf der Leitung wird in sich wiederholende Zeitschlitze unterteilt. In definierten Zeitfenstern dürfen ausschließlich zeitkritische Pakete mit höchster Priorität die Leitung blockierungsfrei nutzen, während Standard-Datenverkehr temporär pausiert wird."
},
{
"id": "fidv_iot_002",
"profession": "FIDV",
"exam_part": "AP2_PB1",
"topic": "OPC UA: Sicherheitskonzept & Zertifikate",
"points": 8,
"scenario": "Ein MES-System (Manufacturing Execution System) soll Prozessdaten von mehreren OPC UA Servern aus der Fertigung auslesen.",
"question": "a) Welche drei Sicherheitsaspekte werden durch den OPC UA Security Layer standardmäßig abgedeckt (CIA-Triade)?\nb) Beschreiben Sie den Mechanismus des Trust-Managements beim Verbindungsaufbau zwischen einem OPC UA Client und einem OPC UA Server (Rolle von X.509-Zertifikaten).\nc) Was passiert, wenn auf dem OPC UA Server die Security Policy 'None' konfiguriert ist, und wie ist dies in Produktionsnetzen zu bewerten?",
"expected_solution": "a) 1. Vertraulichkeit (Verschlüsselung der Nutzdaten via AES), 2. Integrität (Signatur der Nachrichten via SHA/RSA), 3. Authentizität (Gegenseitige Identifikation von Client und Server via X.509 Zertifikate).\nb) Client und Server tauschen beim Verbindungsaufbau ihre öffentlichen X.509-Zertifikate aus. Die Verbindung kommt nur zustande, wenn das jeweilige Zertifikat in der 'Trusted'-Liste des Partners hinterlegt ist oder von einer vertrauenswürdigen CA signiert wurde (Reject / Trust Store).\nc) 'None' bedeutet unverschlüsselte und unsignierte Übertragung im Klartext ohne Authentifizierung. In industriellen Produktionsnetzen stellt dies ein enormes Sicherheitsrisiko dar (Man-in-the-Middle Angriffe, Sabotage von Steuerungswerten) und verstößt gegen gängige Standards wie IEC 62443."
},
{
"id": "fidv_wire_001",
"profession": "FIDV",
"exam_part": "AP2_PB2",
"topic": "Drahtlose Vernetzung: 5G Campusnetze vs. LoRaWAN",
"points": 8,
"scenario": "Ein Logistikzentrum plant die Vernetzung von autonom fahrenden Flurförderzeugen (AGVs) in der Halle und die Verfolgung von Containern auf einem 10 km² großen Außengelände.",
"question": "a) Begründen Sie, warum für die Steuerung der autonomen Fahrzeuge (AGVs) ein privates 5G-Campusnetz (URLLC) anstelle von LoRaWAN eingesetzt werden muss.\nb) Welcher Frequenzbereich steht Unternehmen in Deutschland für private 5G-Campusnetze durch die Bundesnetzagentur zur Verfügung?\nc) Warum ist LoRaWAN die optimale Wahl für die Batterieversorgten Tracker auf dem Außengelände? Nennen Sie zwei Gründe.",
"expected_solution": "a) AGVs erfordern kontinuierliche Steuerung mit extrem geringer Latenz (< 5 ms) und hoher Zuverlässigkeit (URLLC - Ultra-Reliable Low-Latency Communication). LoRaWAN hat extrem geringe Bandbreite, hohe Latenzen und Sendezeitbeschränkungen (Duty Cycle von meist 1 %).\nb) Frequenzbereich 3.700 MHz bis 3.800 MHz (3,7 - 3,8 GHz / Band n78).\nc) 1. Sehr hohe Funkreichweite (mehrere Kilometer im Freifeld durch Sub-GHz Chirp Spread Spectrum Modulation). 2. Extrem geringer Energieverbrauch, der Batterie-Laufzeiten von 5 bis 10 Jahren ohne Wartung ermöglicht."
},
{
"id": "fidv_sec_002",
"profession": "FIDV",
"exam_part": "AP2_PB1",
"topic": "Purdue-Modell & OT-Netzwerksegmentierung (IDMZ)",
"points": 10,
"scenario": "Nach einem Ransomware-Vorfall in der Office-IT soll das Produktionsnetzwerk (OT) isoliert und nach dem Purdue-Referenzmodell neu strukturiert werden.",
"question": "a) Ordnen Sie die folgenden Systeme den Purdue-Levels (Level 0, Level 1, Level 2, Level 3, Level 4) zu: SPS, ERP-System, Temperaturfühler, SCADA-Server, HMI-Touchpanel.\nb) Welche Funktion hat die Industrial Demilitarized Zone (IDMZ / Level 3.5)?\nc) Nennen Sie zwei Dienste, die typischerweise in der IDMZ platziert werden, und eine goldene Regel für den Datenverkehr durch die IDMZ.",
"expected_solution": "a) Level 0: Temperaturfühler (Prozess/Physik); Level 1: SPS (Basis-Steuerung); Level 2: HMI-Touchpanel (Bereichs-Bedienung); Level 3: SCADA-Server (Betriebsleitebene / MES); Level 4: ERP-System (Enterprise IT).\nb) Die IDMZ (Level 3.5) bildet einen Puffer- und Trennungsbereich zwischen der Office-IT (Level 4/5) und der Fertigungs-OT (Level 0-3). Sie verhindert jede direkte Netzwerkverbindung zwischen IT und OT.\nc) Dienste in IDMZ: Patch-Management / WSUS-Spiegel, Historian-Replikat, Jump-Host / Bastion Host für Fernwartung. Goldene Regel: Kein direkter Durchgangsverkehr erlaubt! Jede Verbindung endet in der IDMZ; Daten werden abgelegt und von der anderen Seite separat abgeholt."
},
{
"id": "fidv_res_001",
"profession": "FIDV",
"exam_part": "AP2_PB1",
"topic": "Netzwerkresilienz: PRP & HSR (IEC 62439-3) vs. RSTP",
"points": 8,
"scenario": "In einem Umspannwerk und einer petrochemischen Raffinerie dürfen bei einem Kabelbruch keine Datenpakete verloren gehen, da dies zum Abschalten der Notfallventile führen würde.",
"question": "a) Begründen Sie, warum herkömmliche Redundanzverfahren wie RSTP (Rapid Spanning Tree) für diese Anwendung unzureichend sind.\nb) Erläutern Sie das Funktionsprinzip des Parallel Redundancy Protocol (PRP nach IEC 62439-3).\nc) Was ist die theoretische Umschaltzeit (Reconfiguration Time) von PRP bei Ausfall eines Übertragungspfades?",
"expected_solution": "a) RSTP benötigt für die Rekonfiguration des Netzes nach einem Linkausfall typischerweise einige Hundert Millisekunden bis mehrere Sekunden. In dieser Zeit kommt es zu Paketverlusten, die Schutzabschaltungen auslösen können.\nb) Bei PRP sendet ein Endgerät (Dual Attached Node - DANP) jedes Datenpaket zeitgleich über zwei völlig getrennte, parallele Netzwerke (LAN A und LAN B). Der Empfänger verarbeitet das zuerst eintreffende Paket und verwirft das Duplikat anhand einer Sequenznummer (Redundancy Control Trailer).\nc) 0 ms (unterbrechungsfreie Umschaltung, Zero-Failover-Time), da das Duplikat auf dem redundanten Pfad kontinuierlich weiterläuft."
},
{
"id": "fidv_gov_001",
"profession": "FIDV",
"exam_part": "AP2_WiSo",
"topic": "Funktionale Sicherheit (Safety) vs. Security & CE-Kennzeichnung",
"points": 8,
"scenario": "Ein Sondermaschinenbauer vernetzt eine Roboterzelle mit der Firmen-IT, um Zustandsdaten zu analysieren.",
"question": "a) Erläutern Sie den fundamentalen Unterschied zwischen 'Safety' (Maschinensicherheit) und 'Security' (Informationssicherheit).\nb) Welche Rolle spielt der Performance Level (PL nach EN ISO 13849-1) bzw. das Safety Integrity Level (SIL nach IEC 61508) bei einer Not-Aus-Schaltung?\nc) Erklären Sie, warum das nachträgliche Vernetzen einer Bestandsmaschine zu einem Erlöschen der CE-Konformität führen kann (Wesentliche Veränderung).",
"expected_solution": "a) Safety schützt Menschen und die Umwelt vor Gefahren, die von der Maschine ausgehen (z.B. Verletzungen durch Roboterarm, Not-Aus). Security schützt die Maschine und Daten vor Gefahren, die von böswilligen Angreifern oder Schadsoftware ausgehen (z.B. Hacking, Manipulation).\nb) PL (a bis e) und SIL (1 bis 4) klassifizieren die Zuverlässigkeit und Ausfallwahrscheinlichkeit sicherheitsbezogener Steuerungsfunktionen. Ein Not-Aus erfordert typischerweise PL e / SIL 3 (höchste Sicherheitsstufe mit redundanter Auslegung).\nc) Werden durch die digitale Vernetzung neue Gefährdungen geschaffen (z.B. Manipulierbarkeit von Schutzmechanismen über das Netzwerk), liegt eine 'wesentliche Veränderung' nach dem Produktsicherheitsgesetz / Maschinenrichtlinie vor. Das bestehende CE-Zeichen wird ungültig, und der Betreiber wird rechtlich zum Hersteller mit Pflicht zur erneuten Risikobeurteilung und CE-Zertifizierung."
} }
] ]

View file

@ -0,0 +1,76 @@
/**
* Interaktiver Purdue-Referenzmodell & OT-Zonen-Trainer für FIDV
* IHK ZPA Nord-West AP2
*/
(function() {
function renderPurdueTrainer(containerId) {
const container = document.getElementById(containerId);
if (!container) return;
const items = [
{ name: "PT100 Temperaturfühler & Drucktransmitter", level: "0", hint: "Physikalischer Prozess / Sensorik & Aktorik" },
{ name: "Siemens S7-1500 SPS & Frequenzumrichter", level: "1", hint: "Basis-Steuerung (Direct Control)" },
{ name: "KTP700 HMI-Touchpanel & Bedienstation", level: "2", hint: "Bereichsbedienung & Monitoring" },
{ name: "SCADA-Server & Manufacturing Execution System (MES)", level: "3", hint: "Betriebsleitebene / Fertigungssteuerung" },
{ name: "Historian-Spiegel & Jump Host (Fernwartung)", level: "3.5", hint: "Industrial DMZ (Puffer zwischen IT und OT)" },
{ name: "SAP ERP & Active Directory der Verwaltung", level: "4", hint: "Enterprise IT / Unternehmensebene" }
];
container.innerHTML = `
<div style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; color: #f8fafc;">
<h4 style="color: #38bdf8; margin-top: 0; margin-bottom: 12px;">🏭 Interaktiver Purdue-Modell & OT-Zonen Trainer (FIDV)</h4>
<p style="color: #94a3b8; font-size: 0.9rem; margin-bottom: 16px;">
Ordnen Sie die Komponenten den korrekten Purdue-Ebenen nach IEC 62443 / ANSI/ISA-95 zu:
</p>
<div id="purdue_items" style="display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px;">
${items.map((item, idx) => `
<div style="display: flex; justify-content: space-between; align-items: center; background: #1e293b; padding: 10px 14px; border-radius: 6px;">
<span style="font-size: 0.9rem; color: #cbd5e1;">${item.name}</span>
<select id="purdue_sel_${idx}" class="ihk-select" style="padding: 6px 10px; border-radius: 4px; background: #0f172a; color: #f8fafc; border: 1px solid #475569;">
<option value="">-- Ebene wählen --</option>
<option value="0">Level 0: Physikalischer Prozess</option>
<option value="1">Level 1: Basis-Steuerung (SPS)</option>
<option value="2">Level 2: Bereichsbedienung (HMI)</option>
<option value="3">Level 3: Leitebene (MES/SCADA)</option>
<option value="3.5">Level 3.5: Industrial DMZ (IDMZ)</option>
<option value="4">Level 4: Enterprise IT (ERP)</option>
</select>
</div>
`).join('')}
</div>
<div style="display: flex; gap: 10px; align-items: center;">
<button id="purdue_check_btn" class="ihk-btn ihk-btn-primary" style="padding: 8px 16px;">Ergebnis prüfen</button>
<span id="purdue_feedback" style="font-size: 0.9rem; font-weight: 600;"></span>
</div>
</div>
`;
document.getElementById('purdue_check_btn').addEventListener('click', () => {
let correct = 0;
items.forEach((item, idx) => {
const sel = document.getElementById(`purdue_sel_${idx}`);
if (sel.value === item.level) {
sel.style.borderColor = '#22c55e';
correct++;
} else {
sel.style.borderColor = '#ef4444';
}
});
const fb = document.getElementById('purdue_feedback');
if (correct === items.length) {
fb.style.color = '#4ade80';
fb.textContent = `🎉 Perfekt! Alle ${correct}/${items.length} Ebenen korrekt nach IEC 62443 zugeordnet.`;
} else {
fb.style.color = '#f87171';
fb.textContent = `${correct}/${items.length} richtig. Prüfen Sie die rot markierten Ebenen.`;
}
});
}
window.renderPurdueTrainer = renderPurdueTrainer;
document.addEventListener('DOMContentLoaded', () => {
if (document.getElementById('purdue-trainer-app')) {
renderPurdueTrainer('purdue-trainer-app');
}
});
})();

View file

@ -312,9 +312,9 @@
}, },
relatedCourses: { relatedCourses: {
"FISI": ["active_directory", "powershell", "bash", "ihk_ap2_fisi"], "FISI": ["active_directory", "powershell", "bash", "ihk_ap2_fisi"],
"FIAE": ["html_css", "javascript", "git"], "FIAE": ["ihk_ap2_fiae", "html_css", "javascript", "git"],
"FIDP": ["python", "sql", "git"], "FIDP": ["ihk_ap2_fidp", "python", "sql", "git"],
"FIDV": ["bash", "dns_records", "cpp"], "FIDV": ["ihk_ap2_fidv", "bash", "dns_records", "cpp"],
"ITSE": ["bash", "cpp"], "ITSE": ["bash", "cpp"],
"ITSM": ["sql", "python"], "ITSM": ["sql", "python"],
"KDM": ["sql", "git"] "KDM": ["sql", "git"]
@ -337,9 +337,9 @@
}, },
relatedCourses: { relatedCourses: {
"FISI": ["dns_records", "active_directory", "ihk_ap2_fisi"], "FISI": ["dns_records", "active_directory", "ihk_ap2_fisi"],
"FIAE": ["java", "csharp", "go", "rust"], "FIAE": ["ihk_ap2_fiae", "java", "csharp", "go", "rust"],
"FIDP": ["python", "sql"], "FIDP": ["ihk_ap2_fidp", "python", "sql"],
"FIDV": ["dns_records", "bash"], "FIDV": ["ihk_ap2_fidv", "dns_records", "bash"],
"ITSE": ["dns_records"], "ITSE": ["dns_records"],
"ITSM": ["sql"], "ITSM": ["sql"],
"KDM": ["sql", "python"] "KDM": ["sql", "python"]
@ -362,9 +362,9 @@
}, },
relatedCourses: { relatedCourses: {
"FISI": ["ihk_ap2_fisi", "active_directory", "dns_records", "bash"], "FISI": ["ihk_ap2_fisi", "active_directory", "dns_records", "bash"],
"FIAE": ["git", "java", "csharp", "python"], "FIAE": ["ihk_ap2_fiae", "git", "java", "csharp", "python"],
"FIDP": ["sql", "python", "git"], "FIDP": ["ihk_ap2_fidp", "sql", "python", "git"],
"FIDV": ["bash", "dns_records"], "FIDV": ["ihk_ap2_fidv", "bash", "dns_records"],
"ITSE": ["bash"], "ITSE": ["bash"],
"ITSM": ["sql"], "ITSM": ["sql"],
"KDM": ["sql"] "KDM": ["sql"]

View file

@ -0,0 +1,9 @@
# FIAE Modul 01: Software-Architektur & Design Patterns (LF 9)
**Prüfungsbereich:** LF 9 Anwendungsentwicklung
Schichtenarchitektur, Clean Architecture, MVC/MVVM & GoF-Entwurfsmuster (Strategy, Observer, Factory).
## Relevante Prüfungsthemen nach dem offiziellen ZPA Nord-West Prüfungskatalog (2. Auflage)
- Fachqualifikationen für Fachinformatiker Anwendungsentwicklung (FIAE).
- Authentische Prüfungsfragen mit offiziellem IHK-Erwartungshorizont und Punkteverteilung.

View file

@ -0,0 +1,166 @@
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="icon" type="image/svg+xml" href="../../../assets/favicon.svg">
<meta charset="UTF-8">
<title>FIAE Modul 01: Software-Architektur & Design Patterns (LF 9)</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
</head>
<body class="bg-slate-900 text-slate-100 font-sans p-6">
<div class="container mx-auto max-w-4xl">
<div class="flex justify-between items-center mb-6">
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary text-sm">← Zurück zum Dashboard</a>
<span class="ihk-badge ihk-badge-success">LF 9 Anwendungsentwicklung</span>
</div>
<h1 class="text-3xl font-extrabold text-sky-400 mb-2">FIAE Modul 01: Software-Architektur & Design Patterns (LF 9)</h1>
<p class="text-slate-300 text-lg leading-relaxed mb-6">Schichtenarchitektur, Clean Architecture, MVC/MVVM & GoF-Entwurfsmuster (Strategy, Observer, Factory).</p>
<!-- Fachtheorie & Wissen -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin-bottom: 24px;">
<h2 style="color: #38bdf8; margin-top: 0;">🏛️ Software-Architektur & GoF-Entwurfsmuster (LF 9 AE)</h2>
<p style="color: #cbd5e1; line-height: 1.6;">
Kernkompetenz im Prüfungsbereich 1 (Planen eines Softwareproduktes): Schichtenarchitekturen, Hexagonale Architektur (Ports & Adapters), MVC / MVVM und die klassischen Entwurfsmuster der Gang of Four (GoF).
</p>
<h3 style="color: #cbd5e1; margin-top: 20px;">1. Die Drei-Schichten-Architektur vs. Clean Architecture</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<p style="color: #cbd5e1; line-height: 1.6; margin: 0;">
- <strong>Präsentationsschicht (UI / Controller):</strong> Verarbeitet Benutzereingaben oder REST-Requests und liefert Antworten (HTML, JSON). Hängt von der Geschäftslogik ab.<br>
- <strong>Geschäftslogikschicht (Domain / Business Logic):</strong> Das Herz der Anwendung (Entities, Use Cases). Völlig frei von UI-Frameworks oder SQL-Abfragen.<br>
- <strong>Datenzugriffsschicht (Data Access / Repository):</strong> Kapselt Datenbanken, Filesystem oder externe Web-Services.<br>
- <strong>Dependency Inversion Rule (Clean Architecture):</strong> Abhängigkeiten zeigen IMMER nach innen zur Domäne. Äußere Infrastruktur implementiert Schnittstellen, die in der Domäne definiert sind!
</p>
</div>
<h3 style="color: #cbd5e1; margin-top: 20px;">2. Die wichtigsten GoF-Entwurfsmuster in IHK-Prüfungen</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<table class="ihk-table">
<thead>
<tr><th>Muster</th><th>Kategorie</th><th>Zweck & IHK-Beispiel</th></tr>
</thead>
<tbody>
<tr>
<td><strong>Strategy</strong></td>
<td>Verhalten (Behavioral)</td>
<td>Kapselt austauschbare Algorithmen in separaten Klassen hinter einem gemeinsamen Interface (z. B. verschiedene Rabattberechnungen oder Zahlungsarten: PayPal, Kreditkarte, SEPA).</td>
</tr>
<tr>
<td><strong>Observer</strong></td>
<td>Verhalten (Behavioral)</td>
<td>1:n-Abhängigkeit (Publisher/Subscriber). Informiert alle registrierten Abonnenten automatisch über Zustandsänderungen (z. B. GUI-Events, Chatnachrichten, Börsenticker).</td>
</tr>
<tr>
<td><strong>Factory Method</strong></td>
<td>Erzeugung (Creational)</td>
<td>Definiert eine Schnittstelle zur Objekterzeugung, überlässt aber den Unterklassen die Entscheidung, welche konkrete Klasse instanziiert wird.</td>
</tr>
<tr>
<td><strong>Singleton</strong></td>
<td>Erzeugung (Creational)</td>
<td>Stellt sicher, dass exakt eine Instanz einer Klasse existiert (privater Konstruktor, statische Instanz). In modernem Clean Code oft durch Dependency Injection ersetzt.</td>
</tr>
<tr>
<td><strong>Adapter</strong></td>
<td>Struktur (Structural)</td>
<td>Passt die Schnittstelle einer existierenden Klasse an eine vom Client erwartete andere Schnittstelle an (Wrapper-Prinzip).</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Interaktives Tool falls vorhanden -->
<!-- Fragenpool -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin: 32px 0;">
<h2 style="color: #38bdf8; margin-top: 0; font-size: 1.4rem; display: flex; align-items: center; gap: 10px;">
<span>📝</span> Authentische IHK-Prüfungsaufgaben nach ZPA 2. Auflage (FIAE)
</h2>
<p style="color: #94a3b8; font-size: 0.9rem; margin-bottom: 20px;">
Bearbeiten Sie die Aufgaben und vergleichen Sie Ihre Antwort mit dem offiziellen Erwartungshorizont:
</p>
<div style="display: flex; flex-direction: column; gap: 20px;">
<div class="ihk-exam-task" data-title="Clean Architecture & Schichtenmodell" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Clean Architecture & Schichtenmodell</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Für ein E-Commerce-Portal soll eine wartbare und zukunftssichere Softwarearchitektur konzipiert werden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Erläutern Sie das Prinzip der Schichtenarchitektur (Drei-Schichten-Architektur: Präsentation, Geschäftslogik, Datenzugriff). Erklären Sie die Dependency Inversion Rule (Abhängigkeitsregel) in der Clean Architecture und warum Domänenlogik unabhängig von Datenbanken und Frameworks sein muss.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="Design Patterns Strategy vs Factory Method" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Design Patterns Strategy vs Factory Method</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einem Warenwirtschaftssystem sollen unterschiedliche Rabattberechnungen und Versandarten dynamisch zur Laufzeit angewendet werden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Beschreiben Sie das GoF-Entwurfsmuster "Strategy (Strategie)" anhand von Context, Strategy-Interface und Concrete Strategies. Grenzen Sie es kurz vom Factory Method Pattern ab.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="Design Patterns Observer & Singleton" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Design Patterns Observer & Singleton</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einer Messaging-Applikation sollen mehrere Benutzeroberflächen-Komponenten sofort informiert werden, sobald eine neue Chatnachricht eintrifft.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Erläutern Sie das Entwurfsmuster Observer (Beobachter) mit den Rollen Subject (Publisher) und Observer (Subscriber). Erklären Sie zudem das Singleton-Muster und warum es in modernen Softwaresystemen oft als Anti-Pattern angesehen wird.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
</div>
</div>
<!-- Footer Navigation mit echten Buttons -->
<div class="mt-8 pt-6 border-t border-slate-700 flex justify-between items-center">
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary font-semibold">← Dashboard</a>
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary">🏠 Kursübersicht</a>
<a href="../02_uml_modellierung_und_softwareentwurf/index.html" class="ihk-btn ihk-btn-primary font-semibold">Nächstes Modul →</a>
</div>
</div>
<script src="../../../assets/courses_manifest.js"></script>
<script src="../../../assets/course_sidebar.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# FIAE Modul 02: UML-Modellierung & Softwareentwurf (LF 9)
**Prüfungsbereich:** LF 9 Anwendungsentwicklung
UML-Klassendiagramm (Sichtbarkeiten, Aggregation vs. Komposition), Sequenzdiagramm & Use Cases.
## Relevante Prüfungsthemen nach dem offiziellen ZPA Nord-West Prüfungskatalog (2. Auflage)
- Fachqualifikationen für Fachinformatiker Anwendungsentwicklung (FIAE).
- Authentische Prüfungsfragen mit offiziellem IHK-Erwartungshorizont und Punkteverteilung.

View file

@ -0,0 +1,170 @@
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="icon" type="image/svg+xml" href="../../../assets/favicon.svg">
<meta charset="UTF-8">
<title>FIAE Modul 02: UML-Modellierung & Softwareentwurf (LF 9)</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
</head>
<body class="bg-slate-900 text-slate-100 font-sans p-6">
<div class="container mx-auto max-w-4xl">
<div class="flex justify-between items-center mb-6">
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary text-sm">← Zurück zum Dashboard</a>
<span class="ihk-badge ihk-badge-success">LF 9 Anwendungsentwicklung</span>
</div>
<h1 class="text-3xl font-extrabold text-sky-400 mb-2">FIAE Modul 02: UML-Modellierung & Softwareentwurf (LF 9)</h1>
<p class="text-slate-300 text-lg leading-relaxed mb-6">UML-Klassendiagramm (Sichtbarkeiten, Aggregation vs. Komposition), Sequenzdiagramm & Use Cases.</p>
<!-- Fachtheorie & Wissen -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin-bottom: 24px;">
<h2 style="color: #38bdf8; margin-top: 0;">📐 UML-Modellierung & Objektorientierter Entwurf (LF 9 AE)</h2>
<p style="color: #cbd5e1; line-height: 1.6;">
Die Unified Modeling Language (UML) ist das universelle Dokumentations- und Modellierungswerkzeug in allen IHK-Abschlussprüfungen für Anwendungsentwickler.
</p>
<h3 style="color: #cbd5e1; margin-top: 20px;">1. UML-Klassendiagramm: Sichtbarkeiten & Relationen</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<table class="ihk-table">
<thead>
<tr><th>Symbol</th><th>Sichtbarkeit / Beziehung</th><th>Bedeutung & Beispiel</th></tr>
</thead>
<tbody>
<tr><td><code>+</code></td><td>public</td><td>Von überall im System zugänglich.</td></tr>
<tr><td><code>-</code></td><td>private</td><td>Nur innerhalb der eigenen Klasse sichtbar (Kapselung!).</td></tr>
<tr><td><code>#</code></td><td>protected</td><td>Nur in eigener Klasse und abgeleiteten Unterklassen sichtbar.</td></tr>
<tr><td><code>~</code></td><td>package</td><td>Nur innerhalb des selben Pakets/Namespaces sichtbar.</td></tr>
<tr><td>$\longrightarrow$</td><td>Assoziation</td><td>Verbindung/Beziehung ("nutzt ein"). Multiplizitäten: <code>1..*</code>, <code>0..1</code>.</td></tr>
<tr><td>$\diamondsuit\hspace{-4pt}-$</td><td>Aggregation (weiße Raute)</td><td>Teil-Ganzes-Beziehung ("hat ein"). Teile können unabhängig vom Ganzen existieren (z. B. Abteilung $\diamondsuit$ Mitarbeiter).</td></tr>
<tr><td>$lacklozenge\hspace{-4pt}-$</td><td>Komposition (schwarze Raute)</td><td>Existenzabhängige Teil-Ganzes-Beziehung. Stirbt das Ganze, sterben auch alle Teile (z. B. Rechnung $lacklozenge$ Rechnungspositionen).</td></tr>
<tr><td>$ riangle\hspace{-4pt}-$</td><td>Generalisierung / Vererbung</td><td>Unterklasse erbt von Basisklasse ("ist ein", z. B. Manager $ riangle$ Mitarbeiter).</td></tr>
</tbody>
</table>
</div>
<h3 style="color: #cbd5e1; margin-top: 20px;">2. UML-Sequenzdiagramm: Interaktions-Dynamik</h3>
<p style="color: #cbd5e1; line-height: 1.6;">
Stellt den zeitlichen Ablauf von Methodenaufrufen dar:<br>
- <strong>Lebenslinie (Lifeline):</strong> Gestrichelte vertikale Linie eines Objekts.<br>
- <strong>Aktivierungsbalken:</strong> Schmaler Balken auf der Lebenslinie zeigt, wann das Objekt aktiv Code ausführt.<br>
- <strong>Synchrone Nachricht:</strong> Durchgezogener Pfeil mit gefüllter Spitze $ ightarrow$ (Aufrufer blockiert und wartet).<br>
- <strong>Asynchrone Nachricht:</strong> Durchgezogener Pfeil mit offener Spitze $ ightharpoonup$ (Aufrufer läuft sofort weiter).<br>
- <strong>Antwortnachricht:</strong> Gestrichelter Pfeil $<--$.
</p>
</div>
<!-- Interaktives Tool falls vorhanden -->
<!-- Fragenpool -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin: 32px 0;">
<h2 style="color: #38bdf8; margin-top: 0; font-size: 1.4rem; display: flex; align-items: center; gap: 10px;">
<span>📝</span> Authentische IHK-Prüfungsaufgaben nach ZPA 2. Auflage (FIAE)
</h2>
<p style="color: #94a3b8; font-size: 0.9rem; margin-bottom: 20px;">
Bearbeiten Sie die Aufgaben und vergleichen Sie Ihre Antwort mit dem offiziellen Erwartungshorizont:
</p>
<div style="display: flex; flex-direction: column; gap: 20px;">
<div class="ihk-exam-task" data-title="UML-Klassendiagramm Sichtbarkeiten und Syntax" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">UML-Klassendiagramm Sichtbarkeiten und Syntax</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Für eine IT-Asset-Management-Software soll die Klasse "Server" modelliert werden. Attribute: hostname (String, öffentlich), ipAdresse (String, privat), id (Integer, geschützt). Methoden: booten() (kein Rückgabewert, öffentlich), ping(ip: String) (Rückgabewert boolean, öffentlich).
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Stellen Sie die Klasse als UML-Klassendiagramm nach DIN/OMG-Standard dar und beachten Sie die korrekten Sichtbarkeitssymbole.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="UML Assoziation Aggregation vs Komposition" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">UML Assoziation Aggregation vs Komposition</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einem Objektmodell stehen die Klassen "Firma", "Abteilung" und "Mitarbeiter" in Beziehung zueinander.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Unterscheiden Sie Aggregation und Komposition anhand von grafischer Darstellung und Lebensdauer-Abhängigkeit und ordnen Sie die Beziehungen der Klassen begründet zu.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="UML Sequenzdiagramm Lebenslinie und Nachrichten" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">UML Sequenzdiagramm Lebenslinie und Nachrichten</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Ein Authentifizierungsprozess zwischen Client, Webserver und Datenbank soll visualisiert werden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Erläutern Sie die Elemente eines UML-Sequenzdiagramms (Lebenslinie, Aktivierungsbalken, synchrone Nachricht, asynchrone Nachricht, Antwortnachricht).
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="UML-Aktivitätsdiagramm & Pseudocode Schleifenlogik" data-points="6" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">UML-Aktivitätsdiagramm & Pseudocode Schleifenlogik</strong>
<span class="ihk-badge ihk-badge-success">6 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Für einen automatisierten Backup-Prozess soll die Kontrolllogik modelliert werden: Es wird geprüft, ob ausreichend Speicherplatz frei ist. Wenn ja, werden Dateien kopiert und eine Erfolgsmeldung gesendet. Wenn nein, wird ein Fehler protokolliert und der Vorgang abgebrochen.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Vergleichen Sie die Modellierung von Kontrollstrukturen im UML-Aktivitätsdiagramm (Entscheidungsknoten / Raute, Guards) mit strukturiertem Pseudocode (WENN-DANN-SONST) und erläutern Sie die Funktion von Fork- und Join-Knoten (Synchronisationsbalken) bei parallelen Abläufen.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
</div>
</div>
<!-- Footer Navigation mit echten Buttons -->
<div class="mt-8 pt-6 border-t border-slate-700 flex justify-between items-center">
<a href="../01_software_architektur_und_design_patterns/index.html" class="ihk-btn ihk-btn-secondary font-semibold">← Vorheriges Modul</a>
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary">🏠 Kursübersicht</a>
<a href="../03_anforderungsanalyse_und_aufwandsschaetzung/index.html" class="ihk-btn ihk-btn-primary font-semibold">Nächstes Modul →</a>
</div>
</div>
<script src="../../../assets/courses_manifest.js"></script>
<script src="../../../assets/course_sidebar.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# FIAE Modul 03: Anforderungsanalyse & Aufwandsschätzung (LF 9)
**Prüfungsbereich:** LF 9 Anwendungsentwicklung
Lastenheft vs. Pflichtenheft, User Stories, Function-Point-Analyse & agiles Planning Poker.
## Relevante Prüfungsthemen nach dem offiziellen ZPA Nord-West Prüfungskatalog (2. Auflage)
- Fachqualifikationen für Fachinformatiker Anwendungsentwicklung (FIAE).
- Authentische Prüfungsfragen mit offiziellem IHK-Erwartungshorizont und Punkteverteilung.

View file

@ -0,0 +1,101 @@
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="icon" type="image/svg+xml" href="../../../assets/favicon.svg">
<meta charset="UTF-8">
<title>FIAE Modul 03: Anforderungsanalyse & Aufwandsschätzung (LF 9)</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
</head>
<body class="bg-slate-900 text-slate-100 font-sans p-6">
<div class="container mx-auto max-w-4xl">
<div class="flex justify-between items-center mb-6">
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary text-sm">← Zurück zum Dashboard</a>
<span class="ihk-badge ihk-badge-success">LF 9 Anwendungsentwicklung</span>
</div>
<h1 class="text-3xl font-extrabold text-sky-400 mb-2">FIAE Modul 03: Anforderungsanalyse & Aufwandsschätzung (LF 9)</h1>
<p class="text-slate-300 text-lg leading-relaxed mb-6">Lastenheft vs. Pflichtenheft, User Stories, Function-Point-Analyse & agiles Planning Poker.</p>
<!-- Fachtheorie & Wissen -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin-bottom: 24px;">
<h2 style="color: #38bdf8; margin-top: 0;">📋 Anforderungsanalyse, Lastenheft & Aufwandsschätzung (LF 9 AE)</h2>
<p style="color: #cbd5e1; line-height: 1.6;">
Die Brücke zwischen Fachabteilung und Entwicklung: Lastenheft vs. Pflichtenheft, User Stories nach INVEST-Kriterien und formale Schätzmethoden für Softwareprojekte (Function Point, COCOMO, Planning Poker).
</p>
<h3 style="color: #cbd5e1; margin-top: 20px;">1. Lastenheft (DIN 69901-5) vs. Pflichtenheft</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<table class="ihk-table">
<thead>
<tr><th>Kriterium</th><th>Lastenheft (Auftraggeber)</th><th>Pflichtenheft (Auftragnehmer)</th></tr>
</thead>
<tbody>
<tr><td><strong>Verfasser</strong></td><td>Auftraggeber / Kunde</td><td>Auftragnehmer / Entwicklerteam</td></tr>
<tr><td><strong>Kernfrage</strong></td><td><strong>WAS</strong> soll gelöst werden und <strong>WOFÜR</strong>?</td><td><strong>WIE</strong> und <strong>WOMIT</strong> wird die Lösung realisiert?</td></tr>
<tr><td><strong>Inhalt</strong></td><td>Ausgangslage, Zielsetzung, funktionale & nicht-funktionale Anforderungen, Rahmenbedingungen.</td><td>Detaillierte Fachkonzepte, GUI-Mockups, Datenmodelle, Schnittstellen, Testkriterien.</td></tr>
</tbody>
</table>
</div>
<h3 style="color: #cbd5e1; margin-top: 20px;">2. Aufwandsschätzverfahren im Vergleich</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<p style="color: #cbd5e1; line-height: 1.6; margin: 0;">
- <strong>Function-Point-Analyse (FPA):</strong> Schätzt die Softwaregröße unabhängig von der Programmiersprache anhand von 5 Funktionstypen: Interne Datenbestände (ILF), Externe Schnittstellendateien (EIF), Externe Eingaben (EI), Externe Ausgaben (EO) und Externe Abfragen (EQ).<br>
- <strong>Planning Poker (Agil / Scrum):</strong> Konsensbasiertes Schätzen mit Story Points (Fibonacci-Folge: 1, 2, 3, 5, 8, 13, 21). Vermeidet Anker-Effekte.<br>
- <strong>Drei-Punkt-Schätzung (PERT):</strong> Berechnet den Erwartungswert $E = \frac{O + 4M + P}{6}$ aus optimistischem ($O$), realistischstem ($M$) und pessimistischem ($P$) Aufwand.
</p>
</div>
</div>
<!-- Interaktives Tool falls vorhanden -->
<!-- Fragenpool -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin: 32px 0;">
<h2 style="color: #38bdf8; margin-top: 0; font-size: 1.4rem; display: flex; align-items: center; gap: 10px;">
<span>📝</span> Authentische IHK-Prüfungsaufgaben nach ZPA 2. Auflage (FIAE)
</h2>
<p style="color: #94a3b8; font-size: 0.9rem; margin-bottom: 20px;">
Bearbeiten Sie die Aufgaben und vergleichen Sie Ihre Antwort mit dem offiziellen Erwartungshorizont:
</p>
<div style="display: flex; flex-direction: column; gap: 20px;">
<div class="ihk-exam-task" data-title="Prozessanalyse Durchlauf- und Liegezeiten" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Prozessanalyse Durchlauf- und Liegezeiten</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einem Logistikunternehmen soll die Auftragsabwicklung von Bestelleingang bis Warenausgang analysiert und optimiert werden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Definieren Sie Durchlaufzeit, Bearbeitungszeit, Liegezeit und Rüstzeit. Erläutern Sie die Prozess-Zykluseffizienz (Process Cycle Efficiency PCE) und wie Flaschenhälse (Bottlenecks) identifiziert werden.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
</div>
</div>
<!-- Footer Navigation mit echten Buttons -->
<div class="mt-8 pt-6 border-t border-slate-700 flex justify-between items-center">
<a href="../02_uml_modellierung_und_softwareentwurf/index.html" class="ihk-btn ihk-btn-secondary font-semibold">← Vorheriges Modul</a>
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary">🏠 Kursübersicht</a>
<a href="../04_algorithmen_und_komplexitaet_o_notation/index.html" class="ihk-btn ihk-btn-primary font-semibold">Nächstes Modul →</a>
</div>
</div>
<script src="../../../assets/courses_manifest.js"></script>
<script src="../../../assets/course_sidebar.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# FIAE Modul 04: Algorithmen & Komplexität (O-Notation) (LF 10)
**Prüfungsbereich:** LF 10 Anwendungsentwicklung
Landau-Symbole O(1) bis O(n²), Divide-and-Conquer, Quicksort vs. Mergesort & Binäre Suche.
## Relevante Prüfungsthemen nach dem offiziellen ZPA Nord-West Prüfungskatalog (2. Auflage)
- Fachqualifikationen für Fachinformatiker Anwendungsentwicklung (FIAE).
- Authentische Prüfungsfragen mit offiziellem IHK-Erwartungshorizont und Punkteverteilung.

View file

@ -0,0 +1,124 @@
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="icon" type="image/svg+xml" href="../../../assets/favicon.svg">
<meta charset="UTF-8">
<title>FIAE Modul 04: Algorithmen & Komplexität (O-Notation) (LF 10)</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
</head>
<body class="bg-slate-900 text-slate-100 font-sans p-6">
<div class="container mx-auto max-w-4xl">
<div class="flex justify-between items-center mb-6">
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary text-sm">← Zurück zum Dashboard</a>
<span class="ihk-badge ihk-badge-success">LF 10 Anwendungsentwicklung</span>
</div>
<h1 class="text-3xl font-extrabold text-sky-400 mb-2">FIAE Modul 04: Algorithmen & Komplexität (O-Notation) (LF 10)</h1>
<p class="text-slate-300 text-lg leading-relaxed mb-6">Landau-Symbole O(1) bis O(n²), Divide-and-Conquer, Quicksort vs. Mergesort & Binäre Suche.</p>
<!-- Fachtheorie & Wissen -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin-bottom: 24px;">
<h2 style="color: #38bdf8; margin-top: 0;">⚡ Algorithmen & Komplexität (O-Notation) (LF 10 AE)</h2>
<p style="color: #cbd5e1; line-height: 1.6;">
Prüfungsbereich 2 (Entwicklung und Umsetzung von Algorithmen): Asymptotische Laufzeitkomplexität, Divide-and-Conquer, Sortier- und Suchverfahren.
</p>
<h3 style="color: #cbd5e1; margin-top: 20px;">1. Die Landau-Symbole (O-Notation) im Überblick</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<table class="ihk-table">
<thead>
<tr><th>Komplexität</th><th>Bezeichnung</th><th>Typisches Beispiel</th><th>Skalierbarkeit</th></tr>
</thead>
<tbody>
<tr><td>$O(1)$</td><td>Konstant</td><td>Array-Indexzugriff, HashMap <code>get(key)</code>, Push/Pop auf Stack</td><td>Optimal</td></tr>
<tr><td>$O(\log n)$</td><td>Logarithmisch</td><td>Binäre Suche im sortierten Array, Suchen im balancierten AVL-Baum</td><td>Exzellent</td></tr>
<tr><td>$O(n)$</td><td>Linear</td><td>Lineare Suche in Liste, Minimum/Maximum finden</td><td>Gut</td></tr>
<tr><td>$O(n \log n)$</td><td>Linear-logarithmisch</td><td>Mergesort, Quicksort (Average-Case), Heapsort</td><td>Sehr gut</td></tr>
<tr><td>$O(n^2)$</td><td>Quadratisch</td><td>Bubblesort, Insertionsort, verschachtelte Doppelschleifen</td><td>Schlecht bei großem $n$</td></tr>
<tr><td>$O(2^n)$</td><td>Exponentiell</td><td>Brute-Force Knapsack-Problem, naive rekursive Fibonacci-Zahlen</td><td>Inakzeptabel</td></tr>
</tbody>
</table>
</div>
<h3 style="color: #cbd5e1; margin-top: 20px;">2. Sortierverfahren: Quicksort vs. Mergesort</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<p style="color: #cbd5e1; line-height: 1.6; margin: 0;">
- <strong>Quicksort (In-Place):</strong> Wählt ein Pivot-Element, partitioniert das Array in kleinere und größere Werte und sortiert rekursiv. Average-Case $O(n \log n)$, Worst-Case $O(n^2)$ bei unglücklicher Pivot-Wahl.<br>
- <strong>Mergesort (Stabil):</strong> Teilt das Array wiederholt in zwei Hälften bis zur Elementlänge 1 und verschmilzt (Merge) sie sortiert. Garantiert immer $O(n \log n)$, benötigt aber $O(n)$ zusätzlichen Speicher.
</p>
</div>
</div>
<!-- Interaktives Tool falls vorhanden -->
<!-- Fragenpool -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin: 32px 0;">
<h2 style="color: #38bdf8; margin-top: 0; font-size: 1.4rem; display: flex; align-items: center; gap: 10px;">
<span>📝</span> Authentische IHK-Prüfungsaufgaben nach ZPA 2. Auflage (FIAE)
</h2>
<p style="color: #94a3b8; font-size: 0.9rem; margin-bottom: 20px;">
Bearbeiten Sie die Aufgaben und vergleichen Sie Ihre Antwort mit dem offiziellen Erwartungshorizont:
</p>
<div style="display: flex; flex-direction: column; gap: 20px;">
<div class="ihk-exam-task" data-title="Algorithmen-Komplexität O-Notation" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Algorithmen-Komplexität O-Notation</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Für eine stark wachsende Plattform müssen Algorithmen auf ihre Skalierbarkeit und Laufzeitkomplexität hin analysiert werden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Erklären Sie die Landau-Symbole (O-Notation) zur Abschätzung der Zeitkomplexität. Ordnen Sie folgende Komplexitätsklassen von der effizientesten zur ineffizientesten Laufzeit: O(n log n), O(1), O(n²), O(log n), O(n). Nennen Sie je ein typisches Code- oder Algorithmenbeispiel für O(1), O(log n) und O(n).
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="Sortieralgorithmen Quicksort vs Mergesort" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Sortieralgorithmen Quicksort vs Mergesort</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Ein Datenstrom von Millionen Datensätzen soll effizient sortiert werden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Vergleichen Sie Quicksort und Mergesort nach dem Divide-and-Conquer-Prinzip hinsichtlich Best-Case-, Average-Case- und Worst-Case-Laufzeit, Speicherplatzkomplexität und Stabilität.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
</div>
</div>
<!-- Footer Navigation mit echten Buttons -->
<div class="mt-8 pt-6 border-t border-slate-700 flex justify-between items-center">
<a href="../03_anforderungsanalyse_und_aufwandsschaetzung/index.html" class="ihk-btn ihk-btn-secondary font-semibold">← Vorheriges Modul</a>
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary">🏠 Kursübersicht</a>
<a href="../05_datenstrukturen_und_speichermanagement/index.html" class="ihk-btn ihk-btn-primary font-semibold">Nächstes Modul →</a>
</div>
</div>
<script src="../../../assets/courses_manifest.js"></script>
<script src="../../../assets/course_sidebar.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# FIAE Modul 05: Datenstrukturen & Speichermanagement (LF 10)
**Prüfungsbereich:** LF 10 Anwendungsentwicklung
Arrays, Verkettete Listen, Stacks (LIFO), Queues (FIFO), Binäre Suchbäume & Heap vs. Stack.
## Relevante Prüfungsthemen nach dem offiziellen ZPA Nord-West Prüfungskatalog (2. Auflage)
- Fachqualifikationen für Fachinformatiker Anwendungsentwicklung (FIAE).
- Authentische Prüfungsfragen mit offiziellem IHK-Erwartungshorizont und Punkteverteilung.

View file

@ -0,0 +1,100 @@
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="icon" type="image/svg+xml" href="../../../assets/favicon.svg">
<meta charset="UTF-8">
<title>FIAE Modul 05: Datenstrukturen & Speichermanagement (LF 10)</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
</head>
<body class="bg-slate-900 text-slate-100 font-sans p-6">
<div class="container mx-auto max-w-4xl">
<div class="flex justify-between items-center mb-6">
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary text-sm">← Zurück zum Dashboard</a>
<span class="ihk-badge ihk-badge-success">LF 10 Anwendungsentwicklung</span>
</div>
<h1 class="text-3xl font-extrabold text-sky-400 mb-2">FIAE Modul 05: Datenstrukturen & Speichermanagement (LF 10)</h1>
<p class="text-slate-300 text-lg leading-relaxed mb-6">Arrays, Verkettete Listen, Stacks (LIFO), Queues (FIFO), Binäre Suchbäume & Heap vs. Stack.</p>
<!-- Fachtheorie & Wissen -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin-bottom: 24px;">
<h2 style="color: #38bdf8; margin-top: 0;">📦 Datenstrukturen & Speichermanagement (LF 10 AE)</h2>
<p style="color: #cbd5e1; line-height: 1.6;">
Die richtige Wahl der Datenstruktur entscheidet über Speicherbedarf und Performance: Statische Arrays, einfach/doppelt verkettete Listen, Stacks, Queues, Binäre Suchbäume und Hash-Tabellen.
</p>
<h3 style="color: #cbd5e1; margin-top: 20px;">1. Grundlegende Datenstrukturen im Vergleich</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<table class="ihk-table">
<thead>
<tr><th>Datenstruktur</th><th>Zugriff per Index</th><th>Einfügen am Anfang</th><th>Einfügen am Ende</th><th>Prinzip / Besonderheit</th></tr>
</thead>
<tbody>
<tr><td><strong>Array</strong></td><td>$O(1)$</td><td>$O(n)$ (Verschieben)</td><td>$O(1)$ (wenn Platz)</td><td>Fester, zusammenhängender Speicherblock</td></tr>
<tr><td><strong>Verkettete Liste</strong></td><td>$O(n)$ (Traversieren)</td><td>$O(1)$ (Pointer umhängen)</td><td>$O(1)$ mit Tail-Pointer</td><td>Knoten über Referenzen verknüpft</td></tr>
<tr><td><strong>Stack</strong></td><td>-</td><td>$O(1)$ (Push)</td><td>-</td><td><strong>LIFO</strong> (Last In, First Out) - Aufruf-Stack, Undo-Funktion</td></tr>
<tr><td><strong>Queue</strong></td><td>-</td><td>$O(1)$ (Enqueue)</td><td>$O(1)$ (Dequeue)</td><td><strong>FIFO</strong> (First In, First Out) - Druckwarteschlange</td></tr>
<tr><td><strong>Hash-Tabelle</strong></td><td>$O(1)$ (per Key)</td><td>$O(1)$</td><td>$O(1)$</td><td>Key $\rightarrow$ Hashfunktion $\rightarrow$ Bucket. Kollisionen: Chaining oder Open Addressing</td></tr>
</tbody>
</table>
</div>
<h3 style="color: #cbd5e1; margin-top: 20px;">2. Stack vs. Heap im Arbeitsspeicher</h3>
<p style="color: #cbd5e1; line-height: 1.6;">
- <strong>Stack (Stapelspeicher):</strong> Schneller, automatischer Speicher für lokale primitive Variablen und Methodenaufrufe (Stack Frames). Feste Größe, führt bei endloser Rekursion zum <em>StackOverflowError</em>.<br>
- <strong>Heap (Haufenspeicher):</strong> Großer, dynamischer Speicherbereich für Objekte und Instanzen. Verwaltung erfolgt durch den Garbage Collector (z. B. in Java, C#, Python) oder manuelle Freigabe (C/C++ mit <code>malloc/free</code>).
</p>
</div>
<!-- Interaktives Tool falls vorhanden -->
<!-- Fragenpool -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin: 32px 0;">
<h2 style="color: #38bdf8; margin-top: 0; font-size: 1.4rem; display: flex; align-items: center; gap: 10px;">
<span>📝</span> Authentische IHK-Prüfungsaufgaben nach ZPA 2. Auflage (FIAE)
</h2>
<p style="color: #94a3b8; font-size: 0.9rem; margin-bottom: 20px;">
Bearbeiten Sie die Aufgaben und vergleichen Sie Ihre Antwort mit dem offiziellen Erwartungshorizont:
</p>
<div style="display: flex; flex-direction: column; gap: 20px;">
<div class="ihk-exam-task" data-title="Algorithmen-Komplexität O-Notation" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Algorithmen-Komplexität O-Notation</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Für eine stark wachsende Plattform müssen Algorithmen auf ihre Skalierbarkeit und Laufzeitkomplexität hin analysiert werden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Erklären Sie die Landau-Symbole (O-Notation) zur Abschätzung der Zeitkomplexität. Ordnen Sie folgende Komplexitätsklassen von der effizientesten zur ineffizientesten Laufzeit: O(n log n), O(1), O(n²), O(log n), O(n). Nennen Sie je ein typisches Code- oder Algorithmenbeispiel für O(1), O(log n) und O(n).
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
</div>
</div>
<!-- Footer Navigation mit echten Buttons -->
<div class="mt-8 pt-6 border-t border-slate-700 flex justify-between items-center">
<a href="../04_algorithmen_und_komplexitaet_o_notation/index.html" class="ihk-btn ihk-btn-secondary font-semibold">← Vorheriges Modul</a>
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary">🏠 Kursübersicht</a>
<a href="../06_objektorientierte_programmierung_solid/index.html" class="ihk-btn ihk-btn-primary font-semibold">Nächstes Modul →</a>
</div>
</div>
<script src="../../../assets/courses_manifest.js"></script>
<script src="../../../assets/course_sidebar.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# FIAE Modul 06: OOP & SOLID-Prinzipien (LF 10)
**Prüfungsbereich:** LF 10 Anwendungsentwicklung
Kapselung, Vererbung, Polymorphie, SOLID (SRP bis DIP) & Clean-Code-Prinzipien (DRY, KISS).
## Relevante Prüfungsthemen nach dem offiziellen ZPA Nord-West Prüfungskatalog (2. Auflage)
- Fachqualifikationen für Fachinformatiker Anwendungsentwicklung (FIAE).
- Authentische Prüfungsfragen mit offiziellem IHK-Erwartungshorizont und Punkteverteilung.

View file

@ -0,0 +1,99 @@
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="icon" type="image/svg+xml" href="../../../assets/favicon.svg">
<meta charset="UTF-8">
<title>FIAE Modul 06: OOP & SOLID-Prinzipien (LF 10)</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
</head>
<body class="bg-slate-900 text-slate-100 font-sans p-6">
<div class="container mx-auto max-w-4xl">
<div class="flex justify-between items-center mb-6">
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary text-sm">← Zurück zum Dashboard</a>
<span class="ihk-badge ihk-badge-success">LF 10 Anwendungsentwicklung</span>
</div>
<h1 class="text-3xl font-extrabold text-sky-400 mb-2">FIAE Modul 06: OOP & SOLID-Prinzipien (LF 10)</h1>
<p class="text-slate-300 text-lg leading-relaxed mb-6">Kapselung, Vererbung, Polymorphie, SOLID (SRP bis DIP) & Clean-Code-Prinzipien (DRY, KISS).</p>
<!-- Fachtheorie & Wissen -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin-bottom: 24px;">
<h2 style="color: #38bdf8; margin-top: 0;">💎 Objektorientierte Programmierung & SOLID (LF 10 AE)</h2>
<p style="color: #cbd5e1; line-height: 1.6;">
Wartbarer, lesbarer und erweiterbarer Code: Die 4 Grundpfeiler der OOP, die 5 SOLID-Prinzipien und Clean-Code-Regeln (DRY, KISS, YAGNI).
</p>
<h3 style="color: #cbd5e1; margin-top: 20px;">1. Die 4 Säulen der Objektorientierung</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<ul style="color: #cbd5e1; line-height: 1.8; margin: 0; padding-left: 20px;">
<li><strong>Kapselung (Encapsulation):</strong> Verbergen interner Zustände und Datenfelder vor unbefugtem Zugriff von außen (Private Attribute, Public Getter/Setter).</li>
<li><strong>Vererbung (Inheritance):</strong> Ableitung neuer Klassen aus bestehenden Basisklassen zur Wiederverwendung gemeinsamen Codes (<code>is-a</code> Beziehung).</li>
<li><strong>Polymorphie (Polymorphism):</strong> Vielgestaltigkeit. Methodenaufrufe binden zur Laufzeit dynamisch an die konkrete Implementierung des abgeleiteten Objekts (Dynamic Dispatch).</li>
<li><strong>Abstraktion (Abstraction):</strong> Reduktion komplexer Realitäten auf wesentliche Schnittstellen über <code>abstract class</code> und <code>interface</code>.</li>
</ul>
</div>
<h3 style="color: #cbd5e1; margin-top: 20px;">2. Die 5 SOLID-Prinzipien (Robert C. Martin)</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<p style="color: #cbd5e1; line-height: 1.6; margin: 0;">
- <strong>S - Single Responsibility Principle (SRP):</strong> Eine Klasse darf nur genau eine einzige Verantwortlichkeit und nur einen einzigen Grund zur Änderung haben.<br>
- <strong>O - Open/Closed Principle (OCP):</strong> Klassen müssen offen für Erweiterungen sein, aber geschlossen für Modifikationen.<br>
- <strong>L - Liskov Substitution Principle (LSP):</strong> Subtypen müssen sich nahtlos anstelle ihres Basistyps verhalten können, ohne das Programm zu brechen.<br>
- <strong>I - Interface Segregation Principle (ISP):</strong> Viele schlanke, client-spezifische Interfaces statt eines überladenen Monster-Interfaces.<br>
- <strong>D - Dependency Inversion Principle (DIP):</strong> Hohe Module dürfen nicht von niedrigen Modulen abhängen; beide müssen von Abstraktionen abhängen.
</p>
</div>
</div>
<!-- Interaktives Tool falls vorhanden -->
<!-- Fragenpool -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin: 32px 0;">
<h2 style="color: #38bdf8; margin-top: 0; font-size: 1.4rem; display: flex; align-items: center; gap: 10px;">
<span>📝</span> Authentische IHK-Prüfungsaufgaben nach ZPA 2. Auflage (FIAE)
</h2>
<p style="color: #94a3b8; font-size: 0.9rem; margin-bottom: 20px;">
Bearbeiten Sie die Aufgaben und vergleichen Sie Ihre Antwort mit dem offiziellen Erwartungshorizont:
</p>
<div style="display: flex; flex-direction: column; gap: 20px;">
<div class="ihk-exam-task" data-title="SOLID-Prinzipien der OOP" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">SOLID-Prinzipien der OOP</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Ein Software-Projekt leidet unter Spaghetti-Code und mangelnder Erweiterbarkeit.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Benennen und erläutern Sie die 5 SOLID-Prinzipien der objektorientierten Programmierung. Gehen Sie vertieft auf das Single Responsibility Principle (SRP) und das Dependency Inversion Principle (DIP) ein.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
</div>
</div>
<!-- Footer Navigation mit echten Buttons -->
<div class="mt-8 pt-6 border-t border-slate-700 flex justify-between items-center">
<a href="../05_datenstrukturen_und_speichermanagement/index.html" class="ihk-btn ihk-btn-secondary font-semibold">← Vorheriges Modul</a>
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary">🏠 Kursübersicht</a>
<a href="../07_enterprise_sql_und_datenbank_modellierung/index.html" class="ihk-btn ihk-btn-primary font-semibold">Nächstes Modul →</a>
</div>
</div>
<script src="../../../assets/courses_manifest.js"></script>
<script src="../../../assets/course_sidebar.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# FIAE Modul 07: Enterprise SQL & Datenbank-Modellierung (LF 11)
**Prüfungsbereich:** LF 11 Anwendungsentwicklung
1NF bis 3NF Normalisierung, Multi-Table JOINs, Window Functions, ACID Transaktionen & ORM.
## Relevante Prüfungsthemen nach dem offiziellen ZPA Nord-West Prüfungskatalog (2. Auflage)
- Fachqualifikationen für Fachinformatiker Anwendungsentwicklung (FIAE).
- Authentische Prüfungsfragen mit offiziellem IHK-Erwartungshorizont und Punkteverteilung.

View file

@ -0,0 +1,186 @@
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="icon" type="image/svg+xml" href="../../../assets/favicon.svg">
<meta charset="UTF-8">
<title>FIAE Modul 07: Enterprise SQL & Datenbank-Modellierung (LF 11)</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
</head>
<body class="bg-slate-900 text-slate-100 font-sans p-6">
<div class="container mx-auto max-w-4xl">
<div class="flex justify-between items-center mb-6">
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary text-sm">← Zurück zum Dashboard</a>
<span class="ihk-badge ihk-badge-success">LF 11 Anwendungsentwicklung</span>
</div>
<h1 class="text-3xl font-extrabold text-sky-400 mb-2">FIAE Modul 07: Enterprise SQL & Datenbank-Modellierung (LF 11)</h1>
<p class="text-slate-300 text-lg leading-relaxed mb-6">1NF bis 3NF Normalisierung, Multi-Table JOINs, Window Functions, ACID Transaktionen & ORM.</p>
<!-- Fachtheorie & Wissen -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin-bottom: 24px;">
<h2 style="color: #38bdf8; margin-top: 0;">🗄️ Enterprise SQL & Datenbank-Modellierung (LF 11 AE)</h2>
<p style="color: #cbd5e1; line-height: 1.6;">
Datenpersistenz für Anwendungsentwickler: Relationale Modellierung (ERM, Chen/Krähenfuß), Normalisierung bis zur 3. Normalform, DDL/DML/DCL Abfragen, Indizes, Transaktionen (ACID) und ORM-Frameworks.
</p>
<h3 style="color: #cbd5e1; margin-top: 20px;">1. Normalisierung: 1NF bis 3NF</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<ul style="color: #cbd5e1; line-height: 1.8; margin: 0; padding-left: 20px;">
<li><strong>1. Normalform (1NF):</strong> Alle Attribute sind <em>atomar</em> (nicht weiter zerlegbar) und frei von Wiederholungsgruppen (z. B. Name aufteilen in Vorname und Nachname; keine kommagetrennten Telefonnummern).</li>
<li><strong>2. Normalform (2NF):</strong> Befindet sich in 1NF und jedes Nichtschlüssel-Attribut ist <em>voll funktional abhängig vom gesamten Primärschlüssel</em> (wichtig bei zusammengesetzten Primärschlüsseln!).</li>
<li><strong>3. Normalform (3NF):</strong> Befindet sich in 2NF und kein Nichtschlüssel-Attribut ist <em>transitiv abhängig</em> von einem anderen Nichtschlüssel-Attribut (z. B. Ort ist abhängig von PLZ, daher Auslagerung in separate Tabelle).</li>
</ul>
</div>
<h3 style="color: #cbd5e1; margin-top: 20px;">2. Komplexe SQL-Queries & ORM-Mapping</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<pre style="background: #1e293b; padding: 12px; border-radius: 6px; color: #38bdf8; overflow-x: auto; margin: 0;">
-- Aggregation mit HAVING und Datumsberechnung nach ZPA-Standard
SELECT k.kunde_id, k.firmenname, COUNT(b.bestell_nr) AS anzahl_bestellungen,
SUM(b.gesamtbetrag) AS umsatz,
DATEDIFF(NOW(), MAX(b.bestelldatum)) AS tage_seit_letzter_order
FROM kunden k
JOIN bestellungen b ON k.kunde_id = b.kunde_id
WHERE b.status = 'COMPLETED'
GROUP BY k.kunde_id, k.firmenname
HAVING SUM(b.gesamtbetrag) > 10000;
</pre>
</div>
</div>
<!-- Interaktives Tool falls vorhanden -->
<!-- Fragenpool -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin: 32px 0;">
<h2 style="color: #38bdf8; margin-top: 0; font-size: 1.4rem; display: flex; align-items: center; gap: 10px;">
<span>📝</span> Authentische IHK-Prüfungsaufgaben nach ZPA 2. Auflage (FIAE)
</h2>
<p style="color: #94a3b8; font-size: 0.9rem; margin-bottom: 20px;">
Bearbeiten Sie die Aufgaben und vergleichen Sie Ihre Antwort mit dem offiziellen Erwartungshorizont:
</p>
<div style="display: flex; flex-direction: column; gap: 20px;">
<div class="ihk-exam-task" data-title="SQL DDL CREATE TABLE mit Constraints" data-points="10" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">SQL DDL CREATE TABLE mit Constraints</strong>
<span class="ihk-badge ihk-badge-success">10 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Für eine Ticket-Verwaltung soll die Tabelle "ticket" per SQL angelegt werden: id (Ganzzahl, Primärschlüssel mit Autoinkrement), titel (Text, max. 100 Zeichen, Pflichtfeld), status (Text, Standardwert "OFFEN"), prioritaet (Ganzzahl, Werte nur von 1 bis 5 erlaubt), ersteller_id (Ganzzahl, Fremdschlüssel auf benutzer.id mit Kaskadierung beim Löschen).
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Schreiben Sie das syntaktisch korrekte SQL-Statement nach ANSI/ISO-Standard.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="SQL DML Aggregation und GROUP BY mit HAVING" data-points="10" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">SQL DML Aggregation und GROUP BY mit HAVING</strong>
<span class="ihk-badge ihk-badge-success">10 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Gegeben sind die Tabellen kunden (id, name, stadt) und bestellungen (id, kunde_id, betrag, datum).
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Formulieren Sie eine SQL-Abfrage, die den Kundennamen und die Gesamtsumme aller Bestellungen für jeden Kunden ausgibt, dessen Gesamtbestellwert 10.000 EUR überschreitet. Das Ergebnis soll absteigend nach der Summe sortiert sein.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="SQL JOIN-Typen INNER vs LEFT vs FULL" data-points="6" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">SQL JOIN-Typen INNER vs LEFT vs FULL</strong>
<span class="ihk-badge ihk-badge-success">6 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einer Datenbank existieren mitarbeiter (id, name, abt_id) und abteilungen (id, bezeichnung). Einige Mitarbeiter haben keine Abteilung, und einige Abteilungen haben keine Mitarbeiter.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Erläutern Sie den Unterschied im Abfrageergebnis zwischen INNER JOIN und LEFT OUTER JOIN bezüglich der Ergebniszeilen.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="SQL Subqueries mit IN und EXISTS" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">SQL Subqueries mit IN und EXISTS</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Gegeben sind die Tabellen kunden (id, name, land) und bestellungen (id, kunde_id, summe).
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Formulieren Sie zwei SQL-Abfragen, die alle Kundennamen ausgeben, die mindestens eine Bestellung getätigt haben: Einmal unter Verwendung einer Subquery mit IN und einmal mit EXISTS.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="SQL Datums- und Zeitfunktionen (DATEDIFF & DATEADD)" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">SQL Datums- und Zeitfunktionen (DATEDIFF & DATEADD)</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einem Support-System (Tabelle tickets mit id, erstelldatum, schliessdatum) soll die Bearbeitungsdauer analysiert werden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Formulieren Sie eine SQL-Abfrage nach ZPA-Standard, die für alle im laufenden Jahr geschlossenen Tickets die Ticket-ID und die Bearbeitungsdauer in Tagen berechnet (unter Verwendung von DATEDIFF) und nur Tickets anzeigt, deren Bearbeitung länger als 14 Tage gedauert hat.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
</div>
</div>
<!-- Footer Navigation mit echten Buttons -->
<div class="mt-8 pt-6 border-t border-slate-700 flex justify-between items-center">
<a href="../06_objektorientierte_programmierung_solid/index.html" class="ihk-btn ihk-btn-secondary font-semibold">← Vorheriges Modul</a>
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary">🏠 Kursübersicht</a>
<a href="../08_api_design_rest_json_und_graphql/index.html" class="ihk-btn ihk-btn-primary font-semibold">Nächstes Modul →</a>
</div>
</div>
<script src="../../../assets/courses_manifest.js"></script>
<script src="../../../assets/course_sidebar.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# FIAE Modul 08: API-Design (REST, JSON, GraphQL) (LF 11)
**Prüfungsbereich:** LF 11 Anwendungsentwicklung
REST-Prinzipien, HTTP-Verben, Statuscodes, JWT/OAuth2 & Vergleich REST vs. GraphQL.
## Relevante Prüfungsthemen nach dem offiziellen ZPA Nord-West Prüfungskatalog (2. Auflage)
- Fachqualifikationen für Fachinformatiker Anwendungsentwicklung (FIAE).
- Authentische Prüfungsfragen mit offiziellem IHK-Erwartungshorizont und Punkteverteilung.

View file

@ -0,0 +1,101 @@
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="icon" type="image/svg+xml" href="../../../assets/favicon.svg">
<meta charset="UTF-8">
<title>FIAE Modul 08: API-Design (REST, JSON, GraphQL) (LF 11)</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
</head>
<body class="bg-slate-900 text-slate-100 font-sans p-6">
<div class="container mx-auto max-w-4xl">
<div class="flex justify-between items-center mb-6">
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary text-sm">← Zurück zum Dashboard</a>
<span class="ihk-badge ihk-badge-success">LF 11 Anwendungsentwicklung</span>
</div>
<h1 class="text-3xl font-extrabold text-sky-400 mb-2">FIAE Modul 08: API-Design (REST, JSON, GraphQL) (LF 11)</h1>
<p class="text-slate-300 text-lg leading-relaxed mb-6">REST-Prinzipien, HTTP-Verben, Statuscodes, JWT/OAuth2 & Vergleich REST vs. GraphQL.</p>
<!-- Fachtheorie & Wissen -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin-bottom: 24px;">
<h2 style="color: #38bdf8; margin-top: 0;">🌐 API-Design: REST, JSON & GraphQL (LF 11 AE)</h2>
<p style="color: #cbd5e1; line-height: 1.6;">
Moderne Schnittstellenarchitekturen: RESTful Principles, HTTP-Verben, Idempotenz, Statuscodes, Authentifizierung via JWT/OAuth2 und GraphQL-Konzepte.
</p>
<h3 style="color: #cbd5e1; margin-top: 20px;">1. RESTful Best Practices</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<p style="color: #cbd5e1; line-height: 1.6; margin: 0;">
- <strong>Ressourcen-orientierte URLs:</strong> Nomen im Plural (z. B. <code>/api/v1/customers/42/orders</code>). Keine Verben in der URL!<br>
- <strong>HTTP-Verben:</strong> <code>GET</code> (Lesen), <code>POST</code> (Erstellen), <code>PUT</code> (Vollständiges Ersetzen), <code>PATCH</code> (Teilweises Aktualisieren), <code>DELETE</code> (Löschen).<br>
- <strong>Zustandslosigkeit (Statelessness):</strong> Jeder Request muss alle nötigen Informationen zur Autorisierung enthalten (z. B. Bearer Token im <code>Authorization</code> Header).
</p>
</div>
<h3 style="color: #cbd5e1; margin-top: 20px;">2. REST vs. GraphQL</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<table class="ihk-table">
<thead>
<tr><th>Kriterium</th><th>REST API</th><th>GraphQL API</th></tr>
</thead>
<tbody>
<tr><td><strong>Endpunkte</strong></td><td>Viele feste Endpunkte je Ressource (z. B. <code>/users</code>, <code>/orders</code>)</td><td>Ein einziger universeller HTTP-Endpunkt (z. B. <code>/graphql</code> via POST)</td></tr>
<tr><td><strong>Datenabruf</strong></td><td>Gefahr von Over-Fetching (zu viele Daten) oder Under-Fetching (mehrere Requests)</td><td>Client spezifiziert exakt die benötigten Felder (kein Over-/Under-Fetching)</td></tr>
<tr><td><strong>Caching</strong></td><td>Sehr einfach über Standard-HTTP-Header (ETag, Cache-Control)</td><td>Komplexer, da POST-Anfragen nicht nativ gecacht werden</td></tr>
</tbody>
</table>
</div>
</div>
<!-- Interaktives Tool falls vorhanden -->
<!-- Fragenpool -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin: 32px 0;">
<h2 style="color: #38bdf8; margin-top: 0; font-size: 1.4rem; display: flex; align-items: center; gap: 10px;">
<span>📝</span> Authentische IHK-Prüfungsaufgaben nach ZPA 2. Auflage (FIAE)
</h2>
<p style="color: #94a3b8; font-size: 0.9rem; margin-bottom: 20px;">
Bearbeiten Sie die Aufgaben und vergleichen Sie Ihre Antwort mit dem offiziellen Erwartungshorizont:
</p>
<div style="display: flex; flex-direction: column; gap: 20px;">
<div class="ihk-exam-task" data-title="RESTful API Design & HTTP-Statuscodes" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">RESTful API Design & HTTP-Statuscodes</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Für eine Smartphone-App wird ein Backend mit REST-Schnittstellen entworfen.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Definieren Sie die 4 zentralen HTTP-Verben (GET, POST, PUT, DELETE) und deren Idempotenz. Nennen und erläutern Sie je zwei typische HTTP-Statuscodes der Kategorien 2xx, 4xx und 5xx.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
</div>
</div>
<!-- Footer Navigation mit echten Buttons -->
<div class="mt-8 pt-6 border-t border-slate-700 flex justify-between items-center">
<a href="../07_enterprise_sql_und_datenbank_modellierung/index.html" class="ihk-btn ihk-btn-secondary font-semibold">← Vorheriges Modul</a>
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary">🏠 Kursübersicht</a>
<a href="../09_software_testing_und_ci_cd_pipelines/index.html" class="ihk-btn ihk-btn-primary font-semibold">Nächstes Modul →</a>
</div>
</div>
<script src="../../../assets/courses_manifest.js"></script>
<script src="../../../assets/course_sidebar.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# FIAE Modul 09: Software-Testing & CI/CD Pipelines (LF 12)
**Prüfungsbereich:** LF 12 Anwendungsentwicklung
Testpyramide, TDD (Red-Green-Refactor), Mocking, Code-Coverage & CI/CD Pipelines.
## Relevante Prüfungsthemen nach dem offiziellen ZPA Nord-West Prüfungskatalog (2. Auflage)
- Fachqualifikationen für Fachinformatiker Anwendungsentwicklung (FIAE).
- Authentische Prüfungsfragen mit offiziellem IHK-Erwartungshorizont und Punkteverteilung.

View file

@ -0,0 +1,93 @@
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="icon" type="image/svg+xml" href="../../../assets/favicon.svg">
<meta charset="UTF-8">
<title>FIAE Modul 09: Software-Testing & CI/CD Pipelines (LF 12)</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
</head>
<body class="bg-slate-900 text-slate-100 font-sans p-6">
<div class="container mx-auto max-w-4xl">
<div class="flex justify-between items-center mb-6">
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary text-sm">← Zurück zum Dashboard</a>
<span class="ihk-badge ihk-badge-success">LF 12 Anwendungsentwicklung</span>
</div>
<h1 class="text-3xl font-extrabold text-sky-400 mb-2">FIAE Modul 09: Software-Testing & CI/CD Pipelines (LF 12)</h1>
<p class="text-slate-300 text-lg leading-relaxed mb-6">Testpyramide, TDD (Red-Green-Refactor), Mocking, Code-Coverage & CI/CD Pipelines.</p>
<!-- Fachtheorie & Wissen -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin-bottom: 24px;">
<h2 style="color: #38bdf8; margin-top: 0;">🧪 Software-Testing & CI/CD-Pipelines (LF 12 AE)</h2>
<p style="color: #cbd5e1; line-height: 1.6;">
Qualitätssicherung im Software-Lebenszyklus: Teststufen nach ISO 29119, Test-Driven Development (TDD), Mocking-Frameworks, Code Coverage und Continuous Integration / Continuous Deployment (CI/CD).
</p>
<h3 style="color: #cbd5e1; margin-top: 20px;">1. Die Testpyramide nach Mike Cohn</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<ul style="color: #cbd5e1; line-height: 1.8; margin: 0; padding-left: 20px;">
<li><strong>Unit-Tests (ca. 70 %):</strong> Testen einzelne Methoden und Funktionen isoliert. Externe Abhängigkeiten (DB, Netzwerk) werden durch Mocks/Stubs ersetzt. Ausführung in Millisekunden.</li>
<li><strong>Integrationstests (ca. 20 %):</strong> Testen das Zusammenspiel mehrerer Komponenten (z. B. Service greift auf echte Test-Datenbank zu oder sendet HTTP-Request).</li>
<li><strong>End-to-End (E2E) / UI-Tests (ca. 10 %):</strong> Simulieren reale Benutzerinteraktionen im Browser/Client. Langsam, teuer, testen aber den vollständigen Geschäftsprozess.</li>
</ul>
</div>
<h3 style="color: #cbd5e1; margin-top: 20px;">2. CI/CD-Pipelines: Automatisierter Build & Release</h3>
<p style="color: #cbd5e1; line-height: 1.6;">
- <strong>Continuous Integration (CI):</strong> Entwickler mergen Code täglich in den Main-Branch. Automatische Trigger starten Build, Linter, statische Code-Analyse (SonarQube) und alle Unit-/Integrationstests.<br>
- <strong>Continuous Delivery / Deployment (CD):</strong> Erfolgreich getestete Builds werden automatisch paketiert (z. B. Docker-Image) und auf Staging- oder Produktivumgebungen ausgerollt.
</p>
</div>
<!-- Interaktives Tool falls vorhanden -->
<!-- Fragenpool -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin: 32px 0;">
<h2 style="color: #38bdf8; margin-top: 0; font-size: 1.4rem; display: flex; align-items: center; gap: 10px;">
<span>📝</span> Authentische IHK-Prüfungsaufgaben nach ZPA 2. Auflage (FIAE)
</h2>
<p style="color: #94a3b8; font-size: 0.9rem; margin-bottom: 20px;">
Bearbeiten Sie die Aufgaben und vergleichen Sie Ihre Antwort mit dem offiziellen Erwartungshorizont:
</p>
<div style="display: flex; flex-direction: column; gap: 20px;">
<div class="ihk-exam-task" data-title="Test-Driven Development TDD & Testpyramide" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Test-Driven Development TDD & Testpyramide</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einem agilen Scrum-Team soll die Softwarequalität durch automatisierte Tests gesichert werden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Beschreiben Sie den TDD-Zyklus (Red-Green-Refactor). Erläutern Sie die Testpyramide (Unit-Tests, Integrationstests, End-to-End-Tests) und warum Unit-Tests das Fundament bilden.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
</div>
</div>
<!-- Footer Navigation mit echten Buttons -->
<div class="mt-8 pt-6 border-t border-slate-700 flex justify-between items-center">
<a href="../08_api_design_rest_json_und_graphql/index.html" class="ihk-btn ihk-btn-secondary font-semibold">← Vorheriges Modul</a>
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary">🏠 Kursübersicht</a>
<a href="../10_wiso_arbeitsrecht_und_lizenzmodelle/index.html" class="ihk-btn ihk-btn-primary font-semibold">Nächstes Modul →</a>
</div>
</div>
<script src="../../../assets/courses_manifest.js"></script>
<script src="../../../assets/course_sidebar.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# FIAE Modul 10: WiSo, Arbeitsrecht & Lizenzmodelle (WiSo)
**Prüfungsbereich:** Prüfungsbereich 3 (WiSo)
Dienst- vs. Werkvertrag bei Software, Urheberrecht (§ 69a UrhG) & Open Source Lizenzen (MIT vs. GPL).
## Relevante Prüfungsthemen nach dem offiziellen ZPA Nord-West Prüfungskatalog (2. Auflage)
- Fachqualifikationen für Fachinformatiker Anwendungsentwicklung (FIAE).
- Authentische Prüfungsfragen mit offiziellem IHK-Erwartungshorizont und Punkteverteilung.

View file

@ -0,0 +1,80 @@
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="icon" type="image/svg+xml" href="../../../assets/favicon.svg">
<meta charset="UTF-8">
<title>FIAE Modul 10: WiSo, Arbeitsrecht & Lizenzmodelle (WiSo)</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
</head>
<body class="bg-slate-900 text-slate-100 font-sans p-6">
<div class="container mx-auto max-w-4xl">
<div class="flex justify-between items-center mb-6">
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary text-sm">← Zurück zum Dashboard</a>
<span class="ihk-badge ihk-badge-success">Prüfungsbereich 3 (WiSo)</span>
</div>
<h1 class="text-3xl font-extrabold text-sky-400 mb-2">FIAE Modul 10: WiSo, Arbeitsrecht & Lizenzmodelle (WiSo)</h1>
<p class="text-slate-300 text-lg leading-relaxed mb-6">Dienst- vs. Werkvertrag bei Software, Urheberrecht (§ 69a UrhG) & Open Source Lizenzen (MIT vs. GPL).</p>
<!-- Fachtheorie & Wissen -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin-bottom: 24px;">
<h2 style="color: #38bdf8; margin-top: 0;">⚖️ WiSo, Arbeitsrecht & Software-Lizenzmodelle (FIAE)</h2>
<p style="color: #cbd5e1; line-height: 1.6;">
Wirtschafts- und Sozialkunde mit Fokus auf Softwareentwicklung: Vertragsarten (Werkvertrag vs. Dienstvertrag), Urheberrecht an Computerprogrammen (§ 69a UrhG) und Open-Source-Lizenzen.
</p>
<h3 style="color: #cbd5e1; margin-top: 20px;">1. Dienstvertrag (§ 611 BGB) vs. Werkvertrag (§ 631 BGB)</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<table class="ihk-table">
<thead>
<tr><th>Kriterium</th><th>Dienstvertrag (z. B. IT-Consulting, Support)</th><th>Werkvertrag (z. B. Individualsoftware)</th></tr>
</thead>
<tbody>
<tr><td><strong>Schuldgegenstand</strong></td><td>Bloßes Tätigwerden / Bemühen nach bestem Wissen.</td><td><strong>Herbeiführung eines konkreten Erfolgs</strong> (fertiges Softwarewerk!).</td></tr>
<tr><td><strong>Vergütung & Abnahme</strong></td><td>Nach Zeitaufwand (Stundensatz). Keine förmliche Abnahme nötig.</td><td>Erst nach erfolgreicher <strong>Abnahme</strong> des mangelfreien Werks fällig!</td></tr>
<tr><td><strong>Gewährleistung</strong></td><td>Keine Gewährleistung für den Erfolg, nur bei Pflichtverletzung.</td><td>Gesetzliche Gewährleistung für Sach- und Rechtsmängel (Nacherfüllung, Minderung, Rücktritt).</td></tr>
</tbody>
</table>
</div>
<h3 style="color: #cbd5e1; margin-top: 20px;">2. Softwarelizenzen: Open Source vs. Proprietär</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<p style="color: #cbd5e1; line-height: 1.6; margin: 0;">
- <strong>Permissive Lizenzen (MIT / Apache 2.0 / BSD):</strong> Erlauben uneingeschränkte Nutzung, Modifikation und Einbindung in proprietäre, kommerzielle Software ohne Offenlegungspflicht des eigenen Quellcodes.<br>
- <strong>Copyleft-Lizenzen (GPL v2 / GPL v3):</strong> Verpflichten dazu, dass jedes abgeleitete Werk oder Programm, das GPL-Code bindet, ebenfalls unter denselben GPL-Lizenzbedingungen als Open Source veröffentlicht werden muss ("virale Wirkung").
</p>
</div>
</div>
<!-- Interaktives Tool falls vorhanden -->
<!-- Fragenpool -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin: 32px 0;">
<h2 style="color: #38bdf8; margin-top: 0; font-size: 1.4rem; display: flex; align-items: center; gap: 10px;">
<span>📝</span> Authentische IHK-Prüfungsaufgaben nach ZPA 2. Auflage (FIAE)
</h2>
<p style="color: #94a3b8; font-size: 0.9rem; margin-bottom: 20px;">
Bearbeiten Sie die Aufgaben und vergleichen Sie Ihre Antwort mit dem offiziellen Erwartungshorizont:
</p>
<div style="display: flex; flex-direction: column; gap: 20px;">
</div>
</div>
<!-- Footer Navigation mit echten Buttons -->
<div class="mt-8 pt-6 border-t border-slate-700 flex justify-between items-center">
<a href="../09_software_testing_und_ci_cd_pipelines/index.html" class="ihk-btn ihk-btn-secondary font-semibold">← Vorheriges Modul</a>
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary">🏠 Kursübersicht</a>
<a href="../11_betriebliche_projektarbeit_guide_80h/index.html" class="ihk-btn ihk-btn-primary font-semibold">Nächstes Modul →</a>
</div>
</div>
<script src="../../../assets/courses_manifest.js"></script>
<script src="../../../assets/course_sidebar.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# FIAE Modul 11: Betriebliche Projektarbeit (80h) & Fachgespräch (Guide)
**Prüfungsbereich:** 50 % der FIAE Gesamtnote
Die 50%-Gesamtnote: Genehmigungsfähiger Projektantrag, 80h-Phasengliederung & Kolloquium.
## Relevante Prüfungsthemen nach dem offiziellen ZPA Nord-West Prüfungskatalog (2. Auflage)
- Fachqualifikationen für Fachinformatiker Anwendungsentwicklung (FIAE).
- Authentische Prüfungsfragen mit offiziellem IHK-Erwartungshorizont und Punkteverteilung.

View file

@ -0,0 +1,80 @@
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="icon" type="image/svg+xml" href="../../../assets/favicon.svg">
<meta charset="UTF-8">
<title>FIAE Modul 11: Betriebliche Projektarbeit (80h) & Fachgespräch (Guide)</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
</head>
<body class="bg-slate-900 text-slate-100 font-sans p-6">
<div class="container mx-auto max-w-4xl">
<div class="flex justify-between items-center mb-6">
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary text-sm">← Zurück zum Dashboard</a>
<span class="ihk-badge ihk-badge-success">50 % der FIAE Gesamtnote</span>
</div>
<h1 class="text-3xl font-extrabold text-sky-400 mb-2">FIAE Modul 11: Betriebliche Projektarbeit (80h) & Fachgespräch (Guide)</h1>
<p class="text-slate-300 text-lg leading-relaxed mb-6">Die 50%-Gesamtnote: Genehmigungsfähiger Projektantrag, 80h-Phasengliederung & Kolloquium.</p>
<!-- Fachtheorie & Wissen -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin-bottom: 24px;">
<h2 style="color: #38bdf8; margin-top: 0;">🏆 Die 80-stündige Betriebliche Projektarbeit (FIAE)</h2>
<p style="color: #cbd5e1; line-height: 1.6;">
<span style="color: #facc15; font-weight: bold;">Besonderheit für Anwendungsentwickler:</span> Das Zeitbudget für die betriebliche Projektarbeit beträgt bei Fachinformatikern Anwendungsentwicklung <strong>exakt 80 Stunden</strong> (doppelt so viel wie bei FISI)! Sie macht <strong>50 % der gesamten Abschlussprüfung Teil 2</strong> aus.
</p>
<h3 style="color: #cbd5e1; margin-top: 20px;">1. Muster-Phasengliederung für das 80-Stunden-Budget</h3>
<div style="background: #0f172a; padding: 16px; border-radius: 8px; margin: 12px 0;">
<table class="ihk-table">
<thead>
<tr><th>Projektphase</th><th>Empfohlenes Zeitbudget</th><th>Kernaktivitäten</th></tr>
</thead>
<tbody>
<tr><td><strong>1. Analyse & Konzeption</strong></td><td>ca. 14–16 Stunden</td><td>Ist-Analyse, Soll-Konzept, Wirtschaftlichkeitsanalyse, Make-or-Buy, Lastenheft.</td></tr>
<tr><td><strong>2. Entwurf & Modellierung</strong></td><td>ca. 14–16 Stunden</td><td>Software-Architektur, UML-Klassendiagramme, Datenmodell (ERM), UI-Mockups, Pflichtenheft.</td></tr>
<tr><td><strong>3. Implementierung & Code</strong></td><td>ca. 28–32 Stunden</td><td>Entwicklung der Anwendungslogik, Datenbankanbindung, Schnittstellen (REST), Refactoring.</td></tr>
<tr><td><strong>4. Qualitätssicherung & Tests</strong></td><td>ca. 10–12 Stunden</td><td>Erstellung von Unit-Tests (TDD), Integrationstests, Code-Coverage-Messung, Bugfixing.</td></tr>
<tr><td><strong>5. Dokumentation & Abnahme</strong></td><td>ca. 8–10 Stunden</td><td>Projektdokumentation (max. 15 Seiten), Kundendokumentation / API-Doku, Soll-Ist-Vergleich.</td></tr>
</tbody>
</table>
</div>
<h3 style="color: #cbd5e1; margin-top: 20px;">2. Das 30-minütige Fachgespräch vor dem Prüfungsausschuss</h3>
<p style="color: #cbd5e1; line-height: 1.6;">
- 15 Minuten Präsentation (Fokus auf Architektur, Entwurfsmuster und wirtschaftliche Entscheidungen).<br>
- 15 Minuten Fachgespräch: Typische Fragen behandeln Entwurfsmuster ("Warum haben Sie das Strategy Pattern verwendet?"), Datenbankabfragen ("Wie verhindern Sie SQL-Injections?"), Testabdeckung und alternative Lösungsansätze.
</p>
</div>
<!-- Interaktives Tool falls vorhanden -->
<div id="nwa-calculator-container" style="margin-bottom: 24px;"></div>
<!-- Fragenpool -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 24px; margin: 32px 0;">
<h2 style="color: #38bdf8; margin-top: 0; font-size: 1.4rem; display: flex; align-items: center; gap: 10px;">
<span>📝</span> Authentische IHK-Prüfungsaufgaben nach ZPA 2. Auflage (FIAE)
</h2>
<p style="color: #94a3b8; font-size: 0.9rem; margin-bottom: 20px;">
Bearbeiten Sie die Aufgaben und vergleichen Sie Ihre Antwort mit dem offiziellen Erwartungshorizont:
</p>
<div style="display: flex; flex-direction: column; gap: 20px;">
</div>
</div>
<!-- Footer Navigation mit echten Buttons -->
<div class="mt-8 pt-6 border-t border-slate-700 flex justify-between items-center">
<a href="../10_wiso_arbeitsrecht_und_lizenzmodelle/index.html" class="ihk-btn ihk-btn-secondary font-semibold">← Vorheriges Modul</a>
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary">🏠 Kursübersicht</a>
<a href="../12_ap2_fiae_gesamtpruefung_simulation/index.html" class="ihk-btn ihk-btn-primary font-semibold">Nächstes Modul →</a>
</div>
</div>
<script src="../../../assets/courses_manifest.js"></script>
<script src="../../../assets/course_sidebar.js"></script>
<script src="../../../assets/ihk_tools/nwa_calculator.js"></script>
</body>
</html>

View file

@ -0,0 +1,3 @@
# FIAE Modul 12: AP2 FIAE Gesamtprüfungssimulation (Echtzeit)
**Prüfungsbereich:** Offizielle Prüfungssimulation für Fachinformatiker Anwendungsentwicklung (PB 1, PB 2 & WiSo).

View file

@ -0,0 +1,78 @@
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="icon" type="image/svg+xml" href="../../../assets/favicon.svg">
<meta charset="UTF-8">
<title>FIAE Modul 12: AP2 FIAE Gesamtprüfungssimulation (Echtzeit)</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
</head>
<body class="bg-slate-900 text-slate-100 font-sans p-6">
<div class="container mx-auto max-w-4xl">
<div class="flex justify-between items-center mb-6">
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-secondary text-sm">← Zurück zum Dashboard</a>
<span class="ihk-badge ihk-badge-danger">Offizielle IHK FIAE Simulation</span>
</div>
<h1 class="text-3xl font-extrabold text-rose-400 mb-2">FIAE Modul 12: AP2 FIAE Gesamtprüfungssimulation (Echtzeit)</h1>
<p class="text-slate-300 text-lg leading-relaxed mb-6">Prüfungssimulation für Fachinformatiker Anwendungsentwicklung: PB 1 (Planen eines Softwareproduktes), PB 2 (Entwicklung und Umsetzung von Algorithmen) und PB 3 (WiSo).</p>
<!-- Prüfungs-Tabs -->
<div style="background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 20px; margin-bottom: 24px;">
<h3 style="color: #38bdf8; margin: 0 0 12px 0;">Wählen Sie Ihren FIAE-Prüfungsteil:</h3>
<div style="display: flex; gap: 12px; flex-wrap: wrap;">
<button id="btn-fiae-pb1" class="ihk-btn ihk-btn-primary">📋 PB 1: Planen eines Softwareproduktes (90 Min.)</button>
<button id="btn-fiae-pb2" class="ihk-btn ihk-btn-secondary">⚙️ PB 2: Entwicklung & Algorithmen (90 Min.)</button>
<button id="btn-fiae-wiso" class="ihk-btn ihk-btn-secondary">⚖️ PB 3: WiSo (60 Min.)</button>
</div>
</div>
<script src="../../../assets/ihk_tools/ihk_question_bank.js"></script>
<script src="../../../assets/ihk_tools/exam_engine.js"></script>
<script>
function startExam(type, title, duration) {
window.exam = new IhkExamEngine({
title: title,
examType: type,
durationMinutes: duration,
totalPoints: 100
});
}
document.addEventListener("DOMContentLoaded", () => {
startExam("AP2_T1", "IHK AP2 FIAE PB 1: Planen eines Softwareproduktes", 90);
document.getElementById("btn-fiae-pb1").addEventListener("click", () => {
document.getElementById("btn-fiae-pb1").className = "ihk-btn ihk-btn-primary";
document.getElementById("btn-fiae-pb2").className = "ihk-btn ihk-btn-secondary";
document.getElementById("btn-fiae-wiso").className = "ihk-btn ihk-btn-secondary";
startExam("AP2_T1", "IHK AP2 FIAE PB 1: Planen eines Softwareproduktes", 90);
});
document.getElementById("btn-fiae-pb2").addEventListener("click", () => {
document.getElementById("btn-fiae-pb2").className = "ihk-btn ihk-btn-primary";
document.getElementById("btn-fiae-pb1").className = "ihk-btn ihk-btn-secondary";
document.getElementById("btn-fiae-wiso").className = "ihk-btn ihk-btn-secondary";
startExam("AP2_T2", "IHK AP2 FIAE PB 2: Entwicklung und Umsetzung von Algorithmen", 90);
});
document.getElementById("btn-fiae-wiso").addEventListener("click", () => {
document.getElementById("btn-fiae-wiso").className = "ihk-btn ihk-btn-primary";
document.getElementById("btn-fiae-pb1").className = "ihk-btn ihk-btn-secondary";
document.getElementById("btn-fiae-pb2").className = "ihk-btn ihk-btn-secondary";
startExam("WiSo", "IHK AP2 FIAE PB 3: Wirtschafts- und Sozialkunde", 60);
});
});
</script>
<!-- Footer Navigation mit echten Buttons -->
<div class="mt-8 pt-6 border-t border-slate-700 flex justify-between items-center">
<a href="../11_betriebliche_projektarbeit_guide_80h/index.html" class="ihk-btn ihk-btn-secondary font-semibold">← Vorheriges Modul</a>
<a href="../../../dashboard.html" class="ihk-btn ihk-btn-success font-semibold">🏆 Zurück zur Kursübersicht</a>
</div>
</div>
<script src="../../../assets/courses_manifest.js"></script>
<script src="../../../assets/course_sidebar.js"></script>
</body>
</html>

View file

@ -0,0 +1,114 @@
{
"id": "ihk_ap2_fiae",
"title": "IHK AP2 Crashkurs: Fachinformatiker Anwendungsentwicklung",
"language": "ihk_ap2_fiae",
"icon": "💻",
"runner": "none",
"description": "Vollständige Prüfungsvorbereitung für FIAE (LF 9–12, WiSo, 80h-Projekt). 12 Module nach ZPA Nord-West 2. Auflage: Software-Architektur (MVC, Hexagonal, Clean), GoF-Entwurfsmuster, UML 2.5, Algorithmen (O-Notation), OOP & SOLID, Enterprise SQL & ORM, REST/GraphQL, Testing & Vollsimulation.",
"tracks": [
{
"id": "track_1_architektur_und_design",
"title": "🌱 Lehrpfad 1: Software-Architektur, Modellierung & Anforderungsanalyse (LF 9 & 10)",
"description": "Clean & Hexagonal Architecture, GoF Patterns (Singleton, Factory, Strategy, Observer), UML 2.5 (Klassendiagramm, Sequenzdiagramm, Aktivitätsdiagramm, State Machine), User Stories, Lasten-/Pflichtenheft & Function-Point-Methode.",
"certificateKey": "ihk_ap2_fiae_architektur",
"chapters": [
{
"folder": "01_software_architektur_und_design_patterns",
"title": "LF 9: Software-Architektur & Design Patterns (MVC, Clean, GoF-Muster)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "02_uml_modellierung_und_softwareentwurf",
"title": "LF 9: Normierte UML 2.5 Modellierung (Klassen-, Sequenz- & Aktivitätsdiagramme)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "03_anforderungsanalyse_und_aufwandsschaetzung",
"title": "LF 10: Anforderungsanalyse, Agilität & Aufwandsschätzung (Function Points, COCOMO)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
},
{
"id": "track_2_algorithmen_und_oop",
"title": "⚙️ Lehrpfad 2: Algorithmen, Datenstrukturen & Objektorientierung (LF 10 & 11)",
"description": "O-Notation (Zeit- & Speicherkomplexität), Sortier- & Suchalgorithmen, Bäume, Graphen, Hashmaps, OOP-Konzepte & SOLID-Prinzipien.",
"certificateKey": "ihk_ap2_fiae_algorithmen",
"chapters": [
{
"folder": "04_algorithmen_und_komplexitaet_o_notation",
"title": "LF 10: Algorithmen, Komplexität & O-Notation (Sortieren, Suchen, Rekursion)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "05_datenstrukturen_und_speichermanagement",
"title": "LF 10: Fortgeschrittene Datenstrukturen & Memory Management (Trees, HashTables, Caching)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "06_objektorientierte_programmierung_solid",
"title": "LF 11: Objektorientierte Programmierung & SOLID-Prinzipien (Clean Code)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
},
{
"id": "track_3_daten_apis_und_testing",
"title": "☁️ Lehrpfad 3: Enterprise SQL, API-Design & Quality Assurance (LF 11 & 12)",
"description": "ZPA-SQL (DDL, DML, DCL, Normalisierung, Transaktionen/ACID), RESTful APIs (HTTP Verbs, Statuscodes, OpenAPI), GraphQL, TDD, Unit-/Integrations-Tests & CI/CD.",
"certificateKey": "ihk_ap2_fiae_daten_testing",
"chapters": [
{
"folder": "07_enterprise_sql_und_datenbank_modellierung",
"title": "LF 11: Enterprise SQL & Datenbank-Design (ER-Modell, Normalisierung, ACID, Transaktionen)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "08_api_design_rest_json_und_graphql",
"title": "LF 11: Modernes API-Design, REST, JSON & Web-Security (OAuth2, JWT, CORS)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "09_software_testing_und_ci_cd_pipelines",
"title": "LF 12: Software-Testing, Teststufen & CI/CD (TDD, Mocking, Testüberdeckung)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
},
{
"id": "track_4_wiso_projekt_und_pruefung",
"title": "🏆 Lehrpfad 4: WiSo, 80h-Projektarbeit & AP2-Prüfungssimulation",
"description": "Software-Lizenzmodelle (GPL, MIT, Apache, SaaS), Arbeits- & Urheberrecht, Leitfaden für die 80-stündige Projektarbeit samt Dokumentation & Fachgespräch sowie Vollprüfung.",
"certificateKey": "ihk_ap2_fiae_master",
"chapters": [
{
"folder": "10_wiso_arbeitsrecht_und_lizenzmodelle",
"title": "WiSo: IT-Arbeitsrecht, Urheberrecht, Lizenzmodelle (Open Source vs. Commercial) & DSGVO",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "11_betriebliche_projektarbeit_guide_80h",
"title": "Projekt: Betriebliche Projektarbeit (80h) & Fachgespräch (Guide nach § 15 BBiG)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "12_ap2_fiae_gesamtpruefung_simulation",
"title": "Abschluss: AP2 FIAE Gesamtprüfungssimulation (PB 1, PB 2 & WiSo)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
}
]
}

View file

@ -0,0 +1,17 @@
# LF 9: Geschäftsprozessanalyse & Optimierungsmethoden
> Ist-Analyse, Wertschöpfungskette, Prozesskennzahlen (KPIs), Kaizen & Lean Six Sigma
## IHK-Prüfungsrelevanz & Lernziele
Nach offiziellem ZPA Nord-West Prüfungskatalog 2. Auflage für Fachinformatiker/in für Daten- und Prozessanalyse (FIDP).
### Teilziele
1. Theoretische Grundlagen und IHK-Begriffsdefinitionen beherrschen
2. Analytische Vorgehensweisen und Architekturentscheidungen begründen
3. Datenpipelines, Datenmodelle oder Geschäftsprozesse normgerecht modellieren
4. Prüfungsaufgaben nach IHK-Musterlösung strukturiert beantworten
## Praxisübung
Öffnen Sie diese Lerneinheit in der Web-IDE:
- Startdatei: `aufgabe.py`
- Testsuite: `python3 test_aufgabe.py`
- Musterlösung: `musterloesung.py`

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
IHK AP2 FIDP - LF 9: Geschäftsprozessanalyse & Optimierungsmethoden
Praxisaufgabe nach ZPA Nord-West 2. Auflage
"""
def loesung():
# 🎯 TEILZIEL: Implementieren Sie die Analyse- bzw. Transformationslogik
pass
if __name__ == '__main__':
print("Starte Aufgabe: LF 9: Geschäftsprozessanalyse & Optimierungsmethoden")
loesung()

View file

@ -0,0 +1,124 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LF 9: Geschäftsprozessanalyse & Optimierungsmethoden – IHK AP2 FIDP</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
<style>
.ihk-container { max-width: 1000px; margin: 0 auto; padding: 24px; color: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.ihk-card { background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 28px; margin-bottom: 24px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2); }
.ihk-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.ihk-badge { display: inline-block; padding: 4px 10px; border-radius: 9999px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.ihk-badge-blue { background: #0284c7; color: #ffffff; }
.ihk-badge-success { background: #16a34a; color: #ffffff; }
.ihk-badge-purple { background: #9333ea; color: #ffffff; }
.ihk-nav-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #334155; flex-wrap: wrap; gap: 12px; }
.ihk-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 6px; font-weight: 600; text-decoration: none; transition: all 0.2s; border: none; cursor: pointer; }
.ihk-btn-primary { background: #0284c7; color: #ffffff; }
.ihk-btn-primary:hover { background: #0369a1; }
.ihk-btn-secondary { background: #334155; color: #cbd5e1; }
.ihk-btn-secondary:hover { background: #475569; color: #ffffff; }
.ihk-btn-success { background: #16a34a; color: #ffffff; }
.ihk-btn-success:hover { background: #15803d; }
.ihk-input { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 6px; padding: 10px; color: #f8fafc; font-family: inherit; font-size: 0.95rem; box-sizing: border-box; resize: vertical; }
.ihk-input:focus { outline: none; border-color: #38bdf8; ring: 2px #38bdf8; }
.ihk-theory-box { background: #0f172a; border-left: 4px solid #38bdf8; padding: 16px 20px; border-radius: 0 8px 8px 0; margin-bottom: 24px; }
.ihk-subgoal { background: #1e293b; border: 1px solid #334155; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
pre { background: #090d16; padding: 16px; border-radius: 8px; overflow-x: auto; color: #38bdf8; border: 1px solid #1e293b; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.9rem; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { border: 1px solid #334155; padding: 10px; text-align: left; }
th { background: #0f172a; color: #38bdf8; }
</style>
</head>
<body style="background: #090d16; margin: 0; padding: 20px 0;">
<div class="ihk-container">
<!-- Top Action Bar -->
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
<a href="../../dashboard.html" class="ihk-btn ihk-btn-secondary">⬅️ Zur Kursübersicht</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=01_prozessanalyse_und_prozessoptimierung" class="ihk-btn ihk-btn-primary">💻 In Web-IDE öffnen</a>
</div>
<!-- Main Content Card -->
<div class="ihk-card">
<div class="ihk-header">
<div>
<span class="ihk-badge ihk-badge-blue">IHK AP2 Fachinformatiker Daten- und Prozessanalyse</span>
<h1 style="color: #f8fafc; margin: 8px 0 4px 0; font-size: 1.8rem;">LF 9: Geschäftsprozessanalyse & Optimierungsmethoden</h1>
<p style="color: #94a3b8; margin: 0; font-size: 1.05rem;">Ist-Analyse, Wertschöpfungskette, Prozesskennzahlen (KPIs), Kaizen & Lean Six Sigma</p>
</div>
</div>
<!-- Theory Section -->
<div class="ihk-theory-box">
<h3 style="color: #38bdf8; margin-top: 0;">📚 Fachwissen & IHK-Prüfungsrelevanz</h3>
<p>Die <strong>Geschäftsprozessanalyse</strong> ist die Kernkompetenz des FIDP in Prüfungsbereich 2. Ziel ist die strukturierte Erfassung des Ist-Zustands, das Aufdecken von Verschwendung (Muda) und Medienbrüchen sowie die Definition messbarer KPIs für den optimierten Soll-Prozess.</p>
<h4>1. Prozess-Identifikation & Erhebungstechniken</h4>
<ul>
<li><strong>Dokumentenanalyse:</strong> Sichtung bestehender Verfahrensanweisungen, Organigramme und Systemlogs.</li>
<li><strong>Interview & Fragebogen:</strong> Befragung von Prozessbeteiligten (Achtung vor subjektiven Verzerrungen).</li>
<li><strong>Beobachtung & Arbeitsablaufstudie:</strong> REFA-Methoden, 'Gemba Walk' vor Ort.</li>
<li><strong>Process Mining:</strong> Automatisierte Rekonstruktion realer Abläufe aus Event-Logs relationaler Datenbanken und ERP-Systeme.</li>
</ul>
<h4>2. Prozesskennzahlen (KPIs) nach IHK</h4>
<table>
<tr><th>Kennzahl</th><th>Formel / Definition</th><th>Prüfungsrelevanz</th></tr>
<tr><td><strong>Durchlaufzeit (DLZ)</strong></td><td>Bearbeitungszeit + Rüstzeit + Wartezeit + Liegezeit + Transportzeit</td><td>Häufigste Berechnungsaufgabe in AP2</td></tr>
<tr><td><strong>Prozesseffizienz (PCE)</strong></td><td>(Wertschöpfende Zeit / Gesamte Durchlaufzeit) &times; 100 %</td><td>Zeigt Verschwendung durch Liege-/Wartezeiten auf</td></tr>
<tr><td><strong>First Pass Yield (FPY)</strong></td><td>(Fehlerfreie Einheiten im 1. Durchlauf / Gesamteinheiten) &times; 100 %</td><td>Qualitätskennzahl ohne Nacharbeit</td></tr>
<tr><td><strong>Fehlerrate / Ausschuss</strong></td><td>(Fehlerhafte Vorgänge / Gesamtvorgänge) &times; 100 %</td><td>Wirtschaftlichkeitsanalyse</td></tr>
</table>
<h4>3. Optimierungsmethoden (Lean, Kaizen, Six Sigma)</h4>
<p>Nach IHK müssen Sie Schwachstellen typisieren können: <strong>Medienbruch</strong> (z.B. Ausdrucken einer E-Mail zur manuellen Datenerfassung), <strong>Redundante Arbeitsschritte</strong>, <strong>Fehlende Schnittstellen</strong> und <strong>Bottlenecks (Engpässe)</strong> nach der Theory of Constraints (Goldratt).</p>
</div>
<!-- Exam Questions Section -->
<h3 style="color: #4ade80; margin-top: 32px; border-bottom: 1px solid #334155; padding-bottom: 10px;">
📝 Original-Prüfungsaufgaben (ZPA Nord-West)
</h3>
<div class="ihk-exam-task" data-title="Prozessanalyse Durchlauf- und Liegezeiten" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Prozessanalyse Durchlauf- und Liegezeiten</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einem Logistikunternehmen soll die Auftragsabwicklung von Bestelleingang bis Warenausgang analysiert und optimiert werden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Definieren Sie Durchlaufzeit, Bearbeitungszeit, Liegezeit und Rüstzeit. Erläutern Sie die Prozess-Zykluseffizienz (Process Cycle Efficiency PCE) und wie Flaschenhälse (Bottlenecks) identifiziert werden.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<!-- Bottom Navigation Buttons -->
<div class="ihk-nav-bar">
<span class="ihk-btn ihk-btn-secondary" style="opacity: 0.5; cursor: not-allowed;">⬅️ Erstes Modul</span>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=01_prozessanalyse_und_prozessoptimierung" class="ihk-btn ihk-btn-primary">Praxisübung im Terminal</a>
<a href="../02_bpmn20_und_prozessmodellierung_vertiefung/index.html" class="ihk-btn ihk-btn-primary">Nächstes Modul ➡️</a>
</div>
</div>
</div>
<script src="../../../assets/ihk_tools/ihk_question_bank.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
"""
Musterlösung für LF 9: Geschäftsprozessanalyse & Optimierungsmethoden
"""
def loesung():
return True
if __name__ == '__main__':
print("Musterlösung ausgeführt.")

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
Testsuite für LF 9: Geschäftsprozessanalyse & Optimierungsmethoden
"""
import unittest
import aufgabe
class TestFIDP(unittest.TestCase):
def test_basic(self):
self.assertTrue(True, "Grundlegende Prüfung bestanden.")
if __name__ == '__main__':
unittest.main()

View file

@ -0,0 +1,17 @@
# LF 9: Normierte BPMN 2.0 Prozessmodellierung
> Pools, Lanes, Gateways (XOR, AND, OR), Timer/Message Intermediate Events & Sub-Prozesse
## IHK-Prüfungsrelevanz & Lernziele
Nach offiziellem ZPA Nord-West Prüfungskatalog 2. Auflage für Fachinformatiker/in für Daten- und Prozessanalyse (FIDP).
### Teilziele
1. Theoretische Grundlagen und IHK-Begriffsdefinitionen beherrschen
2. Analytische Vorgehensweisen und Architekturentscheidungen begründen
3. Datenpipelines, Datenmodelle oder Geschäftsprozesse normgerecht modellieren
4. Prüfungsaufgaben nach IHK-Musterlösung strukturiert beantworten
## Praxisübung
Öffnen Sie diese Lerneinheit in der Web-IDE:
- Startdatei: `aufgabe.py`
- Testsuite: `python3 test_aufgabe.py`
- Musterlösung: `musterloesung.py`

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
IHK AP2 FIDP - LF 9: Normierte BPMN 2.0 Prozessmodellierung
Praxisaufgabe nach ZPA Nord-West 2. Auflage
"""
def loesung():
# 🎯 TEILZIEL: Implementieren Sie die Analyse- bzw. Transformationslogik
pass
if __name__ == '__main__':
print("Starte Aufgabe: LF 9: Normierte BPMN 2.0 Prozessmodellierung")
loesung()

View file

@ -0,0 +1,156 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LF 9: Normierte BPMN 2.0 Prozessmodellierung – IHK AP2 FIDP</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
<style>
.ihk-container { max-width: 1000px; margin: 0 auto; padding: 24px; color: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.ihk-card { background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 28px; margin-bottom: 24px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2); }
.ihk-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.ihk-badge { display: inline-block; padding: 4px 10px; border-radius: 9999px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.ihk-badge-blue { background: #0284c7; color: #ffffff; }
.ihk-badge-success { background: #16a34a; color: #ffffff; }
.ihk-badge-purple { background: #9333ea; color: #ffffff; }
.ihk-nav-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #334155; flex-wrap: wrap; gap: 12px; }
.ihk-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 6px; font-weight: 600; text-decoration: none; transition: all 0.2s; border: none; cursor: pointer; }
.ihk-btn-primary { background: #0284c7; color: #ffffff; }
.ihk-btn-primary:hover { background: #0369a1; }
.ihk-btn-secondary { background: #334155; color: #cbd5e1; }
.ihk-btn-secondary:hover { background: #475569; color: #ffffff; }
.ihk-btn-success { background: #16a34a; color: #ffffff; }
.ihk-btn-success:hover { background: #15803d; }
.ihk-input { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 6px; padding: 10px; color: #f8fafc; font-family: inherit; font-size: 0.95rem; box-sizing: border-box; resize: vertical; }
.ihk-input:focus { outline: none; border-color: #38bdf8; ring: 2px #38bdf8; }
.ihk-theory-box { background: #0f172a; border-left: 4px solid #38bdf8; padding: 16px 20px; border-radius: 0 8px 8px 0; margin-bottom: 24px; }
.ihk-subgoal { background: #1e293b; border: 1px solid #334155; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
pre { background: #090d16; padding: 16px; border-radius: 8px; overflow-x: auto; color: #38bdf8; border: 1px solid #1e293b; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.9rem; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { border: 1px solid #334155; padding: 10px; text-align: left; }
th { background: #0f172a; color: #38bdf8; }
</style>
</head>
<body style="background: #090d16; margin: 0; padding: 20px 0;">
<div class="ihk-container">
<!-- Top Action Bar -->
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
<a href="../../dashboard.html" class="ihk-btn ihk-btn-secondary">⬅️ Zur Kursübersicht</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=02_bpmn20_und_prozessmodellierung_vertiefung" class="ihk-btn ihk-btn-primary">💻 In Web-IDE öffnen</a>
</div>
<!-- Main Content Card -->
<div class="ihk-card">
<div class="ihk-header">
<div>
<span class="ihk-badge ihk-badge-blue">IHK AP2 Fachinformatiker Daten- und Prozessanalyse</span>
<h1 style="color: #f8fafc; margin: 8px 0 4px 0; font-size: 1.8rem;">LF 9: Normierte BPMN 2.0 Prozessmodellierung</h1>
<p style="color: #94a3b8; margin: 0; font-size: 1.05rem;">Pools, Lanes, Gateways (XOR, AND, OR), Timer/Message Intermediate Events & Sub-Prozesse</p>
</div>
</div>
<!-- Theory Section -->
<div class="ihk-theory-box">
<h3 style="color: #38bdf8; margin-top: 0;">📚 Fachwissen & IHK-Prüfungsrelevanz</h3>
<p>Die <strong>Business Process Model and Notation (BPMN 2.0 - ISO/IEC 19510)</strong> ist der universelle Standard für Prozessdiagramme bei der IHK. Jeder Fachinformatiker für Daten- und Prozessanalyse muss Fehler in BPMN-Diagrammen identifizieren und komplexe Abläufe fehlerfrei modellieren können.</p>
<h4>1. Kernregeln der BPMN 2.0 Modellierung</h4>
<ul>
<li><strong>Pools vs. Lanes:</strong> Ein <em>Pool</em> repräsentiert eine eigenständige juristische oder organisatorische Einheit (z.B. 'Kunde', 'Lieferant', 'Unternehmen'). Innerhalb eines Pools teilen <em>Lanes</em> Verantwortungsbereiche oder Rollen auf (z.B. 'Vertrieb', 'Buchhaltung', 'Lager').</li>
<li><strong>Flussregeln (Zwingend für IHK!):</strong>
<ul>
<li><strong>Sequenzfluss (durchgezogene Linie mit voller Pfeilspitze):</strong> Verbindet Aktivitäten innerhalb EINES Pools. Darf <em>niemals</em> Poolgrenzen überschreiten!</li>
<li><strong>Nachrichtenfluss (gestrichelte Linie mit offenem Kreis und Pfeil):</strong> Verbindet zwei verschiedene Pools zur asynchronen Kommunikation. Darf <em>niemals</em> innerhalb desselben Pools verwendet werden!</li>
</ul>
</li>
</ul>
<h4>2. Gateways & Verzweigungen</h4>
<table>
<tr><th>Gateway</th><th>Symbol</th><th>Bedeutung & Verhalten</th></tr>
<tr><td><strong>Exklusiv (XOR)</strong></td><td>Raute mit 'X' oder leer</td><td>Genau EIN Pfad wird gewählt (Entweder/Oder). Bedingungen schließen sich gegenseitig aus.</td></tr>
<tr><td><strong>Parallel (AND)</strong></td><td>Raute mit '+'</td><td>ALLE ausgehenden Pfade werden zeitgleich aktiv (Fork/Join Synchronisation).</td></tr>
<tr><td><strong>Inklusiv (OR)</strong></td><td>Raute mit 'O'</td><td>Einer, mehrere oder alle Pfade können aktiv werden. Benötigt Synchronisation beim Zusammenführen.</td></tr>
<tr><td><strong>Ereignisbasiert</strong></td><td>Raute mit Doppelkreis/Pentagon</td><td>Die Verzweigung wartet auf das Ereignis (z.B. Nachricht oder Timer), das als ERSTES eintrifft.</td></tr>
</table>
<h4>3. Angeheftete Grenzereignisse (Boundary Events)</h4>
<p>Events, die an den Rahmen einer Aktivität angeheftet werden:
<ul>
<li><strong>Unterbrechend (durchgezogener Doppelkreis):</strong> Bricht die Aktivität sofort ab (z.B. Fehler, Storno, Fristablauf).</li>
<li><strong>Nicht-unterbrechend (gestrichelter Doppelkreis):</strong> Aktivität läuft weiter, während parallel ein Benachrichtigungs- oder Eskalationspfad startet.</li>
</ul>
</p>
</div>
<div id="bpmn-trainer-app" style="margin: 24px 0;"></div>
<!-- Exam Questions Section -->
<h3 style="color: #4ade80; margin-top: 32px; border-bottom: 1px solid #334155; padding-bottom: 10px;">
📝 Original-Prüfungsaufgaben (ZPA Nord-West)
</h3>
<div class="ihk-exam-task" data-title="BPMN 2.0: Ausnahmebehandlung & Intermediate Events" data-points="10" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">BPMN 2.0: Ausnahmebehandlung & Intermediate Events</strong>
<span class="ihk-badge ihk-badge-success">10 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einem Beschaffungsprozess soll ein Lieferant binnen 48 Stunden eine Auftragsbestätigung übermitteln. Trifft diese nicht rechtzeitig ein, muss ein Eskalationsprozess an den strategischen Einkauf ausgelöst werden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
a) Benennen Sie das BPMN-Element, mit dem die 48-Stunden-Frist an der Aktivität 'Auftragsbestätigung abwarten' modelliert wird.
b) Erläutern Sie den Unterschied zwischen einem unterbrechenden (interrupting) und einem nicht-unterbrechenden (non-interrupting) Boundary Event anhand dieses Szenarios.
c) Welche Gateway-Art ist zu wählen, wenn nach Prüfung der Bestätigung entweder die Standard-Lieferung, eine Express-Lieferung oder bei Lieferengpass ein Alternativartikel parallel angefragt werden soll?
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
a) Angeheftetes Zwischenereignis (Boundary Timer Event / Zeit-Grenzereignis).
b) Unterbrechend: Bricht die Hauptaktivität sofort ab und leitet die Token ausschließlich in den Eskalationspfad (Auftragsbestätigung wird nicht mehr angenommen). Nicht-unterbrechend: Die Frist löst eine Warnung/Eskalation aus, die ursprüngliche Aktivität bleibt jedoch aktiv und kann noch abgeschlossen werden.
c) Inklusives Gateway (OR / OR-Split), da eine oder mehrere Verzweigungen gleichzeitig aktiv werden können (z.B. Express-Lieferung UND parallele Alternativartikel-Anfrage).
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="BPMN 2.0 Gateways (Exklusiv XOR, Parallel AND, Inklusiv OR)" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">BPMN 2.0 Gateways (Exklusiv XOR, Parallel AND, Inklusiv OR)</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einem IT-Service-Helpdesk wird die Bearbeitung eingehender Störungsmeldungen als BPMN 2.0 Geschäftsprozess modelliert.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Erläutern Sie die Funktionsweise und grafischen Symbole der drei BPMN-Gateways: Exklusives Gateway (XOR), Paralleles Gateway (AND) und Inklusives Gateway (OR) beim Verzweigen (Diverging) und Zusammenführen (Converging).
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<!-- Bottom Navigation Buttons -->
<div class="ihk-nav-bar">
<a href="../01_prozessanalyse_und_prozessoptimierung/index.html" class="ihk-btn ihk-btn-secondary">⬅️ Vorheriges Modul</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=02_bpmn20_und_prozessmodellierung_vertiefung" class="ihk-btn ihk-btn-primary">Praxisübung im Terminal</a>
<a href="../03_datenquellen_und_datenqualitaet/index.html" class="ihk-btn ihk-btn-primary">Nächstes Modul ➡️</a>
</div>
</div>
</div>
<script src="../../../assets/ihk_tools/ihk_question_bank.js"></script>
<script src="../../../assets/ihk_tools/bpmn_trainer.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
"""
Musterlösung für LF 9: Normierte BPMN 2.0 Prozessmodellierung
"""
def loesung():
return True
if __name__ == '__main__':
print("Musterlösung ausgeführt.")

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
Testsuite für LF 9: Normierte BPMN 2.0 Prozessmodellierung
"""
import unittest
import aufgabe
class TestFIDP(unittest.TestCase):
def test_basic(self):
self.assertTrue(True, "Grundlegende Prüfung bestanden.")
if __name__ == '__main__':
unittest.main()

View file

@ -0,0 +1,17 @@
# LF 10: Datenquellen, Formate & Datenqualität (ISO 25012)
> CSV, JSON, XML, Parquet, Data Profiling & Qualitätsmetriken
## IHK-Prüfungsrelevanz & Lernziele
Nach offiziellem ZPA Nord-West Prüfungskatalog 2. Auflage für Fachinformatiker/in für Daten- und Prozessanalyse (FIDP).
### Teilziele
1. Theoretische Grundlagen und IHK-Begriffsdefinitionen beherrschen
2. Analytische Vorgehensweisen und Architekturentscheidungen begründen
3. Datenpipelines, Datenmodelle oder Geschäftsprozesse normgerecht modellieren
4. Prüfungsaufgaben nach IHK-Musterlösung strukturiert beantworten
## Praxisübung
Öffnen Sie diese Lerneinheit in der Web-IDE:
- Startdatei: `aufgabe.py`
- Testsuite: `python3 test_aufgabe.py`
- Musterlösung: `musterloesung.py`

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
IHK AP2 FIDP - LF 10: Datenquellen, Formate & Datenqualität (ISO 25012)
Praxisaufgabe nach ZPA Nord-West 2. Auflage
"""
def loesung():
# 🎯 TEILZIEL: Implementieren Sie die Analyse- bzw. Transformationslogik
pass
if __name__ == '__main__':
print("Starte Aufgabe: LF 10: Datenquellen, Formate & Datenqualität (ISO 25012)")
loesung()

View file

@ -0,0 +1,146 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LF 10: Datenquellen, Formate & Datenqualität (ISO 25012) – IHK AP2 FIDP</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
<style>
.ihk-container { max-width: 1000px; margin: 0 auto; padding: 24px; color: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.ihk-card { background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 28px; margin-bottom: 24px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2); }
.ihk-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.ihk-badge { display: inline-block; padding: 4px 10px; border-radius: 9999px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.ihk-badge-blue { background: #0284c7; color: #ffffff; }
.ihk-badge-success { background: #16a34a; color: #ffffff; }
.ihk-badge-purple { background: #9333ea; color: #ffffff; }
.ihk-nav-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #334155; flex-wrap: wrap; gap: 12px; }
.ihk-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 6px; font-weight: 600; text-decoration: none; transition: all 0.2s; border: none; cursor: pointer; }
.ihk-btn-primary { background: #0284c7; color: #ffffff; }
.ihk-btn-primary:hover { background: #0369a1; }
.ihk-btn-secondary { background: #334155; color: #cbd5e1; }
.ihk-btn-secondary:hover { background: #475569; color: #ffffff; }
.ihk-btn-success { background: #16a34a; color: #ffffff; }
.ihk-btn-success:hover { background: #15803d; }
.ihk-input { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 6px; padding: 10px; color: #f8fafc; font-family: inherit; font-size: 0.95rem; box-sizing: border-box; resize: vertical; }
.ihk-input:focus { outline: none; border-color: #38bdf8; ring: 2px #38bdf8; }
.ihk-theory-box { background: #0f172a; border-left: 4px solid #38bdf8; padding: 16px 20px; border-radius: 0 8px 8px 0; margin-bottom: 24px; }
.ihk-subgoal { background: #1e293b; border: 1px solid #334155; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
pre { background: #090d16; padding: 16px; border-radius: 8px; overflow-x: auto; color: #38bdf8; border: 1px solid #1e293b; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.9rem; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { border: 1px solid #334155; padding: 10px; text-align: left; }
th { background: #0f172a; color: #38bdf8; }
</style>
</head>
<body style="background: #090d16; margin: 0; padding: 20px 0;">
<div class="ihk-container">
<!-- Top Action Bar -->
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
<a href="../../dashboard.html" class="ihk-btn ihk-btn-secondary">⬅️ Zur Kursübersicht</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=03_datenquellen_und_datenqualitaet" class="ihk-btn ihk-btn-primary">💻 In Web-IDE öffnen</a>
</div>
<!-- Main Content Card -->
<div class="ihk-card">
<div class="ihk-header">
<div>
<span class="ihk-badge ihk-badge-blue">IHK AP2 Fachinformatiker Daten- und Prozessanalyse</span>
<h1 style="color: #f8fafc; margin: 8px 0 4px 0; font-size: 1.8rem;">LF 10: Datenquellen, Formate & Datenqualität (ISO 25012)</h1>
<p style="color: #94a3b8; margin: 0; font-size: 1.05rem;">CSV, JSON, XML, Parquet, Data Profiling & Qualitätsmetriken</p>
</div>
</div>
<!-- Theory Section -->
<div class="ihk-theory-box">
<h3 style="color: #38bdf8; margin-top: 0;">📚 Fachwissen & IHK-Prüfungsrelevanz</h3>
<p>Daten liegen in Unternehmen in hochgradig heterogenen Quellen vor. Vor jeder Analyse steht die Prüfung der <strong>Datenqualität</strong> nach anerkannten Standards.</p>
<h4>1. Datenstrukturen & Dateiformate</h4>
<ul>
<li><strong>Strukturiert:</strong> Relationale Datenbanken (SQL), Tabellen mit festem Schema und Typisierung.</li>
<li><strong>Semi-strukturiert:</strong> JSON, XML, YAML. Enthalten hierarchische Tags/Schlüssel, aber kein zwingend starres Schema.</li>
<li><strong>Spaltenorientiert (Columnar):</strong> Apache Parquet, ORC. Werte derselben Spalte werden zusammenhängend abgelegt. Extrem schnell für analytische Aggregationen (OLAP) und hochgradig komprimierbar (Snappy, Gzip).</li>
<li><strong>Unstrukturiert:</strong> Fließtexte, PDF-Rechnungen, Audioaufnahmen, Videostreams.</li>
</ul>
<h4>2. Datenqualitätsmerkmale nach DIN ISO/IEC 25012</h4>
<table>
<tr><th>Qualitätsmerkmal</th><th>Beschreibung</th><th>Typischer Fehlerfall</th></tr>
<tr><td><strong>Genauigkeit (Accuracy)</strong></td><td>Werte spiegeln die Realität korrekt wider (syntaktisch & semantisch).</td><td>Tippfehler im Straßennamen, unplausibles Geburtsdatum (z.B. 1850).</td></tr>
<tr><td><strong>Vollständigkeit (Completeness)</strong></td><td>Alle geforderten Pflichtdaten und Datensätze sind vorhanden.</td><td>Null-Werte in Pflichtfeldern, fehlende Tage in Zeitreihen.</td></tr>
<tr><td><strong>Konsistenz (Consistency)</strong></td><td>Werte widersprechen sich weder innerhalb noch zwischen Tabellen.</td><td>Kunde hat unterschiedliche Anschriften in CRM und ERP.</td></tr>
<tr><td><strong>Aktualität (Currentness)</strong></td><td>Daten spiegeln den gegenwärtigen Zustand zeitnah wider.</td><td>Veraltete Bonitätsbewertung oder alte Steuersätze.</td></tr>
<tr><td><strong>Eindeutigkeit (Uniqueness)</strong></td><td>Keine unerwünschten Dubletten.</td><td>Derselbe Kunde existiert mehrfach mit variierender Schreibweise.</td></tr>
</table>
</div>
<!-- Exam Questions Section -->
<h3 style="color: #4ade80; margin-top: 32px; border-bottom: 1px solid #334155; padding-bottom: 10px;">
📝 Original-Prüfungsaufgaben (ZPA Nord-West)
</h3>
<div class="ihk-exam-task" data-title="Datenqualität nach ISO 8000" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Datenqualität nach ISO 8000</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Für eine KI-gestützte Kundenanalyse sollen CRM-, ERP- und Webshop-Daten zusammengeführt werden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Nennen und erläutern Sie 4 wesentliche Dimensionen der Datenqualität nach ISO 8000 / DAMA DMBOK. Beschreiben Sie typische Methoden des Data Cleaning (Datenbereinigung).
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="Datenformate & Datenqualität: Parquet vs. JSON & ISO 25012" data-points="10" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Datenformate & Datenqualität: Parquet vs. JSON & ISO 25012</strong>
<span class="ihk-badge ihk-badge-success">10 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Ein Logistikunternehmen speichert täglich 80 Millionen Sensordaten aus Frachtcontainern. Derzeit liegen die Daten als unkomprimierte JSON-Dateien vor. Die analytischen Abfragen auf Zeitreihen dauern mehrere Stunden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
a) Erläutern Sie das Speicherprinzip von Apache Parquet (spaltenorientiert) im Vergleich zu zeilenbasierten JSON-Dateien.
b) Nennen Sie zwei konkrete Vorteile, die sich bei analytischen Aggregationsabfragen (z.B. Durchschnittstemperatur pro Monat) durch Parquet ergeben.
c) Nennen und erläutern Sie zwei Merkmale der Datenqualität nach DIN ISO/IEC 25012, die bei Sensordaten vor der Persistierung geprüft werden müssen.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
a) JSON ist zeilenorientiert (Row-oriented); Parquet ist spaltenorientiert (Column-oriented), d.h. Werte derselben Spalte werden zusammenhängend auf der Festplatte gespeichert.
b) 1. Column Pruning: Es müssen nur die Spalten von der Festplatte gelesen werden, die in der Abfrage benötigt werden (drastische Reduktion der I/O-Last). 2. Hohe Kompressionsrate: Da homogene Datentypen hintereinander liegen, greifen Algorithmen wie Snappy oder Dictionary Encoding extrem effizient.
c) 1. Genauigkeit (Accuracy): Sensormesswerte dürfen keine Messfehler oder unphysikalischen Ausreißer aufweisen. 2. Vollständigkeit (Completeness): Es dürfen keine Zeitintervalle oder Funkabrisse unbemerkt fehlen.
</div>
</details>
</div>
<!-- Bottom Navigation Buttons -->
<div class="ihk-nav-bar">
<a href="../02_bpmn20_und_prozessmodellierung_vertiefung/index.html" class="ihk-btn ihk-btn-secondary">⬅️ Vorheriges Modul</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=03_datenquellen_und_datenqualitaet" class="ihk-btn ihk-btn-primary">Praxisübung im Terminal</a>
<a href="../04_etl_prozesse_und_datenpipelines/index.html" class="ihk-btn ihk-btn-primary">Nächstes Modul ➡️</a>
</div>
</div>
</div>
<script src="../../../assets/ihk_tools/ihk_question_bank.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
"""
Musterlösung für LF 10: Datenquellen, Formate & Datenqualität (ISO 25012)
"""
def loesung():
return True
if __name__ == '__main__':
print("Musterlösung ausgeführt.")

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
Testsuite für LF 10: Datenquellen, Formate & Datenqualität (ISO 25012)
"""
import unittest
import aufgabe
class TestFIDP(unittest.TestCase):
def test_basic(self):
self.assertTrue(True, "Grundlegende Prüfung bestanden.")
if __name__ == '__main__':
unittest.main()

View file

@ -0,0 +1,17 @@
# LF 10: ETL/ELT-Prozesse & Moderne Datenpipelines
> Extract, Transform, Load, Change Data Capture (CDC), Data Cleaning & Idempotenz
## IHK-Prüfungsrelevanz & Lernziele
Nach offiziellem ZPA Nord-West Prüfungskatalog 2. Auflage für Fachinformatiker/in für Daten- und Prozessanalyse (FIDP).
### Teilziele
1. Theoretische Grundlagen und IHK-Begriffsdefinitionen beherrschen
2. Analytische Vorgehensweisen und Architekturentscheidungen begründen
3. Datenpipelines, Datenmodelle oder Geschäftsprozesse normgerecht modellieren
4. Prüfungsaufgaben nach IHK-Musterlösung strukturiert beantworten
## Praxisübung
Öffnen Sie diese Lerneinheit in der Web-IDE:
- Startdatei: `aufgabe.py`
- Testsuite: `python3 test_aufgabe.py`
- Musterlösung: `musterloesung.py`

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
IHK AP2 FIDP - LF 10: ETL/ELT-Prozesse & Moderne Datenpipelines
Praxisaufgabe nach ZPA Nord-West 2. Auflage
"""
def loesung():
# 🎯 TEILZIEL: Implementieren Sie die Analyse- bzw. Transformationslogik
pass
if __name__ == '__main__':
print("Starte Aufgabe: LF 10: ETL/ELT-Prozesse & Moderne Datenpipelines")
loesung()

View file

@ -0,0 +1,141 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LF 10: ETL/ELT-Prozesse & Moderne Datenpipelines – IHK AP2 FIDP</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
<style>
.ihk-container { max-width: 1000px; margin: 0 auto; padding: 24px; color: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.ihk-card { background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 28px; margin-bottom: 24px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2); }
.ihk-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.ihk-badge { display: inline-block; padding: 4px 10px; border-radius: 9999px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.ihk-badge-blue { background: #0284c7; color: #ffffff; }
.ihk-badge-success { background: #16a34a; color: #ffffff; }
.ihk-badge-purple { background: #9333ea; color: #ffffff; }
.ihk-nav-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #334155; flex-wrap: wrap; gap: 12px; }
.ihk-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 6px; font-weight: 600; text-decoration: none; transition: all 0.2s; border: none; cursor: pointer; }
.ihk-btn-primary { background: #0284c7; color: #ffffff; }
.ihk-btn-primary:hover { background: #0369a1; }
.ihk-btn-secondary { background: #334155; color: #cbd5e1; }
.ihk-btn-secondary:hover { background: #475569; color: #ffffff; }
.ihk-btn-success { background: #16a34a; color: #ffffff; }
.ihk-btn-success:hover { background: #15803d; }
.ihk-input { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 6px; padding: 10px; color: #f8fafc; font-family: inherit; font-size: 0.95rem; box-sizing: border-box; resize: vertical; }
.ihk-input:focus { outline: none; border-color: #38bdf8; ring: 2px #38bdf8; }
.ihk-theory-box { background: #0f172a; border-left: 4px solid #38bdf8; padding: 16px 20px; border-radius: 0 8px 8px 0; margin-bottom: 24px; }
.ihk-subgoal { background: #1e293b; border: 1px solid #334155; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
pre { background: #090d16; padding: 16px; border-radius: 8px; overflow-x: auto; color: #38bdf8; border: 1px solid #1e293b; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.9rem; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { border: 1px solid #334155; padding: 10px; text-align: left; }
th { background: #0f172a; color: #38bdf8; }
</style>
</head>
<body style="background: #090d16; margin: 0; padding: 20px 0;">
<div class="ihk-container">
<!-- Top Action Bar -->
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
<a href="../../dashboard.html" class="ihk-btn ihk-btn-secondary">⬅️ Zur Kursübersicht</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=04_etl_prozesse_und_datenpipelines" class="ihk-btn ihk-btn-primary">💻 In Web-IDE öffnen</a>
</div>
<!-- Main Content Card -->
<div class="ihk-card">
<div class="ihk-header">
<div>
<span class="ihk-badge ihk-badge-purple">IHK AP2 Fachinformatiker Daten- und Prozessanalyse</span>
<h1 style="color: #f8fafc; margin: 8px 0 4px 0; font-size: 1.8rem;">LF 10: ETL/ELT-Prozesse & Moderne Datenpipelines</h1>
<p style="color: #94a3b8; margin: 0; font-size: 1.05rem;">Extract, Transform, Load, Change Data Capture (CDC), Data Cleaning & Idempotenz</p>
</div>
</div>
<!-- Theory Section -->
<div class="ihk-theory-box">
<h3 style="color: #38bdf8; margin-top: 0;">📚 Fachwissen & IHK-Prüfungsrelevanz</h3>
<p>Datenpipelines bilden das Rückgrat der modernen Datenarchitektur. Daten müssen aus Vorsystemen extrahiert, bereinigt, standardisiert und für Analysen bereitgestellt werden.</p>
<h4>1. ETL vs. ELT Paradigma</h4>
<table>
<tr><th>Kriterium</th><th>ETL (Extract - Transform - Load)</th><th>ELT (Extract - Load - Transform)</th></tr>
<tr><td><strong>Transformationsort</strong></td><td>Separater Transformationsserver / Engine</td><td>Direkt im Zieldaten-Warehouse / Lakehouse</td></tr>
<tr><td><strong>Performance</strong></td><td>Begrenzt durch Serverkapazität</td><td>Massiv parallel (MPP-Cloud wie Snowflake/BigQuery)</td></tr>
<tr><td><strong>Rohdatenspeicherung</strong></td><td>Verliert Rohdaten oft nach Transformation</td><td>Rohdaten bleiben vollständig im DWH erhalten</td></tr>
<tr><td><strong>Einsatzbereich</strong></td><td>Klassische Legacy-DWHs, Datenschutz</td><td>Moderne Cloud-Architekturen & Data Lakes</td></tr>
</table>
<h4>2. Change Data Capture (CDC)</h4>
<p>Statt zyklischer Vollabfragen (Full Dumps) oder fehleranfälliger Polling-Queries via <code>WHERE updated_at &gt; ...</code> liest CDC Transaktionen direkt aus dem <strong>Write-Ahead Log (WAL)</strong> der Datenbank aus. Vorteile: Minimaler Overhead auf dem Produktionssystem, echtzeitnah (Streaming), und <em>Hard Deletes</em> werden zuverlässig erkannt.</p>
<h4>3. Idempotenz & Fehlertoleranz</h4>
<p>Ein ETL-Job ist <strong>idempotent</strong>, wenn eine wiederholte Ausführung mit denselben Parametern denselben Endzustand herstellt, ohne dass Duplikate oder verfälschte Aggregationen entstehen (z.B. mittels <code>UPSERT / MERGE INTO</code> statt blindem <code>INSERT</code>).</p>
</div>
<!-- Exam Questions Section -->
<h3 style="color: #4ade80; margin-top: 32px; border-bottom: 1px solid #334155; padding-bottom: 10px;">
📝 Original-Prüfungsaufgaben (ZPA Nord-West)
</h3>
<div class="ihk-exam-task" data-title="ETL vs ELT Datenpipelines & CDC" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">ETL vs ELT Datenpipelines & CDC</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Ein Unternehmen baut eine moderne Analytics-Plattform mit Cloud Data Warehouse auf.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Vergleichen Sie das klassische ETL-Verfahren (Extract, Transform, Load) mit dem modernen ELT-Verfahren (Extract, Load, Transform). Erläutern Sie Change Data Capture (CDC) zur inkrementellen Datenübernahme.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="ETL: Change Data Capture (CDC) & Idempotenz" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">ETL: Change Data Capture (CDC) & Idempotenz</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Eine E-Commerce-Plattform synchronisiert Kundendaten aus einem operativen PostgreSQL-System in ein analytisches Snowflake Data Warehouse.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
a) Erläutern Sie das Funktionsprinzip von Change Data Capture (CDC) über das Write-Ahead-Log (WAL) im Vergleich zu zyklischen Vollabfragen via SELECT mit Timestamp.
b) Definieren Sie den Begriff 'Idempotenz' im Kontext von Datenpipelines und begründen Sie, warum Idempotenz im Fehlerfall essenziell ist.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
a) CDC liest die Änderungen (INSERT, UPDATE, DELETE) direkt asynchron und latenzarm aus den Transaktionslogs (WAL) der Datenbank aus. Dadurch entsteht nahezu keine zusätzliche Last auf der operativen Datenbank und gelöschte Datensätze (Deletes) werden lückenlos erfasst, was bei Timestamp-SELECTs oft nicht möglich ist.
b) Idempotenz bedeutet, dass eine Pipeline-Operation beliebig oft mit denselben Eingangsdaten ausgeführt werden kann, ohne das Endergebnis zu verändern. Im Fehlerfall oder bei Pipeline-Wiederholungen (Retries) verhindert dies doppelte Datensätze (Duplikate) und inkonsistente Aggregationen.
</div>
</details>
</div>
<!-- Bottom Navigation Buttons -->
<div class="ihk-nav-bar">
<a href="../03_datenquellen_und_datenqualitaet/index.html" class="ihk-btn ihk-btn-secondary">⬅️ Vorheriges Modul</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=04_etl_prozesse_und_datenpipelines" class="ihk-btn ihk-btn-primary">Praxisübung im Terminal</a>
<a href="../05_data_warehouse_und_datenmodellierung/index.html" class="ihk-btn ihk-btn-primary">Nächstes Modul ➡️</a>
</div>
</div>
</div>
<script src="../../../assets/ihk_tools/ihk_question_bank.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
"""
Musterlösung für LF 10: ETL/ELT-Prozesse & Moderne Datenpipelines
"""
def loesung():
return True
if __name__ == '__main__':
print("Musterlösung ausgeführt.")

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
Testsuite für LF 10: ETL/ELT-Prozesse & Moderne Datenpipelines
"""
import unittest
import aufgabe
class TestFIDP(unittest.TestCase):
def test_basic(self):
self.assertTrue(True, "Grundlegende Prüfung bestanden.")
if __name__ == '__main__':
unittest.main()

View file

@ -0,0 +1,17 @@
# LF 10: Data Warehouse Architekturen & Star-/Snowflake-Schema
> Fakten- und Dimensionstabellen, Surrogatschlüssel, Slowly Changing Dimensions (SCD Typ 1-3)
## IHK-Prüfungsrelevanz & Lernziele
Nach offiziellem ZPA Nord-West Prüfungskatalog 2. Auflage für Fachinformatiker/in für Daten- und Prozessanalyse (FIDP).
### Teilziele
1. Theoretische Grundlagen und IHK-Begriffsdefinitionen beherrschen
2. Analytische Vorgehensweisen und Architekturentscheidungen begründen
3. Datenpipelines, Datenmodelle oder Geschäftsprozesse normgerecht modellieren
4. Prüfungsaufgaben nach IHK-Musterlösung strukturiert beantworten
## Praxisübung
Öffnen Sie diese Lerneinheit in der Web-IDE:
- Startdatei: `aufgabe.py`
- Testsuite: `python3 test_aufgabe.py`
- Musterlösung: `musterloesung.py`

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
IHK AP2 FIDP - LF 10: Data Warehouse Architekturen & Star-/Snowflake-Schema
Praxisaufgabe nach ZPA Nord-West 2. Auflage
"""
def loesung():
# 🎯 TEILZIEL: Implementieren Sie die Analyse- bzw. Transformationslogik
pass
if __name__ == '__main__':
print("Starte Aufgabe: LF 10: Data Warehouse Architekturen & Star-/Snowflake-Schema")
loesung()

View file

@ -0,0 +1,151 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LF 10: Data Warehouse Architekturen & Star-/Snowflake-Schema – IHK AP2 FIDP</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
<style>
.ihk-container { max-width: 1000px; margin: 0 auto; padding: 24px; color: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.ihk-card { background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 28px; margin-bottom: 24px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2); }
.ihk-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.ihk-badge { display: inline-block; padding: 4px 10px; border-radius: 9999px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.ihk-badge-blue { background: #0284c7; color: #ffffff; }
.ihk-badge-success { background: #16a34a; color: #ffffff; }
.ihk-badge-purple { background: #9333ea; color: #ffffff; }
.ihk-nav-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #334155; flex-wrap: wrap; gap: 12px; }
.ihk-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 6px; font-weight: 600; text-decoration: none; transition: all 0.2s; border: none; cursor: pointer; }
.ihk-btn-primary { background: #0284c7; color: #ffffff; }
.ihk-btn-primary:hover { background: #0369a1; }
.ihk-btn-secondary { background: #334155; color: #cbd5e1; }
.ihk-btn-secondary:hover { background: #475569; color: #ffffff; }
.ihk-btn-success { background: #16a34a; color: #ffffff; }
.ihk-btn-success:hover { background: #15803d; }
.ihk-input { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 6px; padding: 10px; color: #f8fafc; font-family: inherit; font-size: 0.95rem; box-sizing: border-box; resize: vertical; }
.ihk-input:focus { outline: none; border-color: #38bdf8; ring: 2px #38bdf8; }
.ihk-theory-box { background: #0f172a; border-left: 4px solid #38bdf8; padding: 16px 20px; border-radius: 0 8px 8px 0; margin-bottom: 24px; }
.ihk-subgoal { background: #1e293b; border: 1px solid #334155; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
pre { background: #090d16; padding: 16px; border-radius: 8px; overflow-x: auto; color: #38bdf8; border: 1px solid #1e293b; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.9rem; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { border: 1px solid #334155; padding: 10px; text-align: left; }
th { background: #0f172a; color: #38bdf8; }
</style>
</head>
<body style="background: #090d16; margin: 0; padding: 20px 0;">
<div class="ihk-container">
<!-- Top Action Bar -->
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
<a href="../../dashboard.html" class="ihk-btn ihk-btn-secondary">⬅️ Zur Kursübersicht</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=05_data_warehouse_und_datenmodellierung" class="ihk-btn ihk-btn-primary">💻 In Web-IDE öffnen</a>
</div>
<!-- Main Content Card -->
<div class="ihk-card">
<div class="ihk-header">
<div>
<span class="ihk-badge ihk-badge-purple">IHK AP2 Fachinformatiker Daten- und Prozessanalyse</span>
<h1 style="color: #f8fafc; margin: 8px 0 4px 0; font-size: 1.8rem;">LF 10: Data Warehouse Architekturen & Star-/Snowflake-Schema</h1>
<p style="color: #94a3b8; margin: 0; font-size: 1.05rem;">Fakten- und Dimensionstabellen, Surrogatschlüssel, Slowly Changing Dimensions (SCD Typ 1-3)</p>
</div>
</div>
<!-- Theory Section -->
<div class="ihk-theory-box">
<h3 style="color: #38bdf8; margin-top: 0;">📚 Fachwissen & IHK-Prüfungsrelevanz</h3>
<p>Das <strong>Data Warehouse (DWH)</strong> nach Ralph Kimball oder Bill Inmon ist das analytische Herzstück von Business-Intelligence-Lösungen.</p>
<h4>1. 3-Schichten-Architektur</h4>
<ul>
<li><strong>Staging Area:</strong> 1:1 Kopie der Quellsysteme, flüchtig oder persistent, keine Transformationen für Endanwender.</li>
<li><strong>Core DWH:</strong> Bereinigte, harmonisierte und integrierte Datenbasis. Häufig nach 3NF oder Data Vault 2.0 modelliert.</li>
<li><strong>Data Marts:</strong> Abteilungsspezifische Auswertungsbereiche (Vertrieb, Einkauf, Finanzen), optimiert für schnelle Abfragen im <strong>Sternschema (Star Schema)</strong>.</li>
</ul>
<h4>2. Star-Schema vs. Snowflake-Schema</h4>
<table>
<tr><th>Merkmal</th><th>Sternschema (Star Schema)</th><th>Schneeflockenschema (Snowflake Schema)</th></tr>
<tr><td><strong>Dimensionstabellen</strong></td><td>Denormalisiert (redundant, wenige JOINs)</td><td>Normalisiert (in 3NF zerlegt, viele Sub-Tabellen)</td></tr>
<tr><td><strong>Abfragekomplexität</strong></td><td>Sehr einfach, minimale JOINs, extrem performant</td><td>Komplexer, erfordert Multi-Level-JOINs</td></tr>
<tr><td><strong>Speicherplatz</strong></td><td>Höher durch Redundanz (in DWH irrelevant)</td><td>Geringer, redundanzfrei</td></tr>
<tr><td><strong>IHK-Empfehlung</strong></td><td>Standard für analytische OLAP Data Marts</td><td>Selten bevorzugt wegen JOIN-Overhead</td></tr>
</table>
<h4>3. Slowly Changing Dimensions (SCD)</h4>
<ul>
<li><strong>SCD Typ 1:</strong> Überschreiben alter Werte. Keine Historie. (Z.B. Korrektur von Tippfehlern).</li>
<li><strong>SCD Typ 2:</strong> Neuer Datensatz pro Änderung mit Gültigkeitszeitraum (<code>valid_from</code>, <code>valid_to</code>, <code>is_current</code>) und neuem Surrogatschlüssel. Volle historische Genauigkeit!</li>
<li><strong>SCD Typ 3:</strong> Zusätzliche Spalte <code>previous_value</code>. Nur begrenzte Historie (1 Vorwert).</li>
</ul>
</div>
<!-- Exam Questions Section -->
<h3 style="color: #4ade80; margin-top: 32px; border-bottom: 1px solid #334155; padding-bottom: 10px;">
📝 Original-Prüfungsaufgaben (ZPA Nord-West)
</h3>
<div class="ihk-exam-task" data-title="Data Warehouse Star-Schema vs Snowflake-Schema" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Data Warehouse Star-Schema vs Snowflake-Schema</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Für das Management-Reporting einer Handelskette wird ein multidimensionales Datenmodell entworfen.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Erklären Sie den Aufbau eines Star-Schemas (Faktentabelle und Dimensionstabellen). Grenzen Sie das Star-Schema vom Snowflake-Schema hinsichtlich Normalisierung und Abfrageperformance ab.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="Data Warehouse: Slowly Changing Dimensions (SCD Typ 1 vs. Typ 2)" data-points="10" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Data Warehouse: Slowly Changing Dimensions (SCD Typ 1 vs. Typ 2)</strong>
<span class="ihk-badge ihk-badge-success">10 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einem CRM-System ändert ein Großkunde seinen Firmensitz von München nach Frankfurt am Main. Im Data Warehouse sollen historische Umsatzzahlen weiterhin der Region München zugeordnet bleiben, zukünftige Umsätze jedoch Frankfurt.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
a) Begründen Sie, warum SCD Typ 1 für diese Anforderung ungeeignet ist.
b) Beschreiben Sie den Aufbau und die Funktionsweise einer SCD Typ 2 Implementierung in der Kundendimension (nennen Sie drei typische Metadaten-Spalten).
c) Was versteht man unter einem 'Surrogatschlüssel' (Surrogate Key) und warum ist er bei SCD Typ 2 zwingend erforderlich?
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
a) SCD Typ 1 überschreibt den bestehenden Datensatz einfach. Dadurch geht die Historie verloren, und historische Umsätze würden fälschlicherweise nachträglich Frankfurt zugeordnet.
b) Bei SCD Typ 2 wird für jede Änderung ein neuer Datensatz in der Dimensionstabelle angelegt. Die Historie wird über Metadatenspalten gesteuert: 1. `gueltig_von` (Valid From / Startdatum), 2. `gueltig_bis` (Valid To / Enddatum, z.B. 9999-12-31), 3. `is_current` (Flag 1/0 für den aktuell gültigen Datensatz).
c) Ein Surrogatschlüssel ist ein künstlicher, datenbankinterner Primärschlüssel (z.B. fortlaufende Ganzzahl / Bigint). Da der fachliche Geschäftsschlüssel (Business Key, z.B. Kundennummer) bei SCD Typ 2 mehrfach in der Tabelle vorkommt, garantiert nur der Surrogatschlüssel die Eindeutigkeit jeder historischen Version.
</div>
</details>
</div>
<!-- Bottom Navigation Buttons -->
<div class="ihk-nav-bar">
<a href="../04_etl_prozesse_und_datenpipelines/index.html" class="ihk-btn ihk-btn-secondary">⬅️ Vorheriges Modul</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=05_data_warehouse_und_datenmodellierung" class="ihk-btn ihk-btn-primary">Praxisübung im Terminal</a>
<a href="../06_big_data_architekturen_und_streaming/index.html" class="ihk-btn ihk-btn-primary">Nächstes Modul ➡️</a>
</div>
</div>
</div>
<script src="../../../assets/ihk_tools/ihk_question_bank.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
"""
Musterlösung für LF 10: Data Warehouse Architekturen & Star-/Snowflake-Schema
"""
def loesung():
return True
if __name__ == '__main__':
print("Musterlösung ausgeführt.")

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
Testsuite für LF 10: Data Warehouse Architekturen & Star-/Snowflake-Schema
"""
import unittest
import aufgabe
class TestFIDP(unittest.TestCase):
def test_basic(self):
self.assertTrue(True, "Grundlegende Prüfung bestanden.")
if __name__ == '__main__':
unittest.main()

View file

@ -0,0 +1,17 @@
# LF 11: Big Data, Streaming & Data Lakehouse
> Die 5 V's, Kafka Event Streaming, Lambda- vs. Kappa-Architektur & Data Lake vs. DWH
## IHK-Prüfungsrelevanz & Lernziele
Nach offiziellem ZPA Nord-West Prüfungskatalog 2. Auflage für Fachinformatiker/in für Daten- und Prozessanalyse (FIDP).
### Teilziele
1. Theoretische Grundlagen und IHK-Begriffsdefinitionen beherrschen
2. Analytische Vorgehensweisen und Architekturentscheidungen begründen
3. Datenpipelines, Datenmodelle oder Geschäftsprozesse normgerecht modellieren
4. Prüfungsaufgaben nach IHK-Musterlösung strukturiert beantworten
## Praxisübung
Öffnen Sie diese Lerneinheit in der Web-IDE:
- Startdatei: `aufgabe.py`
- Testsuite: `python3 test_aufgabe.py`
- Musterlösung: `musterloesung.py`

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
IHK AP2 FIDP - LF 11: Big Data, Streaming & Data Lakehouse
Praxisaufgabe nach ZPA Nord-West 2. Auflage
"""
def loesung():
# 🎯 TEILZIEL: Implementieren Sie die Analyse- bzw. Transformationslogik
pass
if __name__ == '__main__':
print("Starte Aufgabe: LF 11: Big Data, Streaming & Data Lakehouse")
loesung()

View file

@ -0,0 +1,149 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LF 11: Big Data, Streaming & Data Lakehouse – IHK AP2 FIDP</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
<style>
.ihk-container { max-width: 1000px; margin: 0 auto; padding: 24px; color: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.ihk-card { background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 28px; margin-bottom: 24px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2); }
.ihk-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.ihk-badge { display: inline-block; padding: 4px 10px; border-radius: 9999px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.ihk-badge-blue { background: #0284c7; color: #ffffff; }
.ihk-badge-success { background: #16a34a; color: #ffffff; }
.ihk-badge-purple { background: #9333ea; color: #ffffff; }
.ihk-nav-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #334155; flex-wrap: wrap; gap: 12px; }
.ihk-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 6px; font-weight: 600; text-decoration: none; transition: all 0.2s; border: none; cursor: pointer; }
.ihk-btn-primary { background: #0284c7; color: #ffffff; }
.ihk-btn-primary:hover { background: #0369a1; }
.ihk-btn-secondary { background: #334155; color: #cbd5e1; }
.ihk-btn-secondary:hover { background: #475569; color: #ffffff; }
.ihk-btn-success { background: #16a34a; color: #ffffff; }
.ihk-btn-success:hover { background: #15803d; }
.ihk-input { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 6px; padding: 10px; color: #f8fafc; font-family: inherit; font-size: 0.95rem; box-sizing: border-box; resize: vertical; }
.ihk-input:focus { outline: none; border-color: #38bdf8; ring: 2px #38bdf8; }
.ihk-theory-box { background: #0f172a; border-left: 4px solid #38bdf8; padding: 16px 20px; border-radius: 0 8px 8px 0; margin-bottom: 24px; }
.ihk-subgoal { background: #1e293b; border: 1px solid #334155; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
pre { background: #090d16; padding: 16px; border-radius: 8px; overflow-x: auto; color: #38bdf8; border: 1px solid #1e293b; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.9rem; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { border: 1px solid #334155; padding: 10px; text-align: left; }
th { background: #0f172a; color: #38bdf8; }
</style>
</head>
<body style="background: #090d16; margin: 0; padding: 20px 0;">
<div class="ihk-container">
<!-- Top Action Bar -->
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
<a href="../../dashboard.html" class="ihk-btn ihk-btn-secondary">⬅️ Zur Kursübersicht</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=06_big_data_architekturen_und_streaming" class="ihk-btn ihk-btn-primary">💻 In Web-IDE öffnen</a>
</div>
<!-- Main Content Card -->
<div class="ihk-card">
<div class="ihk-header">
<div>
<span class="ihk-badge ihk-badge-purple">IHK AP2 Fachinformatiker Daten- und Prozessanalyse</span>
<h1 style="color: #f8fafc; margin: 8px 0 4px 0; font-size: 1.8rem;">LF 11: Big Data, Streaming & Data Lakehouse</h1>
<p style="color: #94a3b8; margin: 0; font-size: 1.05rem;">Die 5 V's, Kafka Event Streaming, Lambda- vs. Kappa-Architektur & Data Lake vs. DWH</p>
</div>
</div>
<!-- Theory Section -->
<div class="ihk-theory-box">
<h3 style="color: #38bdf8; margin-top: 0;">📚 Fachwissen & IHK-Prüfungsrelevanz</h3>
<p>Klassische relationale Systeme stoßen bei extremen Datenmengen und Echtzeitanforderungen an physikalische Grenzen. Big-Data-Architekturen ermöglichen massiv-parallele und ereignisgesteuerte Verarbeitungen.</p>
<h4>1. Die 5 V's von Big Data</h4>
<ul>
<li><strong>Volume:</strong> Datenvolumen (Terabyte bis Petabyte-Skala).</li>
<li><strong>Velocity:</strong> Geschwindigkeit, mit der Daten einströmen und verarbeitet werden müssen (Streaming, Subsekundenbereich).</li>
<li><strong>Variety:</strong> Vielfalt der Formate (Strukturiert, Audio, Sensor-Logs, JSON).</li>
<li><strong>Veracity:</strong> Glaubwürdigkeit und Verlässlichkeit der Daten.</li>
<li><strong>Value:</strong> Der geschäftliche Mehrwert, der aus den Daten generiert wird.</li>
</ul>
<h4>2. Architektur-Paradigmen: Lambda vs. Kappa</h4>
<table>
<tr><th>Architektur</th><th>Aufbau & Funktionsweise</th><th>Vor- & Nachteile</th></tr>
<tr><td><strong>Lambda-Architektur</strong></td><td>Zwei parallele Pfade: Ein Batch Layer (z.B. Hadoop/Spark für exakte historische Analysen) und ein Speed Layer (z.B. Storm/Flink für Echtzeit-Ereignisse), zusammengeführt im Serving Layer.</td><td>Sehr robust, aber doppelte Codelogik in Batch- und Speed-Pfad erforderlich.</td></tr>
<tr><td><strong>Kappa-Architektur</strong></td><td>Nur ein einziger Stream-Processing-Pfad (z.B. Kafka + Flink). Historische Daten werden einfach als schneller Stream erneut abgespielt (Replay).</td><td>Einheitliche Codebasis, geringere Wartungskomplexität.</td></tr>
</table>
<h4>3. Data Lake vs. Data Warehouse vs. Lakehouse</h4>
<p>Ein <strong>Data Lake</strong> speichert Rohdaten in nativen Formaten (Object Storage wie S3/Azure Blob). Das moderne <strong>Data Lakehouse</strong> (Delta Lake, Apache Iceberg) kombiniert die Kostenvorteile und Skalierbarkeit des Lakes mit den ACID-Transaktionen, Schema Enforcement und Indexierung eines DWHs.</p>
</div>
<!-- Exam Questions Section -->
<h3 style="color: #4ade80; margin-top: 32px; border-bottom: 1px solid #334155; padding-bottom: 10px;">
📝 Original-Prüfungsaufgaben (ZPA Nord-West)
</h3>
<div class="ihk-exam-task" data-title="Datenformate & Datenqualität: Parquet vs. JSON & ISO 25012" data-points="10" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Datenformate & Datenqualität: Parquet vs. JSON & ISO 25012</strong>
<span class="ihk-badge ihk-badge-success">10 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Ein Logistikunternehmen speichert täglich 80 Millionen Sensordaten aus Frachtcontainern. Derzeit liegen die Daten als unkomprimierte JSON-Dateien vor. Die analytischen Abfragen auf Zeitreihen dauern mehrere Stunden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
a) Erläutern Sie das Speicherprinzip von Apache Parquet (spaltenorientiert) im Vergleich zu zeilenbasierten JSON-Dateien.
b) Nennen Sie zwei konkrete Vorteile, die sich bei analytischen Aggregationsabfragen (z.B. Durchschnittstemperatur pro Monat) durch Parquet ergeben.
c) Nennen und erläutern Sie zwei Merkmale der Datenqualität nach DIN ISO/IEC 25012, die bei Sensordaten vor der Persistierung geprüft werden müssen.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
a) JSON ist zeilenorientiert (Row-oriented); Parquet ist spaltenorientiert (Column-oriented), d.h. Werte derselben Spalte werden zusammenhängend auf der Festplatte gespeichert.
b) 1. Column Pruning: Es müssen nur die Spalten von der Festplatte gelesen werden, die in der Abfrage benötigt werden (drastische Reduktion der I/O-Last). 2. Hohe Kompressionsrate: Da homogene Datentypen hintereinander liegen, greifen Algorithmen wie Snappy oder Dictionary Encoding extrem effizient.
c) 1. Genauigkeit (Accuracy): Sensormesswerte dürfen keine Messfehler oder unphysikalischen Ausreißer aufweisen. 2. Vollständigkeit (Completeness): Es dürfen keine Zeitintervalle oder Funkabrisse unbemerkt fehlen.
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="ETL: Change Data Capture (CDC) & Idempotenz" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">ETL: Change Data Capture (CDC) & Idempotenz</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Eine E-Commerce-Plattform synchronisiert Kundendaten aus einem operativen PostgreSQL-System in ein analytisches Snowflake Data Warehouse.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
a) Erläutern Sie das Funktionsprinzip von Change Data Capture (CDC) über das Write-Ahead-Log (WAL) im Vergleich zu zyklischen Vollabfragen via SELECT mit Timestamp.
b) Definieren Sie den Begriff 'Idempotenz' im Kontext von Datenpipelines und begründen Sie, warum Idempotenz im Fehlerfall essenziell ist.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
a) CDC liest die Änderungen (INSERT, UPDATE, DELETE) direkt asynchron und latenzarm aus den Transaktionslogs (WAL) der Datenbank aus. Dadurch entsteht nahezu keine zusätzliche Last auf der operativen Datenbank und gelöschte Datensätze (Deletes) werden lückenlos erfasst, was bei Timestamp-SELECTs oft nicht möglich ist.
b) Idempotenz bedeutet, dass eine Pipeline-Operation beliebig oft mit denselben Eingangsdaten ausgeführt werden kann, ohne das Endergebnis zu verändern. Im Fehlerfall oder bei Pipeline-Wiederholungen (Retries) verhindert dies doppelte Datensätze (Duplikate) und inkonsistente Aggregationen.
</div>
</details>
</div>
<!-- Bottom Navigation Buttons -->
<div class="ihk-nav-bar">
<a href="../05_data_warehouse_und_datenmodellierung/index.html" class="ihk-btn ihk-btn-secondary">⬅️ Vorheriges Modul</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=06_big_data_architekturen_und_streaming" class="ihk-btn ihk-btn-primary">Praxisübung im Terminal</a>
<a href="../07_deskriptive_und_induktive_statistik/index.html" class="ihk-btn ihk-btn-primary">Nächstes Modul ➡️</a>
</div>
</div>
</div>
<script src="../../../assets/ihk_tools/ihk_question_bank.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
"""
Musterlösung für LF 11: Big Data, Streaming & Data Lakehouse
"""
def loesung():
return True
if __name__ == '__main__':
print("Musterlösung ausgeführt.")

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
Testsuite für LF 11: Big Data, Streaming & Data Lakehouse
"""
import unittest
import aufgabe
class TestFIDP(unittest.TestCase):
def test_basic(self):
self.assertTrue(True, "Grundlegende Prüfung bestanden.")
if __name__ == '__main__':
unittest.main()

View file

@ -0,0 +1,17 @@
# LF 11: Deskriptive & Induktive Statistik
> Lage- & Streumaße, Normalverteilung, Hypothesentests, p-Wert & A/B-Testing
## IHK-Prüfungsrelevanz & Lernziele
Nach offiziellem ZPA Nord-West Prüfungskatalog 2. Auflage für Fachinformatiker/in für Daten- und Prozessanalyse (FIDP).
### Teilziele
1. Theoretische Grundlagen und IHK-Begriffsdefinitionen beherrschen
2. Analytische Vorgehensweisen und Architekturentscheidungen begründen
3. Datenpipelines, Datenmodelle oder Geschäftsprozesse normgerecht modellieren
4. Prüfungsaufgaben nach IHK-Musterlösung strukturiert beantworten
## Praxisübung
Öffnen Sie diese Lerneinheit in der Web-IDE:
- Startdatei: `aufgabe.py`
- Testsuite: `python3 test_aufgabe.py`
- Musterlösung: `musterloesung.py`

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
IHK AP2 FIDP - LF 11: Deskriptive & Induktive Statistik
Praxisaufgabe nach ZPA Nord-West 2. Auflage
"""
def loesung():
# 🎯 TEILZIEL: Implementieren Sie die Analyse- bzw. Transformationslogik
pass
if __name__ == '__main__':
print("Starte Aufgabe: LF 11: Deskriptive & Induktive Statistik")
loesung()

View file

@ -0,0 +1,151 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LF 11: Deskriptive & Induktive Statistik – IHK AP2 FIDP</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
<style>
.ihk-container { max-width: 1000px; margin: 0 auto; padding: 24px; color: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.ihk-card { background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 28px; margin-bottom: 24px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2); }
.ihk-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.ihk-badge { display: inline-block; padding: 4px 10px; border-radius: 9999px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.ihk-badge-blue { background: #0284c7; color: #ffffff; }
.ihk-badge-success { background: #16a34a; color: #ffffff; }
.ihk-badge-purple { background: #9333ea; color: #ffffff; }
.ihk-nav-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #334155; flex-wrap: wrap; gap: 12px; }
.ihk-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 6px; font-weight: 600; text-decoration: none; transition: all 0.2s; border: none; cursor: pointer; }
.ihk-btn-primary { background: #0284c7; color: #ffffff; }
.ihk-btn-primary:hover { background: #0369a1; }
.ihk-btn-secondary { background: #334155; color: #cbd5e1; }
.ihk-btn-secondary:hover { background: #475569; color: #ffffff; }
.ihk-btn-success { background: #16a34a; color: #ffffff; }
.ihk-btn-success:hover { background: #15803d; }
.ihk-input { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 6px; padding: 10px; color: #f8fafc; font-family: inherit; font-size: 0.95rem; box-sizing: border-box; resize: vertical; }
.ihk-input:focus { outline: none; border-color: #38bdf8; ring: 2px #38bdf8; }
.ihk-theory-box { background: #0f172a; border-left: 4px solid #38bdf8; padding: 16px 20px; border-radius: 0 8px 8px 0; margin-bottom: 24px; }
.ihk-subgoal { background: #1e293b; border: 1px solid #334155; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
pre { background: #090d16; padding: 16px; border-radius: 8px; overflow-x: auto; color: #38bdf8; border: 1px solid #1e293b; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.9rem; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { border: 1px solid #334155; padding: 10px; text-align: left; }
th { background: #0f172a; color: #38bdf8; }
</style>
</head>
<body style="background: #090d16; margin: 0; padding: 20px 0;">
<div class="ihk-container">
<!-- Top Action Bar -->
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
<a href="../../dashboard.html" class="ihk-btn ihk-btn-secondary">⬅️ Zur Kursübersicht</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=07_deskriptive_und_induktive_statistik" class="ihk-btn ihk-btn-primary">💻 In Web-IDE öffnen</a>
</div>
<!-- Main Content Card -->
<div class="ihk-card">
<div class="ihk-header">
<div>
<span class="ihk-badge ihk-badge-blue">IHK AP2 Fachinformatiker Daten- und Prozessanalyse</span>
<h1 style="color: #f8fafc; margin: 8px 0 4px 0; font-size: 1.8rem;">LF 11: Deskriptive & Induktive Statistik</h1>
<p style="color: #94a3b8; margin: 0; font-size: 1.05rem;">Lage- & Streumaße, Normalverteilung, Hypothesentests, p-Wert & A/B-Testing</p>
</div>
</div>
<!-- Theory Section -->
<div class="ihk-theory-box">
<h3 style="color: #38bdf8; margin-top: 0;">📚 Fachwissen & IHK-Prüfungsrelevanz</h3>
<p>Statistische Methoden sind das mathematische Fundament für jede belastbare Datenanalyse und jedes Machine-Learning-Modell.</p>
<h4>1. Lagemaße (Location Measures)</h4>
<ul>
<li><strong>Arithmetisches Mittel (Mittelwert):</strong> Summe aller Werte dividiert durch die Anzahl. <em>Extrem ausreißerempfindlich!</em></li>
<li><strong>Median (Zentralwert):</strong> Teilt die geordnete Datenreihe in zwei gleich große Hälften (50 % darüber, 50 % darunter). <em>Sehr robust gegen Ausreißer!</em></li>
<li><strong>Modus (Modalwert):</strong> Der am häufigsten vorkommende Wert. Anwendbar bereits auf Nominalskalen.</li>
</ul>
<h4>2. Streumaße (Dispersion Measures)</h4>
<ul>
<li><strong>Varianz (&sigma;&sup2;):</strong> Mittlere quadrierte Abweichung der Messwerte vom Mittelwert.</li>
<li><strong>Standardabweichung (&sigma;):</strong> Quadratwurzel der Varianz. Hat dieselbe physikalische Einheit wie die Messwerte.</li>
<li><strong>Interquartilsabstand (IQR):</strong> Differenz zwischen dem 3. Quartil (Q3, 75 %) und dem 1. Quartil (Q1, 25 %). Bildet den Körper des Boxplots.</li>
</ul>
<h4>3. Hypothesentests & A/B-Testing</h4>
<p>Beim A/B-Testing im E-Commerce wird geprüft, ob eine Modifikation signifikant besser ist als das Original:
<ul>
<li><strong>Nullhypothese (H0):</strong> Es gibt keinen Unterschied zwischen Gruppe A und B.</li>
<li><strong>Alternativhypothese (H1):</strong> Gruppe B erzielt ein signifikant abweichendes Ergebnis.</li>
<li><strong>p-Wert & Signifikanzniveau (&alpha;):</strong> Ist der p-Wert &lt; &alpha; (meist 0,05 = 5 %), wird H0 verworfen. Das Ergebnis ist statistisch signifikant.</li>
</ul>
</p>
</div>
<!-- Exam Questions Section -->
<h3 style="color: #4ade80; margin-top: 32px; border-bottom: 1px solid #334155; padding-bottom: 10px;">
📝 Original-Prüfungsaufgaben (ZPA Nord-West)
</h3>
<div class="ihk-exam-task" data-title="Statistische Kennzahlen & Hypothesentests" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Statistische Kennzahlen & Hypothesentests</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einer A/B-Testing-Studie soll geprüft werden, ob ein neues Checkout-Design die Conversion Rate signifikant erhöht.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Unterscheiden Sie Mittelwert, Median und Modus. Erläutern Sie Standardabweichung und Varianz. Was bedeuten Nullhypothese (H0), Alternativhypothese (H1) und der p-Wert bei einem Signifikanzniveau von alpha = 0,05?
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="Induktive Statistik: Hypothesentest, p-Wert & A/B-Testing" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Induktive Statistik: Hypothesentest, p-Wert & A/B-Testing</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Ein Online-Shop testet einen neuen Checkout-Button in einem A/B-Test. Variante A (bestehend) erreicht eine Konversionsrate von 3,2 %, Variante B (neu) 3,8 %. Der berechnete p-Wert beträgt 0,023 bei einem festgelegten Signifikanzniveau alpha von 0,05.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
a) Formulieren Sie die Nullhypothese H0 und die Alternativhypothese H1 für diesen Test.
b) Interpretieren Sie das Testergebnis: Wird die Nullhypothese verworfen? Begründen Sie Ihre Entscheidung anhand des p-Werts.
c) Erläutern Sie den Unterschied zwischen einem Alpha-Fehler (Fehler 1. Art) und einem Beta-Fehler (Fehler 2. Art).
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
a) H0: Die neue Button-Variante hat keinen signifikanten Einfluss auf die Konversionsrate (Variante B ist gleich oder schlechter als A). H1: Die neue Variante führt zu einer signifikant höheren Konversionsrate als Variante A.
b) Da der p-Wert (0,023) kleiner ist als das Signifikanzniveau alpha (0,05), wird die Nullhypothese verworfen. Die Konversionssteigerung ist mit 95 % statistischer Sicherheit signifikant.
c) Alpha-Fehler (Fehler 1. Art): H0 wird fälschlicherweise verworfen, obwohl kein echter Unterschied vorliegt (falsch-positiv). Beta-Fehler (Fehler 2. Art): H0 wird beibehalten, obwohl Variante B in Wahrheit überlegen ist (falsch-negativ).
</div>
</details>
</div>
<!-- Bottom Navigation Buttons -->
<div class="ihk-nav-bar">
<a href="../06_big_data_architekturen_und_streaming/index.html" class="ihk-btn ihk-btn-secondary">⬅️ Vorheriges Modul</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=07_deskriptive_und_induktive_statistik" class="ihk-btn ihk-btn-primary">Praxisübung im Terminal</a>
<a href="../08_machine_learning_und_kuenstliche_intelligenz/index.html" class="ihk-btn ihk-btn-primary">Nächstes Modul ➡️</a>
</div>
</div>
</div>
<script src="../../../assets/ihk_tools/ihk_question_bank.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
"""
Musterlösung für LF 11: Deskriptive & Induktive Statistik
"""
def loesung():
return True
if __name__ == '__main__':
print("Musterlösung ausgeführt.")

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
Testsuite für LF 11: Deskriptive & Induktive Statistik
"""
import unittest
import aufgabe
class TestFIDP(unittest.TestCase):
def test_basic(self):
self.assertTrue(True, "Grundlegende Prüfung bestanden.")
if __name__ == '__main__':
unittest.main()

View file

@ -0,0 +1,17 @@
# LF 11: Machine Learning & Modell-Evaluation
> Supervised/Unsupervised Learning, Confusion Matrix, Precision, Recall, F1-Score & ROC-AUC
## IHK-Prüfungsrelevanz & Lernziele
Nach offiziellem ZPA Nord-West Prüfungskatalog 2. Auflage für Fachinformatiker/in für Daten- und Prozessanalyse (FIDP).
### Teilziele
1. Theoretische Grundlagen und IHK-Begriffsdefinitionen beherrschen
2. Analytische Vorgehensweisen und Architekturentscheidungen begründen
3. Datenpipelines, Datenmodelle oder Geschäftsprozesse normgerecht modellieren
4. Prüfungsaufgaben nach IHK-Musterlösung strukturiert beantworten
## Praxisübung
Öffnen Sie diese Lerneinheit in der Web-IDE:
- Startdatei: `aufgabe.py`
- Testsuite: `python3 test_aufgabe.py`
- Musterlösung: `musterloesung.py`

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
IHK AP2 FIDP - LF 11: Machine Learning & Modell-Evaluation
Praxisaufgabe nach ZPA Nord-West 2. Auflage
"""
def loesung():
# 🎯 TEILZIEL: Implementieren Sie die Analyse- bzw. Transformationslogik
pass
if __name__ == '__main__':
print("Starte Aufgabe: LF 11: Machine Learning & Modell-Evaluation")
loesung()

View file

@ -0,0 +1,151 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LF 11: Machine Learning & Modell-Evaluation – IHK AP2 FIDP</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
<style>
.ihk-container { max-width: 1000px; margin: 0 auto; padding: 24px; color: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.ihk-card { background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 28px; margin-bottom: 24px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2); }
.ihk-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.ihk-badge { display: inline-block; padding: 4px 10px; border-radius: 9999px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.ihk-badge-blue { background: #0284c7; color: #ffffff; }
.ihk-badge-success { background: #16a34a; color: #ffffff; }
.ihk-badge-purple { background: #9333ea; color: #ffffff; }
.ihk-nav-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #334155; flex-wrap: wrap; gap: 12px; }
.ihk-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 6px; font-weight: 600; text-decoration: none; transition: all 0.2s; border: none; cursor: pointer; }
.ihk-btn-primary { background: #0284c7; color: #ffffff; }
.ihk-btn-primary:hover { background: #0369a1; }
.ihk-btn-secondary { background: #334155; color: #cbd5e1; }
.ihk-btn-secondary:hover { background: #475569; color: #ffffff; }
.ihk-btn-success { background: #16a34a; color: #ffffff; }
.ihk-btn-success:hover { background: #15803d; }
.ihk-input { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 6px; padding: 10px; color: #f8fafc; font-family: inherit; font-size: 0.95rem; box-sizing: border-box; resize: vertical; }
.ihk-input:focus { outline: none; border-color: #38bdf8; ring: 2px #38bdf8; }
.ihk-theory-box { background: #0f172a; border-left: 4px solid #38bdf8; padding: 16px 20px; border-radius: 0 8px 8px 0; margin-bottom: 24px; }
.ihk-subgoal { background: #1e293b; border: 1px solid #334155; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
pre { background: #090d16; padding: 16px; border-radius: 8px; overflow-x: auto; color: #38bdf8; border: 1px solid #1e293b; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.9rem; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { border: 1px solid #334155; padding: 10px; text-align: left; }
th { background: #0f172a; color: #38bdf8; }
</style>
</head>
<body style="background: #090d16; margin: 0; padding: 20px 0;">
<div class="ihk-container">
<!-- Top Action Bar -->
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
<a href="../../dashboard.html" class="ihk-btn ihk-btn-secondary">⬅️ Zur Kursübersicht</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=08_machine_learning_und_kuenstliche_intelligenz" class="ihk-btn ihk-btn-primary">💻 In Web-IDE öffnen</a>
</div>
<!-- Main Content Card -->
<div class="ihk-card">
<div class="ihk-header">
<div>
<span class="ihk-badge ihk-badge-blue">IHK AP2 Fachinformatiker Daten- und Prozessanalyse</span>
<h1 style="color: #f8fafc; margin: 8px 0 4px 0; font-size: 1.8rem;">LF 11: Machine Learning & Modell-Evaluation</h1>
<p style="color: #94a3b8; margin: 0; font-size: 1.05rem;">Supervised/Unsupervised Learning, Confusion Matrix, Precision, Recall, F1-Score & ROC-AUC</p>
</div>
</div>
<!-- Theory Section -->
<div class="ihk-theory-box">
<h3 style="color: #38bdf8; margin-top: 0;">📚 Fachwissen & IHK-Prüfungsrelevanz</h3>
<p>Im Prüfungsbereich 1 werden Fachinformatiker für Daten- und Prozessanalyse regelmäßig zur Evaluation von Klassifikations- und Regressionsmodellen geprüft.</p>
<h4>1. Die Lernparadigmen</h4>
<ul>
<li><strong>Supervised Learning (Überwacht):</strong> Trainingsdaten enthalten Zielwerte (Labels). Aufgaben: <em>Klassifikation</em> (diskrete Klassen, z.B. Spam/Non-Spam) und <em>Regression</em> (stetige Werte, z.B. Immobilienpreise).</li>
<li><strong>Unsupervised Learning (Unüberwacht):</strong> Keine Labels vorhanden. Ziel: Auffinden verborgener Muster, Gruppierungen (Clustering via k-Means, DBSCAN) oder Dimensionsreduktion (PCA).</li>
<li><strong>Reinforcement Learning (Bestärkend):</strong> Ein Agent lernt durch Interaktion mit einer Umgebung über Belohnungen und Strafen.</li>
</ul>
<h4>2. Die Konfusionsmatrix (Confusion Matrix)</h4>
<table>
<tr><th>Reale Klasse \ Vorhersage</th><th>Vorhergesagt: Positiv</th><th>Vorhergesagt: Negativ</th></tr>
<tr><td><strong>Tatsächlich: Positiv</strong></td><td><strong style="color: #4ade80;">True Positive (TP)</strong></td><td><strong style="color: #f87171;">False Negative (FN) - Typ II</strong></td></tr>
<tr><td><strong>Tatsächlich: Negativ</strong></td><td><strong style="color: #fcd34d;">False Positive (FP) - Typ I</strong></td><td><strong style="color: #60a5fa;">True Negative (TN)</strong></td></tr>
</table>
<h4>3. Bewertungskennzahlen nach IHK-Formel</h4>
<ul>
<li><strong>Accuracy:</strong> <code>(TP + TN) / (TP + FP + FN + TN)</code> (Achtung: irreführend bei unbalancierten Datensätzen wie Betrug oder Krebsdiagnosen!).</li>
<li><strong>Precision:</strong> <code>TP / (TP + FP)</code> (Wie verlässlich sind positive Alarme?).</li>
<li><strong>Recall (Sensitivität):</strong> <code>TP / (TP + FN)</code> (Wie viele der tatsächlichen Treffer wurden entdeckt?).</li>
<li><strong>F1-Score:</strong> Harmonisches Mittel aus Precision und Recall: <code>2 &times; (Precision &times; Recall) / (Precision + Recall)</code>.</li>
</ul>
</div>
<div id="confusion-matrix-app" style="margin: 24px 0;"></div>
<!-- Exam Questions Section -->
<h3 style="color: #4ade80; margin-top: 32px; border-bottom: 1px solid #334155; padding-bottom: 10px;">
📝 Original-Prüfungsaufgaben (ZPA Nord-West)
</h3>
<div class="ihk-exam-task" data-title="Machine Learning Evaluation Confusion Matrix" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Machine Learning Evaluation Confusion Matrix</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Ein Machine-Learning-Modell soll betrügerische Kreditkartentransaktionen (Fraud) automatisiert klassifizieren.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Erläutern Sie die 4 Felder einer Confusion Matrix (TP, FP, TN, FN). Definieren Sie die Kennzahlen Precision (Genauigkeit), Recall (Trefferquote/Sensitivität) und F1-Score. Warum ist die reine Accuracy (Genauigkeit) bei unausgeglichenen Datensätzen irreführend?
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="Machine Learning: Confusion Matrix & Kennzahlen (Precision, Recall)" data-points="10" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Machine Learning: Confusion Matrix & Kennzahlen (Precision, Recall)</strong>
<span class="ihk-badge ihk-badge-success">10 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Ein Machine-Learning-Modell soll betrügerische Kreditkartentransaktionen (Fraud) erkennen. Ein Testdatensatz von 1.000 Transaktionen liefert folgende Konfusionsmatrix: True Positive (TP) = 80, False Positive (FP) = 20, False Negative (FN) = 10, True Negative (TN) = 890.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
a) Berechnen Sie die Accuracy (Treffgenauigkeit) des Modells in Prozent.
b) Berechnen Sie die Precision (Präzision) und den Recall (Sensitivität / Trefferquote).
c) Begründen Sie, warum bei Betrugserkennung der Recall in der Regel wichtiger ist als die Precision.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
a) Accuracy = (TP + TN) / Gesamt = (80 + 890) / 1000 = 970 / 1000 = 97,0 %.
b) Precision = TP / (TP + FP) = 80 / (80 + 20) = 80 / 100 = 80,0 %.
Recall = TP / (TP + FN) = 80 / (80 + 10) = 80 / 90 = 88,89 %.
c) Ein unentdeckter Betrugsfall (False Negative) verursacht direkten finanziellen Schaden und rechtliche Risiken. Ein Fehlalarm (False Positive) führt hingegen meist nur zu einer kurzen manuellen Nachprüfung oder SMS-Bestätigung. Daher muss FN minimiert und somit der Recall maximiert werden.
</div>
</details>
</div>
<!-- Bottom Navigation Buttons -->
<div class="ihk-nav-bar">
<a href="../07_deskriptive_und_induktive_statistik/index.html" class="ihk-btn ihk-btn-secondary">⬅️ Vorheriges Modul</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=08_machine_learning_und_kuenstliche_intelligenz" class="ihk-btn ihk-btn-primary">Praxisübung im Terminal</a>
<a href="../09_datenvisualisierung_und_bi_reporting/index.html" class="ihk-btn ihk-btn-primary">Nächstes Modul ➡️</a>
</div>
</div>
</div>
<script src="../../../assets/ihk_tools/ihk_question_bank.js"></script>
<script src="../../../assets/ihk_tools/confusion_matrix_calc.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
"""
Musterlösung für LF 11: Machine Learning & Modell-Evaluation
"""
def loesung():
return True
if __name__ == '__main__':
print("Musterlösung ausgeführt.")

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
Testsuite für LF 11: Machine Learning & Modell-Evaluation
"""
import unittest
import aufgabe
class TestFIDP(unittest.TestCase):
def test_basic(self):
self.assertTrue(True, "Grundlegende Prüfung bestanden.")
if __name__ == '__main__':
unittest.main()

View file

@ -0,0 +1,17 @@
# LF 12: Datenvisualisierung & BI-Dashboard-Design
> Gestaltgesetze, Diagrammauswahl, Barrierefreiheit, Power BI / Tableau & Tufte-Prinzipien
## IHK-Prüfungsrelevanz & Lernziele
Nach offiziellem ZPA Nord-West Prüfungskatalog 2. Auflage für Fachinformatiker/in für Daten- und Prozessanalyse (FIDP).
### Teilziele
1. Theoretische Grundlagen und IHK-Begriffsdefinitionen beherrschen
2. Analytische Vorgehensweisen und Architekturentscheidungen begründen
3. Datenpipelines, Datenmodelle oder Geschäftsprozesse normgerecht modellieren
4. Prüfungsaufgaben nach IHK-Musterlösung strukturiert beantworten
## Praxisübung
Öffnen Sie diese Lerneinheit in der Web-IDE:
- Startdatei: `aufgabe.py`
- Testsuite: `python3 test_aufgabe.py`
- Musterlösung: `musterloesung.py`

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
IHK AP2 FIDP - LF 12: Datenvisualisierung & BI-Dashboard-Design
Praxisaufgabe nach ZPA Nord-West 2. Auflage
"""
def loesung():
# 🎯 TEILZIEL: Implementieren Sie die Analyse- bzw. Transformationslogik
pass
if __name__ == '__main__':
print("Starte Aufgabe: LF 12: Datenvisualisierung & BI-Dashboard-Design")
loesung()

View file

@ -0,0 +1,126 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LF 12: Datenvisualisierung & BI-Dashboard-Design – IHK AP2 FIDP</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
<style>
.ihk-container { max-width: 1000px; margin: 0 auto; padding: 24px; color: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.ihk-card { background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 28px; margin-bottom: 24px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2); }
.ihk-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.ihk-badge { display: inline-block; padding: 4px 10px; border-radius: 9999px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.ihk-badge-blue { background: #0284c7; color: #ffffff; }
.ihk-badge-success { background: #16a34a; color: #ffffff; }
.ihk-badge-purple { background: #9333ea; color: #ffffff; }
.ihk-nav-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #334155; flex-wrap: wrap; gap: 12px; }
.ihk-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 6px; font-weight: 600; text-decoration: none; transition: all 0.2s; border: none; cursor: pointer; }
.ihk-btn-primary { background: #0284c7; color: #ffffff; }
.ihk-btn-primary:hover { background: #0369a1; }
.ihk-btn-secondary { background: #334155; color: #cbd5e1; }
.ihk-btn-secondary:hover { background: #475569; color: #ffffff; }
.ihk-btn-success { background: #16a34a; color: #ffffff; }
.ihk-btn-success:hover { background: #15803d; }
.ihk-input { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 6px; padding: 10px; color: #f8fafc; font-family: inherit; font-size: 0.95rem; box-sizing: border-box; resize: vertical; }
.ihk-input:focus { outline: none; border-color: #38bdf8; ring: 2px #38bdf8; }
.ihk-theory-box { background: #0f172a; border-left: 4px solid #38bdf8; padding: 16px 20px; border-radius: 0 8px 8px 0; margin-bottom: 24px; }
.ihk-subgoal { background: #1e293b; border: 1px solid #334155; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
pre { background: #090d16; padding: 16px; border-radius: 8px; overflow-x: auto; color: #38bdf8; border: 1px solid #1e293b; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.9rem; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { border: 1px solid #334155; padding: 10px; text-align: left; }
th { background: #0f172a; color: #38bdf8; }
</style>
</head>
<body style="background: #090d16; margin: 0; padding: 20px 0;">
<div class="ihk-container">
<!-- Top Action Bar -->
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
<a href="../../dashboard.html" class="ihk-btn ihk-btn-secondary">⬅️ Zur Kursübersicht</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=09_datenvisualisierung_und_bi_reporting" class="ihk-btn ihk-btn-primary">💻 In Web-IDE öffnen</a>
</div>
<!-- Main Content Card -->
<div class="ihk-card">
<div class="ihk-header">
<div>
<span class="ihk-badge ihk-badge-purple">IHK AP2 Fachinformatiker Daten- und Prozessanalyse</span>
<h1 style="color: #f8fafc; margin: 8px 0 4px 0; font-size: 1.8rem;">LF 12: Datenvisualisierung & BI-Dashboard-Design</h1>
<p style="color: #94a3b8; margin: 0; font-size: 1.05rem;">Gestaltgesetze, Diagrammauswahl, Barrierefreiheit, Power BI / Tableau & Tufte-Prinzipien</p>
</div>
</div>
<!-- Theory Section -->
<div class="ihk-theory-box">
<h3 style="color: #38bdf8; margin-top: 0;">📚 Fachwissen & IHK-Prüfungsrelevanz</h3>
<p>Erkenntnisse aus Daten müssen für Stakeholder und das Management intuitiv und verzerrungsfrei visualisiert werden. Eine fehlerhafte Diagrammauswahl führt zu Fehlentscheidungen.</p>
<h4>1. Diagrammtypen & Einsatzzwecke nach IBCS</h4>
<table>
<tr><th>Diagrammtyp</th><th>Optimaler Einsatzzweck</th><th>Typischer Fehler</th></tr>
<tr><td><strong>Balkendiagramm (horizontal)</strong></td><td>Rangfolgen und Vergleiche von Kategorien (viele oder lange Namen).</td><td>Nicht sortierte Balken, unruhige Achsenskalierung.</td></tr>
<tr><td><strong>Säulendiagramm (vertikal)</strong></td><td>Zeitreihen (Monate, Quartale, Jahre) mit wenigen Intervallen.</td><td>Achsenabschnitt beginnt nicht bei Null (Verzerrung!).</td></tr>
<tr><td><strong>Liniendiagramm</strong></td><td>Kontinuierliche Verläufe, Trends über kontinuierliche Zeitachsen.</td><td>Einsatz für diskrete, ungeordnete Kategorien.</td></tr>
<tr><td><strong>Streudiagramm (Scatter Plot)</strong></td><td>Korrelationen und Beziehungen zwischen zwei metrischen Variablen.</td><td>Verwechslung von Korrelation mit Kausalität.</td></tr>
<tr><td><strong>Boxplot</strong></td><td>Verteilungen, Mediane, Quartile und Ausreißer mehrerer Gruppen.</td><td>Wenig bekannt bei Fachbereichs-Usern.</td></tr>
<tr><td><strong>Kreisdiagramm (Pie Chart)</strong></td><td>Maximal 2 bis 3 Anteile am Ganzen (100 %).</td><td>Mehr als 5 Segmente, 3D-Verzerrungen (IHK-No-Go!).</td></tr>
</table>
<h4>2. Gestaltungsregeln nach Edward Tufte</h4>
<ul>
<li><strong>Data-Ink-Ratio maximieren:</strong> Entfernung von dekorativem 'Chartjunk' (unnötige 3D-Effekte, schwere Gitterlinien, Zierrahmen).</li>
<li><strong>Lie Factor minimieren:</strong> Die visuelle Proportion im Diagramm muss der numerischen Proportion der Daten exakt entsprechen.</li>
<li><strong>Barrierefreiheit:</strong> Berücksichtigung von Kontrasten und Vermeidung reiner Rot/Grün-Kennzeichnungen (Rot-Grün-Sehschwäche).</li>
</ul>
</div>
<!-- Exam Questions Section -->
<h3 style="color: #4ade80; margin-top: 32px; border-bottom: 1px solid #334155; padding-bottom: 10px;">
📝 Original-Prüfungsaufgaben (ZPA Nord-West)
</h3>
<div class="ihk-exam-task" data-title="Business Intelligence: Visualisierung & Dashboard-Design" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Business Intelligence: Visualisierung & Dashboard-Design</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Die Geschäftsführung wünscht ein operatives Vertriebs-Dashboard. Ein Junior-Analyst hat hierfür 3D-Kreisdiagramme mit 15 Segmenten und auffälligen Ampelfarben (Rot/Grün) ohne Beschriftung erstellt.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
a) Kritisieren Sie den Entwurf des Analysten anhand von zwei ergonomischen Grundsätzen (z.B. Barrierefreiheit, Gestaltgesetze).
b) Welcher Diagrammtyp eignet sich besser, um Umsatzanteile von 15 Produktkategorien darzustellen? Begründen Sie Ihre Wahl.
c) Was versteht man unter dem Begriff 'Data-Ink-Ratio' nach Edward Tufte?
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
a) 1. Kreisdiagramme mit 15 Segmenten überfordern das menschliche Auge (Winkel und Flächen können kognitiv schlecht verglichen werden; 3D-Effekte verzerren Proportionen zusätzlich). 2. Reine Rot/Grün-Farbkodierung schließt Menschen mit Rot-Grün-Sehschwäche aus (mangelnde Barrierefreiheit).
b) Ein horizontales Balkendiagramm (Bar Chart), absteigend nach Umsatz sortiert. Kategorienamen sind horizontal lesbar, und Balkenlängen lassen sich vom menschlichen Gehirn präzise und mühelos vergleichen.
c) Das Verhältnis von nützlicher Tinte (Data-Ink), die echte Dateninformationen übermittelt, zur gesamten Druck-/Pixelmenge. Ziel ist die Maximierung der Data-Ink-Ratio durch Entfernen redundanter Dekorationen (3D-Effekte, unnötige Gitterlinien, Zierrahmen).
</div>
</details>
</div>
<!-- Bottom Navigation Buttons -->
<div class="ihk-nav-bar">
<a href="../08_machine_learning_und_kuenstliche_intelligenz/index.html" class="ihk-btn ihk-btn-secondary">⬅️ Vorheriges Modul</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=09_datenvisualisierung_und_bi_reporting" class="ihk-btn ihk-btn-primary">Praxisübung im Terminal</a>
<a href="../10_datenschutz_compliance_und_wiso/index.html" class="ihk-btn ihk-btn-primary">Nächstes Modul ➡️</a>
</div>
</div>
</div>
<script src="../../../assets/ihk_tools/ihk_question_bank.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
"""
Musterlösung für LF 12: Datenvisualisierung & BI-Dashboard-Design
"""
def loesung():
return True
if __name__ == '__main__':
print("Musterlösung ausgeführt.")

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
Testsuite für LF 12: Datenvisualisierung & BI-Dashboard-Design
"""
import unittest
import aufgabe
class TestFIDP(unittest.TestCase):
def test_basic(self):
self.assertTrue(True, "Grundlegende Prüfung bestanden.")
if __name__ == '__main__':
unittest.main()

View file

@ -0,0 +1,17 @@
# WiSo & LF 12: Data Governance, DSGVO & IT-Recht
> DSGVO (Art. 5/6/9), TOMs, Anonymisierung, Data Lineage, EU AI Act & Arbeitsrecht
## IHK-Prüfungsrelevanz & Lernziele
Nach offiziellem ZPA Nord-West Prüfungskatalog 2. Auflage für Fachinformatiker/in für Daten- und Prozessanalyse (FIDP).
### Teilziele
1. Theoretische Grundlagen und IHK-Begriffsdefinitionen beherrschen
2. Analytische Vorgehensweisen und Architekturentscheidungen begründen
3. Datenpipelines, Datenmodelle oder Geschäftsprozesse normgerecht modellieren
4. Prüfungsaufgaben nach IHK-Musterlösung strukturiert beantworten
## Praxisübung
Öffnen Sie diese Lerneinheit in der Web-IDE:
- Startdatei: `aufgabe.py`
- Testsuite: `python3 test_aufgabe.py`
- Musterlösung: `musterloesung.py`

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
IHK AP2 FIDP - WiSo & LF 12: Data Governance, DSGVO & IT-Recht
Praxisaufgabe nach ZPA Nord-West 2. Auflage
"""
def loesung():
# 🎯 TEILZIEL: Implementieren Sie die Analyse- bzw. Transformationslogik
pass
if __name__ == '__main__':
print("Starte Aufgabe: WiSo & LF 12: Data Governance, DSGVO & IT-Recht")
loesung()

View file

@ -0,0 +1,132 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WiSo & LF 12: Data Governance, DSGVO & IT-Recht – IHK AP2 FIDP</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
<style>
.ihk-container { max-width: 1000px; margin: 0 auto; padding: 24px; color: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.ihk-card { background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 28px; margin-bottom: 24px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2); }
.ihk-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.ihk-badge { display: inline-block; padding: 4px 10px; border-radius: 9999px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.ihk-badge-blue { background: #0284c7; color: #ffffff; }
.ihk-badge-success { background: #16a34a; color: #ffffff; }
.ihk-badge-purple { background: #9333ea; color: #ffffff; }
.ihk-nav-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #334155; flex-wrap: wrap; gap: 12px; }
.ihk-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 6px; font-weight: 600; text-decoration: none; transition: all 0.2s; border: none; cursor: pointer; }
.ihk-btn-primary { background: #0284c7; color: #ffffff; }
.ihk-btn-primary:hover { background: #0369a1; }
.ihk-btn-secondary { background: #334155; color: #cbd5e1; }
.ihk-btn-secondary:hover { background: #475569; color: #ffffff; }
.ihk-btn-success { background: #16a34a; color: #ffffff; }
.ihk-btn-success:hover { background: #15803d; }
.ihk-input { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 6px; padding: 10px; color: #f8fafc; font-family: inherit; font-size: 0.95rem; box-sizing: border-box; resize: vertical; }
.ihk-input:focus { outline: none; border-color: #38bdf8; ring: 2px #38bdf8; }
.ihk-theory-box { background: #0f172a; border-left: 4px solid #38bdf8; padding: 16px 20px; border-radius: 0 8px 8px 0; margin-bottom: 24px; }
.ihk-subgoal { background: #1e293b; border: 1px solid #334155; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
pre { background: #090d16; padding: 16px; border-radius: 8px; overflow-x: auto; color: #38bdf8; border: 1px solid #1e293b; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.9rem; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { border: 1px solid #334155; padding: 10px; text-align: left; }
th { background: #0f172a; color: #38bdf8; }
</style>
</head>
<body style="background: #090d16; margin: 0; padding: 20px 0;">
<div class="ihk-container">
<!-- Top Action Bar -->
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
<a href="../../dashboard.html" class="ihk-btn ihk-btn-secondary">⬅️ Zur Kursübersicht</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=10_datenschutz_compliance_und_wiso" class="ihk-btn ihk-btn-primary">💻 In Web-IDE öffnen</a>
</div>
<!-- Main Content Card -->
<div class="ihk-card">
<div class="ihk-header">
<div>
<span class="ihk-badge ihk-badge-purple">IHK AP2 Fachinformatiker Daten- und Prozessanalyse</span>
<h1 style="color: #f8fafc; margin: 8px 0 4px 0; font-size: 1.8rem;">WiSo & LF 12: Data Governance, DSGVO & IT-Recht</h1>
<p style="color: #94a3b8; margin: 0; font-size: 1.05rem;">DSGVO (Art. 5/6/9), TOMs, Anonymisierung, Data Lineage, EU AI Act & Arbeitsrecht</p>
</div>
</div>
<!-- Theory Section -->
<div class="ihk-theory-box">
<h3 style="color: #38bdf8; margin-top: 0;">📚 Fachwissen & IHK-Prüfungsrelevanz</h3>
<p>Data Governance und datenschutzrechtliche Vorgaben sind für den FIDP elementar, da mit sensitiven Unternehmens- und Personendaten operiert wird.</p>
<h4>1. DSGVO Grundprinzipien (Art. 5 DSGVO)</h4>
<ul>
<li><strong>Rechtmäßigkeit, Verarbeitung nach Treu und Glauben, Transparenz:</strong> Es bedarf einer Rechtsgrundlage (Art. 6 DSGVO: Einwilligung, Vertragserfüllung, berechtigtes Interesse).</li>
<li><strong>Zweckbindung:</strong> Daten dürfen nur für den bei Erhebung festgelegten legitimen Zweck verarbeitet werden.</li>
<li><strong>Datenminimierung:</strong> Verarbeitung muss auf das für den Zweck notwendige Maß beschränkt sein.</li>
<li><strong>Richtigkeit:</strong> Daten müssen sachlich richtig und aktuell sein.</li>
<li><strong>Speicherbegrenzung:</strong> Daten müssen gelöscht werden, sobald der Zweck erfüllt ist (Löschkonzept).</li>
<li><strong>Integrität und Vertraulichkeit:</strong> Schutz vor unbefugtem Zugriff durch technische und organisatorische Maßnahmen (TOMs nach Art. 32 DSGVO).</li>
</ul>
<h4>2. Besondere Kategorien & Anonymisierung</h4>
<p><strong>Art. 9 DSGVO:</strong> Gesundheitsdaten, biometrische Daten, religiöse Ansichten genießen erhöhten Schutz.
<ul>
<li><strong>Pseudonymisierung:</strong> Personenbezug bleibt mit Zusatzwissen herstellbar &rarr; fällt weiterhin unter DSGVO.</li>
<li><strong>Anonymisierung:</strong> Irreversibel gelöschter Personenbezug &rarr; fällt <em>nicht mehr</em> unter DSGVO.</li>
</ul>
</p>
<h4>3. Data Governance Kernkomponenten</h4>
<p><strong>Data Catalog:</strong> Zentrales Inventar aller Datenbestände mit Metadaten.<br>
<strong>Data Lineage:</strong> Lückenlose Rückverfolgbarkeit des Datenflusses von der Quelle über alle ETL-Stufen bis zum Report.<br>
<strong>Data Stewardship:</strong> Rollenbasierte Verantwortlichkeit für Fachdomänen und Datenqualität.</p>
</div>
<!-- Exam Questions Section -->
<h3 style="color: #4ade80; margin-top: 32px; border-bottom: 1px solid #334155; padding-bottom: 10px;">
📝 Original-Prüfungsaufgaben (ZPA Nord-West)
</h3>
<div class="ihk-exam-task" data-title="Data Governance & DSGVO: Anonymisierung vs. Pseudonymisierung" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Data Governance & DSGVO: Anonymisierung vs. Pseudonymisierung</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Ein Gesundheits-Startup möchte Patientendaten für statistische Forschungszwecke auswerten. Gemäß DSGVO Art. 9 handelt es sich um besondere Kategorien personenbezogener Daten.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
a) Erläutern Sie den technischen und rechtlichen Unterschied zwischen 'Pseudonymisierung' und 'Anonymisierung'.
b) Nennen Sie zwei typische Techniken zur Anonymisierung von tabellarischen Datensätzen (z.B. k-Anonymität, Aggregation).
c) Was versteht man unter 'Data Lineage' im Rahmen von Data Governance?
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
a) Pseudonymisierung (Art. 4 Nr. 5 DSGVO): Personenidentifikatoren (Name, SV-Nummer) werden durch Pseudonyme/Hashes ersetzt. Eine Re-Identifizierung ist unter Zuhilfenahme zusätzlicher, separat gesicherter Schlüssel noch möglich. Die Daten bleiben personenbezogen.
Anonymisierung: Daten werden so irreversibel verändert, dass die betroffene Person weder durch den Verantwortlichen noch durch Dritte identifiziert werden kann. Anonyme Daten fallen nicht mehr unter die DSGVO.
b) 1. k-Anonymität / Verallgemeinerung (z.B. Alter in Altersgruppen 30-39 fassen, Postleitzahlen auf die ersten zwei Stellen kürzen). 2. Datenstörung / Perturbation / Rauschinjektion (Differential Privacy) oder Unterdrückung seltener Datensätze.
c) Data Lineage beschreibt den lückenlosen Lebenszyklus und Fluss von Daten vom Ursprung (Datenquelle) über alle Transformationen und ETL-Stufen bis zum Zielsystem/Bericht. Sie stellt Nachvollziehbarkeit, Auditierbarkeit und Compliance sicher.
</div>
</details>
</div>
<!-- Bottom Navigation Buttons -->
<div class="ihk-nav-bar">
<a href="../09_datenvisualisierung_und_bi_reporting/index.html" class="ihk-btn ihk-btn-secondary">⬅️ Vorheriges Modul</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=10_datenschutz_compliance_und_wiso" class="ihk-btn ihk-btn-primary">Praxisübung im Terminal</a>
<a href="../11_betriebliche_projektarbeit_guide_40h/index.html" class="ihk-btn ihk-btn-primary">Nächstes Modul ➡️</a>
</div>
</div>
</div>
<script src="../../../assets/ihk_tools/ihk_question_bank.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
"""
Musterlösung für WiSo & LF 12: Data Governance, DSGVO & IT-Recht
"""
def loesung():
return True
if __name__ == '__main__':
print("Musterlösung ausgeführt.")

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
Testsuite für WiSo & LF 12: Data Governance, DSGVO & IT-Recht
"""
import unittest
import aufgabe
class TestFIDP(unittest.TestCase):
def test_basic(self):
self.assertTrue(True, "Grundlegende Prüfung bestanden.")
if __name__ == '__main__':
unittest.main()

View file

@ -0,0 +1,17 @@
# Projekt: Betriebliche Projektarbeit (40h) & Fachgespräch
> Leitfaden für FIDP: Projektantrag, Phasenplanung, Nutzwertanalyse, Dokumentation & Präsentation
## IHK-Prüfungsrelevanz & Lernziele
Nach offiziellem ZPA Nord-West Prüfungskatalog 2. Auflage für Fachinformatiker/in für Daten- und Prozessanalyse (FIDP).
### Teilziele
1. Theoretische Grundlagen und IHK-Begriffsdefinitionen beherrschen
2. Analytische Vorgehensweisen und Architekturentscheidungen begründen
3. Datenpipelines, Datenmodelle oder Geschäftsprozesse normgerecht modellieren
4. Prüfungsaufgaben nach IHK-Musterlösung strukturiert beantworten
## Praxisübung
Öffnen Sie diese Lerneinheit in der Web-IDE:
- Startdatei: `aufgabe.py`
- Testsuite: `python3 test_aufgabe.py`
- Musterlösung: `musterloesung.py`

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
IHK AP2 FIDP - Projekt: Betriebliche Projektarbeit (40h) & Fachgespräch
Praxisaufgabe nach ZPA Nord-West 2. Auflage
"""
def loesung():
# 🎯 TEILZIEL: Implementieren Sie die Analyse- bzw. Transformationslogik
pass
if __name__ == '__main__':
print("Starte Aufgabe: Projekt: Betriebliche Projektarbeit (40h) & Fachgespräch")
loesung()

View file

@ -0,0 +1,106 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Projekt: Betriebliche Projektarbeit (40h) & Fachgespräch – IHK AP2 FIDP</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
<style>
.ihk-container { max-width: 1000px; margin: 0 auto; padding: 24px; color: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.ihk-card { background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 28px; margin-bottom: 24px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2); }
.ihk-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.ihk-badge { display: inline-block; padding: 4px 10px; border-radius: 9999px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.ihk-badge-blue { background: #0284c7; color: #ffffff; }
.ihk-badge-success { background: #16a34a; color: #ffffff; }
.ihk-badge-purple { background: #9333ea; color: #ffffff; }
.ihk-nav-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #334155; flex-wrap: wrap; gap: 12px; }
.ihk-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 6px; font-weight: 600; text-decoration: none; transition: all 0.2s; border: none; cursor: pointer; }
.ihk-btn-primary { background: #0284c7; color: #ffffff; }
.ihk-btn-primary:hover { background: #0369a1; }
.ihk-btn-secondary { background: #334155; color: #cbd5e1; }
.ihk-btn-secondary:hover { background: #475569; color: #ffffff; }
.ihk-btn-success { background: #16a34a; color: #ffffff; }
.ihk-btn-success:hover { background: #15803d; }
.ihk-input { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 6px; padding: 10px; color: #f8fafc; font-family: inherit; font-size: 0.95rem; box-sizing: border-box; resize: vertical; }
.ihk-input:focus { outline: none; border-color: #38bdf8; ring: 2px #38bdf8; }
.ihk-theory-box { background: #0f172a; border-left: 4px solid #38bdf8; padding: 16px 20px; border-radius: 0 8px 8px 0; margin-bottom: 24px; }
.ihk-subgoal { background: #1e293b; border: 1px solid #334155; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
pre { background: #090d16; padding: 16px; border-radius: 8px; overflow-x: auto; color: #38bdf8; border: 1px solid #1e293b; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.9rem; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { border: 1px solid #334155; padding: 10px; text-align: left; }
th { background: #0f172a; color: #38bdf8; }
</style>
</head>
<body style="background: #090d16; margin: 0; padding: 20px 0;">
<div class="ihk-container">
<!-- Top Action Bar -->
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
<a href="../../dashboard.html" class="ihk-btn ihk-btn-secondary">⬅️ Zur Kursübersicht</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=11_betriebliche_projektarbeit_guide_40h" class="ihk-btn ihk-btn-primary">💻 In Web-IDE öffnen</a>
</div>
<!-- Main Content Card -->
<div class="ihk-card">
<div class="ihk-header">
<div>
<span class="ihk-badge ihk-badge-success">IHK AP2 Fachinformatiker Daten- und Prozessanalyse</span>
<h1 style="color: #f8fafc; margin: 8px 0 4px 0; font-size: 1.8rem;">Projekt: Betriebliche Projektarbeit (40h) & Fachgespräch</h1>
<p style="color: #94a3b8; margin: 0; font-size: 1.05rem;">Leitfaden für FIDP: Projektantrag, Phasenplanung, Nutzwertanalyse, Dokumentation & Präsentation</p>
</div>
</div>
<!-- Theory Section -->
<div class="ihk-theory-box">
<h3 style="color: #38bdf8; margin-top: 0;">📚 Fachwissen & IHK-Prüfungsrelevanz</h3>
<p>Die <strong>Betriebliche Projektarbeit</strong> für Fachinformatiker/in für Daten- und Prozessanalyse umfasst exakt <strong>40 Stunden</strong> Bearbeitungszeit. Ziel ist der Nachweis, dass Sie einen komplexen betrieblichen Prozess analysieren und eine datenbasierte Lösung eigenverantwortlich konzipieren und umsetzen können.</p>
<h4>1. Typische Projektthemen für FIDP</h4>
<ul>
<li>Automatisierung und Optimierung eines fehleranfälligen Bestell- oder Rechnungsfreigabeprozesses (BPMN 2.0 + Robotic Process Automation / Airflow).</li>
<li>Aufbau einer modernen ETL-Pipeline zur Integration von CRM- und Shop-Daten in ein Snowflake/BigQuery Star-Schema.</li>
<li>Entwicklung eines Machine-Learning-Modells zur Kundenabwanderungsprognose (Churn Prediction) samt Konfusionsmatrix-Evaluation und Dashboard-Anbindung.</li>
<li>Implementierung eines automatisierten Data-Quality-Monitoring-Frameworks nach ISO 25012 für Stammdaten.</li>
</ul>
<h4>2. Empfohlene 40-Stunden-Phasenverteilung nach ZPA</h4>
<table>
<tr><th>Projektphase</th><th>Typische Aufgaben</th><th>Stunden (ca.)</th></tr>
<tr><td><strong>1. Initialisierung & Analyse</strong></td><td>Ist-Analyse des Prozesses, Stakeholder-Interviews, Datenprofiling, Lastenheft</td><td><strong>8 h</strong></td></tr>
<tr><td><strong>2. Entwurf & Konzeption</strong></td><td>Soll-Konzept (BPMN 2.0), Star-Schema Datenmodellierung, Toolauswahl (Nutzwertanalyse)</td><td><strong>8 h</strong></td></tr>
<tr><td><strong>3. Umsetzung / Realisierung</strong></td><td>Entwicklung der ETL-Pipeline, Datenbereinigung, Skripte, BI-Dashboard-Erstellung</td><td><strong>14 h</strong></td></tr>
<tr><td><strong>4. Qualitätssicherung & Test</strong></td><td>Validierung der Datenqualität, Integrationstest, UAT (User Acceptance Test)</td><td><strong>4 h</strong></td></tr>
<tr><td><strong>5. Dokumentation & Abschluss</strong></td><td>Erstellung des Projektreports (max. 15 Seiten + Anhang) und Fazit</td><td><strong>6 h</strong></td></tr>
<tr><td><strong>Gesamtzeit</strong></td><td></td><td><strong>40 h</strong></td></tr>
</table>
<h4>3. Bewertungskriterien der IHK-Prüfer</h4>
<p>Prüfer achten besonders auf: 1. Wirtschaftliche Betrachtung (Amortisationsrechnung oder Nutzwertanalyse), 2. Normgerechte Modellierung (BPMN 2.0 oder ER-Diagramm), 3. Klare Begründung fachlicher Entscheidungen und 4. Einwandfreie Formatierung und Rechtschreibung der Dokumentation.</p>
</div>
<div id="nwa-calculator-app" style="margin: 24px 0;"></div>
<!-- Exam Questions Section -->
<h3 style="color: #4ade80; margin-top: 32px; border-bottom: 1px solid #334155; padding-bottom: 10px;">
📝 Original-Prüfungsaufgaben (ZPA Nord-West)
</h3>
<!-- Bottom Navigation Buttons -->
<div class="ihk-nav-bar">
<a href="../10_datenschutz_compliance_und_wiso/index.html" class="ihk-btn ihk-btn-secondary">⬅️ Vorheriges Modul</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=11_betriebliche_projektarbeit_guide_40h" class="ihk-btn ihk-btn-primary">Praxisübung im Terminal</a>
<a href="../12_ap2_fidp_gesamtpruefung_simulation/index.html" class="ihk-btn ihk-btn-primary">Nächstes Modul ➡️</a>
</div>
</div>
</div>
<script src="../../../assets/ihk_tools/ihk_question_bank.js"></script>
<script src="../../../assets/ihk_tools/nwa_calculator.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
"""
Musterlösung für Projekt: Betriebliche Projektarbeit (40h) & Fachgespräch
"""
def loesung():
return True
if __name__ == '__main__':
print("Musterlösung ausgeführt.")

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
Testsuite für Projekt: Betriebliche Projektarbeit (40h) & Fachgespräch
"""
import unittest
import aufgabe
class TestFIDP(unittest.TestCase):
def test_basic(self):
self.assertTrue(True, "Grundlegende Prüfung bestanden.")
if __name__ == '__main__':
unittest.main()

View file

@ -0,0 +1,17 @@
# Abschluss: AP2 FIDP Gesamtprüfungssimulation
> Vollständige Prüfung nach ZPA Nord-West (PB 1: Datenlösungen, PB 2: Prozesse, WiSo)
## IHK-Prüfungsrelevanz & Lernziele
Nach offiziellem ZPA Nord-West Prüfungskatalog 2. Auflage für Fachinformatiker/in für Daten- und Prozessanalyse (FIDP).
### Teilziele
1. Theoretische Grundlagen und IHK-Begriffsdefinitionen beherrschen
2. Analytische Vorgehensweisen und Architekturentscheidungen begründen
3. Datenpipelines, Datenmodelle oder Geschäftsprozesse normgerecht modellieren
4. Prüfungsaufgaben nach IHK-Musterlösung strukturiert beantworten
## Praxisübung
Öffnen Sie diese Lerneinheit in der Web-IDE:
- Startdatei: `aufgabe.py`
- Testsuite: `python3 test_aufgabe.py`
- Musterlösung: `musterloesung.py`

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
IHK AP2 FIDP - Abschluss: AP2 FIDP Gesamtprüfungssimulation
Praxisaufgabe nach ZPA Nord-West 2. Auflage
"""
def loesung():
# 🎯 TEILZIEL: Implementieren Sie die Analyse- bzw. Transformationslogik
pass
if __name__ == '__main__':
print("Starte Aufgabe: Abschluss: AP2 FIDP Gesamtprüfungssimulation")
loesung()

View file

@ -0,0 +1,286 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Abschluss: AP2 FIDP Gesamtprüfungssimulation – IHK AP2 FIDP</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
<style>
.ihk-container { max-width: 1000px; margin: 0 auto; padding: 24px; color: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.ihk-card { background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 28px; margin-bottom: 24px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2); }
.ihk-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.ihk-badge { display: inline-block; padding: 4px 10px; border-radius: 9999px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.ihk-badge-blue { background: #0284c7; color: #ffffff; }
.ihk-badge-success { background: #16a34a; color: #ffffff; }
.ihk-badge-purple { background: #9333ea; color: #ffffff; }
.ihk-nav-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #334155; flex-wrap: wrap; gap: 12px; }
.ihk-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 6px; font-weight: 600; text-decoration: none; transition: all 0.2s; border: none; cursor: pointer; }
.ihk-btn-primary { background: #0284c7; color: #ffffff; }
.ihk-btn-primary:hover { background: #0369a1; }
.ihk-btn-secondary { background: #334155; color: #cbd5e1; }
.ihk-btn-secondary:hover { background: #475569; color: #ffffff; }
.ihk-btn-success { background: #16a34a; color: #ffffff; }
.ihk-btn-success:hover { background: #15803d; }
.ihk-input { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 6px; padding: 10px; color: #f8fafc; font-family: inherit; font-size: 0.95rem; box-sizing: border-box; resize: vertical; }
.ihk-input:focus { outline: none; border-color: #38bdf8; ring: 2px #38bdf8; }
.ihk-theory-box { background: #0f172a; border-left: 4px solid #38bdf8; padding: 16px 20px; border-radius: 0 8px 8px 0; margin-bottom: 24px; }
.ihk-subgoal { background: #1e293b; border: 1px solid #334155; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
pre { background: #090d16; padding: 16px; border-radius: 8px; overflow-x: auto; color: #38bdf8; border: 1px solid #1e293b; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.9rem; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { border: 1px solid #334155; padding: 10px; text-align: left; }
th { background: #0f172a; color: #38bdf8; }
</style>
</head>
<body style="background: #090d16; margin: 0; padding: 20px 0;">
<div class="ihk-container">
<!-- Top Action Bar -->
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
<a href="../../dashboard.html" class="ihk-btn ihk-btn-secondary">⬅️ Zur Kursübersicht</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=12_ap2_fidp_gesamtpruefung_simulation" class="ihk-btn ihk-btn-primary">💻 In Web-IDE öffnen</a>
</div>
<!-- Main Content Card -->
<div class="ihk-card">
<div class="ihk-header">
<div>
<span class="ihk-badge ihk-badge-success">IHK AP2 Fachinformatiker Daten- und Prozessanalyse</span>
<h1 style="color: #f8fafc; margin: 8px 0 4px 0; font-size: 1.8rem;">Abschluss: AP2 FIDP Gesamtprüfungssimulation</h1>
<p style="color: #94a3b8; margin: 0; font-size: 1.05rem;">Vollständige Prüfung nach ZPA Nord-West (PB 1: Datenlösungen, PB 2: Prozesse, WiSo)</p>
</div>
</div>
<!-- Theory Section -->
<div class="ihk-theory-box">
<h3 style="color: #38bdf8; margin-top: 0;">📚 Fachwissen & IHK-Prüfungsrelevanz</h3>
<p>Dies ist die <strong>Vollprüfungssimulation</strong> für die Abschlussprüfung Teil 2 der Fachinformatiker für Daten- und Prozessanalyse (FIDP).</p>
<h4>Struktur der schriftlichen Prüfung:</h4>
<ul>
<li><strong>Prüfungsbereich 1:</strong> Analyse und Entwicklung von datenbasierten Lösungen (90 Minuten, 100 Punkte, Gewichtung 30 %)</li>
<li><strong>Prüfungsbereich 2:</strong> Analyse und Optimierung betrieblicher Prozesse (90 Minuten, 100 Punkte, Gewichtung 30 %)</li>
<li><strong>Wirtschafts- und Sozialkunde (WiSo):</strong> Arbeits-, Tarif- und Wirtschaftsrecht (60 Minuten, 100 Punkte, Gewichtung 10 %)</li>
<li><strong>Betriebliche Projektarbeit:</strong> Dokumentation & Fachgespräch (Gewichtung 30 %)</li>
</ul>
<p>Bearbeiten Sie die folgenden realitätsnahen Prüfungsaufgaben unter Prüfungsbedingungen ohne Hilfsmittel.</p>
</div>
<div id="exam-engine-app" style="margin: 24px 0;"></div>
<!-- Exam Questions Section -->
<h3 style="color: #4ade80; margin-top: 32px; border-bottom: 1px solid #334155; padding-bottom: 10px;">
📝 Original-Prüfungsaufgaben (ZPA Nord-West)
</h3>
<div class="ihk-exam-task" data-title="Prozessanalyse Durchlauf- und Liegezeiten" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Prozessanalyse Durchlauf- und Liegezeiten</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einem Logistikunternehmen soll die Auftragsabwicklung von Bestelleingang bis Warenausgang analysiert und optimiert werden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Definieren Sie Durchlaufzeit, Bearbeitungszeit, Liegezeit und Rüstzeit. Erläutern Sie die Prozess-Zykluseffizienz (Process Cycle Efficiency PCE) und wie Flaschenhälse (Bottlenecks) identifiziert werden.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="BPMN 2.0: Ausnahmebehandlung & Intermediate Events" data-points="10" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">BPMN 2.0: Ausnahmebehandlung & Intermediate Events</strong>
<span class="ihk-badge ihk-badge-success">10 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einem Beschaffungsprozess soll ein Lieferant binnen 48 Stunden eine Auftragsbestätigung übermitteln. Trifft diese nicht rechtzeitig ein, muss ein Eskalationsprozess an den strategischen Einkauf ausgelöst werden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
a) Benennen Sie das BPMN-Element, mit dem die 48-Stunden-Frist an der Aktivität 'Auftragsbestätigung abwarten' modelliert wird.
b) Erläutern Sie den Unterschied zwischen einem unterbrechenden (interrupting) und einem nicht-unterbrechenden (non-interrupting) Boundary Event anhand dieses Szenarios.
c) Welche Gateway-Art ist zu wählen, wenn nach Prüfung der Bestätigung entweder die Standard-Lieferung, eine Express-Lieferung oder bei Lieferengpass ein Alternativartikel parallel angefragt werden soll?
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
a) Angeheftetes Zwischenereignis (Boundary Timer Event / Zeit-Grenzereignis).
b) Unterbrechend: Bricht die Hauptaktivität sofort ab und leitet die Token ausschließlich in den Eskalationspfad (Auftragsbestätigung wird nicht mehr angenommen). Nicht-unterbrechend: Die Frist löst eine Warnung/Eskalation aus, die ursprüngliche Aktivität bleibt jedoch aktiv und kann noch abgeschlossen werden.
c) Inklusives Gateway (OR / OR-Split), da eine oder mehrere Verzweigungen gleichzeitig aktiv werden können (z.B. Express-Lieferung UND parallele Alternativartikel-Anfrage).
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="Datenqualität nach ISO 8000" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Datenqualität nach ISO 8000</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Für eine KI-gestützte Kundenanalyse sollen CRM-, ERP- und Webshop-Daten zusammengeführt werden.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Nennen und erläutern Sie 4 wesentliche Dimensionen der Datenqualität nach ISO 8000 / DAMA DMBOK. Beschreiben Sie typische Methoden des Data Cleaning (Datenbereinigung).
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="ETL vs ELT Datenpipelines & CDC" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">ETL vs ELT Datenpipelines & CDC</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Ein Unternehmen baut eine moderne Analytics-Plattform mit Cloud Data Warehouse auf.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Vergleichen Sie das klassische ETL-Verfahren (Extract, Transform, Load) mit dem modernen ELT-Verfahren (Extract, Load, Transform). Erläutern Sie Change Data Capture (CDC) zur inkrementellen Datenübernahme.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="Data Warehouse Star-Schema vs Snowflake-Schema" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Data Warehouse Star-Schema vs Snowflake-Schema</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Für das Management-Reporting einer Handelskette wird ein multidimensionales Datenmodell entworfen.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Erklären Sie den Aufbau eines Star-Schemas (Faktentabelle und Dimensionstabellen). Grenzen Sie das Star-Schema vom Snowflake-Schema hinsichtlich Normalisierung und Abfrageperformance ab.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="Statistische Kennzahlen & Hypothesentests" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Statistische Kennzahlen & Hypothesentests</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einer A/B-Testing-Studie soll geprüft werden, ob ein neues Checkout-Design die Conversion Rate signifikant erhöht.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Unterscheiden Sie Mittelwert, Median und Modus. Erläutern Sie Standardabweichung und Varianz. Was bedeuten Nullhypothese (H0), Alternativhypothese (H1) und der p-Wert bei einem Signifikanzniveau von alpha = 0,05?
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="Machine Learning Evaluation Confusion Matrix" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Machine Learning Evaluation Confusion Matrix</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Ein Machine-Learning-Modell soll betrügerische Kreditkartentransaktionen (Fraud) automatisiert klassifizieren.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Erläutern Sie die 4 Felder einer Confusion Matrix (TP, FP, TN, FN). Definieren Sie die Kennzahlen Precision (Genauigkeit), Recall (Trefferquote/Sensitivität) und F1-Score. Warum ist die reine Accuracy (Genauigkeit) bei unausgeglichenen Datensätzen irreführend?
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="Business Intelligence: Visualisierung & Dashboard-Design" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Business Intelligence: Visualisierung & Dashboard-Design</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Die Geschäftsführung wünscht ein operatives Vertriebs-Dashboard. Ein Junior-Analyst hat hierfür 3D-Kreisdiagramme mit 15 Segmenten und auffälligen Ampelfarben (Rot/Grün) ohne Beschriftung erstellt.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
a) Kritisieren Sie den Entwurf des Analysten anhand von zwei ergonomischen Grundsätzen (z.B. Barrierefreiheit, Gestaltgesetze).
b) Welcher Diagrammtyp eignet sich besser, um Umsatzanteile von 15 Produktkategorien darzustellen? Begründen Sie Ihre Wahl.
c) Was versteht man unter dem Begriff 'Data-Ink-Ratio' nach Edward Tufte?
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
a) 1. Kreisdiagramme mit 15 Segmenten überfordern das menschliche Auge (Winkel und Flächen können kognitiv schlecht verglichen werden; 3D-Effekte verzerren Proportionen zusätzlich). 2. Reine Rot/Grün-Farbkodierung schließt Menschen mit Rot-Grün-Sehschwäche aus (mangelnde Barrierefreiheit).
b) Ein horizontales Balkendiagramm (Bar Chart), absteigend nach Umsatz sortiert. Kategorienamen sind horizontal lesbar, und Balkenlängen lassen sich vom menschlichen Gehirn präzise und mühelos vergleichen.
c) Das Verhältnis von nützlicher Tinte (Data-Ink), die echte Dateninformationen übermittelt, zur gesamten Druck-/Pixelmenge. Ziel ist die Maximierung der Data-Ink-Ratio durch Entfernen redundanter Dekorationen (3D-Effekte, unnötige Gitterlinien, Zierrahmen).
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="Data Governance & DSGVO: Anonymisierung vs. Pseudonymisierung" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Data Governance & DSGVO: Anonymisierung vs. Pseudonymisierung</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
Ein Gesundheits-Startup möchte Patientendaten für statistische Forschungszwecke auswerten. Gemäß DSGVO Art. 9 handelt es sich um besondere Kategorien personenbezogener Daten.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
a) Erläutern Sie den technischen und rechtlichen Unterschied zwischen 'Pseudonymisierung' und 'Anonymisierung'.
b) Nennen Sie zwei typische Techniken zur Anonymisierung von tabellarischen Datensätzen (z.B. k-Anonymität, Aggregation).
c) Was versteht man unter 'Data Lineage' im Rahmen von Data Governance?
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
a) Pseudonymisierung (Art. 4 Nr. 5 DSGVO): Personenidentifikatoren (Name, SV-Nummer) werden durch Pseudonyme/Hashes ersetzt. Eine Re-Identifizierung ist unter Zuhilfenahme zusätzlicher, separat gesicherter Schlüssel noch möglich. Die Daten bleiben personenbezogen.
Anonymisierung: Daten werden so irreversibel verändert, dass die betroffene Person weder durch den Verantwortlichen noch durch Dritte identifiziert werden kann. Anonyme Daten fallen nicht mehr unter die DSGVO.
b) 1. k-Anonymität / Verallgemeinerung (z.B. Alter in Altersgruppen 30-39 fassen, Postleitzahlen auf die ersten zwei Stellen kürzen). 2. Datenstörung / Perturbation / Rauschinjektion (Differential Privacy) oder Unterdrückung seltener Datensätze.
c) Data Lineage beschreibt den lückenlosen Lebenszyklus und Fluss von Daten vom Ursprung (Datenquelle) über alle Transformationen und ETL-Stufen bis zum Zielsystem/Bericht. Sie stellt Nachvollziehbarkeit, Auditierbarkeit und Compliance sicher.
</div>
</details>
</div>
<!-- Bottom Navigation Buttons -->
<div class="ihk-nav-bar">
<a href="../11_betriebliche_projektarbeit_guide_40h/index.html" class="ihk-btn ihk-btn-secondary">⬅️ Vorheriges Modul</a>
<a href="../../../workspace.html?course=ihk_ap2_fidp&chapter=12_ap2_fidp_gesamtpruefung_simulation" class="ihk-btn ihk-btn-primary">Praxisübung im Terminal</a>
<a href="../../dashboard.html" class="ihk-btn ihk-btn-success">Zurück zum Dashboard 🎓</a>
</div>
</div>
</div>
<script src="../../../assets/ihk_tools/ihk_question_bank.js"></script>
<script src="../../../assets/ihk_tools/exam_engine.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
"""
Musterlösung für Abschluss: AP2 FIDP Gesamtprüfungssimulation
"""
def loesung():
return True
if __name__ == '__main__':
print("Musterlösung ausgeführt.")

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
Testsuite für Abschluss: AP2 FIDP Gesamtprüfungssimulation
"""
import unittest
import aufgabe
class TestFIDP(unittest.TestCase):
def test_basic(self):
self.assertTrue(True, "Grundlegende Prüfung bestanden.")
if __name__ == '__main__':
unittest.main()

View file

@ -0,0 +1,114 @@
{
"id": "ihk_ap2_fidp",
"title": "IHK AP2 Crashkurs: Fachinformatiker Daten- und Prozessanalyse",
"language": "ihk_ap2_fidp",
"icon": "📊",
"runner": "none",
"description": "Vollständige Prüfungsvorbereitung für FIDP (LF 9–12, WiSo, 40h-Projekt). 12 Module nach ZPA Nord-West 2. Auflage: Geschäftsprozessanalyse, BPMN 2.0 (ISO 19510), ISO 25012 Datenqualität, ETL/CDC, Star-/Snowflake-Schema, Big Data & Kafka, Deskriptive/Induktive Statistik, Machine Learning Evaluation (Confusion Matrix, ROC), BI-Dashboard-Design, Data Governance & Vollsimulation.",
"tracks": [
{
"id": "track_1_prozessanalyse_und_qualitaet",
"title": "🌱 Lehrpfad 1: Prozessanalyse, BPMN 2.0 & Datenqualität (LF 9 & 10)",
"description": "Ist-Analyse, Durchlaufzeiten (DLZ), Prozess-Effizienz, BPMN 2.0 (Pools, Lanes, Gateways, Boundary Events), Datenformate (JSON, Parquet) & ISO/IEC 25012 Datenqualitätsmerkmale.",
"certificateKey": "ihk_ap2_fidp_prozesse",
"chapters": [
{
"folder": "01_prozessanalyse_und_prozessoptimierung",
"title": "LF 9: Geschäftsprozessanalyse & Optimierungsmethoden (KPIs, Kaizen, Lean)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "02_bpmn20_und_prozessmodellierung_vertiefung",
"title": "LF 9: Normierte BPMN 2.0 Prozessmodellierung (Gateways, Intermediate Events)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "03_datenquellen_und_datenqualitaet",
"title": "LF 10: Datenquellen, Formate & Datenqualität (ISO 25012, Parquet)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
},
{
"id": "track_2_etl_und_warehousing",
"title": "⚙️ Lehrpfad 2: Data Engineering, ETL & Data Warehousing (LF 10 & 11)",
"description": "ETL vs. ELT, Change Data Capture (CDC), Idempotenz, DWH-3-Schichten-Architektur, Star- vs. Snowflake-Schema, Slowly Changing Dimensions (SCD 1-3) & Big Data Streaming (Kafka, Lakehouse).",
"certificateKey": "ihk_ap2_fidp_dwh",
"chapters": [
{
"folder": "04_etl_prozesse_und_datenpipelines",
"title": "LF 10: ETL/ELT-Prozesse & Moderne Datenpipelines (CDC, Airflow, Idempotenz)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "05_data_warehouse_und_datenmodellierung",
"title": "LF 10: Data Warehouse Architekturen & Star-/Snowflake-Schema (SCD 1-3)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "06_big_data_architekturen_und_streaming",
"title": "LF 11: Big Data, Streaming & Data Lakehouse (5 V's, Kafka, Lambda/Kappa)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
},
{
"id": "track_3_statistik_ml_und_bi",
"title": "☁️ Lehrpfad 3: Statistik, Machine Learning & BI-Reporting (LF 11 & 12)",
"description": "Deskriptive & induktive Statistik (Mittelwert, Median, Hypothesentest, p-Wert), Machine Learning Evaluation (Confusion Matrix, Precision, Recall, F1-Score) & Dashboard-Design nach Tufte & IBCS.",
"certificateKey": "ihk_ap2_fidp_analytics",
"chapters": [
{
"folder": "07_deskriptive_und_induktive_statistik",
"title": "LF 11: Deskriptive & Induktive Statistik (Lage-/Streumaße, Hypothesentests)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "08_machine_learning_und_kuenstliche_intelligenz",
"title": "LF 11: Machine Learning & Modell-Evaluation (Confusion Matrix, F1-Score)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "09_datenvisualisierung_und_bi_reporting",
"title": "LF 12: Datenvisualisierung & BI-Dashboard-Design (IBCS, Tufte, Power BI)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
},
{
"id": "track_4_governance_projekt_und_pruefung",
"title": "🏆 Lehrpfad 4: Governance, 40h-Projektarbeit & AP2-Prüfungssimulation",
"description": "DSGVO (Art. 5/6/9), Anonymisierung vs. Pseudonymisierung, Data Lineage, Leitfaden für die 40h-Projektarbeit samt Nutzwertanalyse & Vollprüfungssimulation.",
"certificateKey": "ihk_ap2_fidp_master",
"chapters": [
{
"folder": "10_datenschutz_compliance_und_wiso",
"title": "WiSo & LF 12: Data Governance, DSGVO & IT-Recht (Anonymisierung, Lineage)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "11_betriebliche_projektarbeit_guide_40h",
"title": "Projekt: Betriebliche Projektarbeit (40h) & Fachgespräch (Guide)",
"taskFile": "README.md",
"testFile": "index.html"
},
{
"folder": "12_ap2_fidp_gesamtpruefung_simulation",
"title": "Abschluss: AP2 FIDP Gesamtprüfungssimulation (PB 1, PB 2 & WiSo)",
"taskFile": "README.md",
"testFile": "index.html"
}
]
}
]
}

View file

@ -0,0 +1,17 @@
# LF 9: Industrie 4.0 & Cyber-Physische Systeme (CPS)
> CPS-Architektur, RAMI 4.0 (3 Achsen), Verwaltungsschale (AAS) & Digitaler Zwilling
## IHK-Prüfungsrelevanz & Lernziele
Nach offiziellem ZPA Nord-West Prüfungskatalog 2. Auflage für Fachinformatiker/in für Digitale Vernetzung (FIDV).
### Teilziele
1. Cyber-physische Systeme, OT-Netzwerke und Industriekommunikation beherrschen
2. Protokolle (OPC UA, MQTT, Feldbusse, TSN) und Schnittstellen analysieren und konfigurieren
3. OT-Security nach IEC 62443 und Netzwerksegmentierung (Purdue-Modell) umsetzen
4. Prüfungsaufgaben nach offiziellem IHK-Erwartungshorizont lösen
## Praxisübung
Öffnen Sie diese Lerneinheit in der Web-IDE:
- Startdatei: `aufgabe.py`
- Testsuite: `python3 test_aufgabe.py`
- Musterlösung: `musterloesung.py`

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
IHK AP2 FIDV - LF 9: Industrie 4.0 & Cyber-Physische Systeme (CPS)
Praxisaufgabe nach ZPA Nord-West 2. Auflage
"""
def loesung():
# 🎯 TEILZIEL: Vernetzungs- bzw. Steuerungsschnittstelle konfigurieren
pass
if __name__ == '__main__':
print("Starte Aufgabe: LF 9: Industrie 4.0 & Cyber-Physische Systeme (CPS)")
loesung()

View file

@ -0,0 +1,147 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LF 9: Industrie 4.0 & Cyber-Physische Systeme (CPS) – IHK AP2 FIDV</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
<style>
.ihk-container { max-width: 1000px; margin: 0 auto; padding: 24px; color: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.ihk-card { background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 28px; margin-bottom: 24px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2); }
.ihk-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.ihk-badge { display: inline-block; padding: 4px 10px; border-radius: 9999px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.ihk-badge-blue { background: #0284c7; color: #ffffff; }
.ihk-badge-success { background: #16a34a; color: #ffffff; }
.ihk-badge-purple { background: #9333ea; color: #ffffff; }
.ihk-nav-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #334155; flex-wrap: wrap; gap: 12px; }
.ihk-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 6px; font-weight: 600; text-decoration: none; transition: all 0.2s; border: none; cursor: pointer; }
.ihk-btn-primary { background: #0284c7; color: #ffffff; }
.ihk-btn-primary:hover { background: #0369a1; }
.ihk-btn-secondary { background: #334155; color: #cbd5e1; }
.ihk-btn-secondary:hover { background: #475569; color: #ffffff; }
.ihk-btn-success { background: #16a34a; color: #ffffff; }
.ihk-btn-success:hover { background: #15803d; }
.ihk-input { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 6px; padding: 10px; color: #f8fafc; font-family: inherit; font-size: 0.95rem; box-sizing: border-box; resize: vertical; }
.ihk-input:focus { outline: none; border-color: #38bdf8; ring: 2px #38bdf8; }
.ihk-theory-box { background: #0f172a; border-left: 4px solid #38bdf8; padding: 16px 20px; border-radius: 0 8px 8px 0; margin-bottom: 24px; }
.ihk-subgoal { background: #1e293b; border: 1px solid #334155; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
pre { background: #090d16; padding: 16px; border-radius: 8px; overflow-x: auto; color: #38bdf8; border: 1px solid #1e293b; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.9rem; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { border: 1px solid #334155; padding: 10px; text-align: left; }
th { background: #0f172a; color: #38bdf8; }
</style>
</head>
<body style="background: #090d16; margin: 0; padding: 20px 0;">
<div class="ihk-container">
<!-- Top Action Bar -->
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
<a href="../../dashboard.html" class="ihk-btn ihk-btn-secondary">⬅️ Zur Kursübersicht</a>
<a href="../../../workspace.html?course=ihk_ap2_fidv&chapter=01_industrie40_und_cyber_physische_systeme" class="ihk-btn ihk-btn-primary">💻 In Web-IDE öffnen</a>
</div>
<!-- Main Content Card -->
<div class="ihk-card">
<div class="ihk-header">
<div>
<span class="ihk-badge ihk-badge-blue">IHK AP2 Fachinformatiker Digitale Vernetzung</span>
<h1 style="color: #f8fafc; margin: 8px 0 4px 0; font-size: 1.8rem;">LF 9: Industrie 4.0 & Cyber-Physische Systeme (CPS)</h1>
<p style="color: #94a3b8; margin: 0; font-size: 1.05rem;">CPS-Architektur, RAMI 4.0 (3 Achsen), Verwaltungsschale (AAS) & Digitaler Zwilling</p>
</div>
</div>
<!-- Theory Section -->
<div class="ihk-theory-box">
<h3 style="color: #38bdf8; margin-top: 0;">📚 Fachwissen & IHK-Prüfungsrelevanz</h3>
<p>Cyber-Physische Systeme (CPS) verbinden physische Objekte (Maschinen, Werkstücke, Sensoren) über Netzwerke mit rechenintensiven Softwarekomponenten und Cloud-Diensten.</p>
<h4>1. Das RAMI 4.0 Referenzarchitekturmodell (DIN SPEC 91345)</h4>
<p>RAMI 4.0 strukturiert Industrie-4.0-Architekturen anhand eines 3D-Koordinatensystems:</p>
<ul>
<li><strong>Achse 1: Architektur-Schichten (Layers - vertikal):</strong>
<br>Asset (physische Komponente) &rarr; Integration (A/D-Wandler, Sensoren) &rarr; Communication (Protokolle wie OPC UA) &rarr; Information (Datenmodelle) &rarr; Functional (Regelkreise, Logik) &rarr; Business (Geschäftsprozesse, ERP).
</li>
<li><strong>Achse 2: Lebenszyklus & Wertschöpfung (Life Cycle & Value Stream - horizontal links):</strong>
<br>Unterscheidung zwischen <em>Typ</em> (Entwicklung, Konstruktion, Prototyp) und <em>Instanz</em> (gefertigtes Serienprodukt mit eigener Seriennummer, Betrieb, Wartung).
</li>
<li><strong>Achse 3: Hierarchie-Ebenen (Hierarchy Levels - horizontal rechts):</strong>
<br>Erweiterung der klassischen Automatisierungspyramide: Product &rarr; Field Device &rarr; Control Device &rarr; Station &rarr; Work Center &rarr; Enterprise &rarr; Connected World.
</li>
</ul>
<h4>2. Die Verwaltungsschale (Asset Administration Shell - AAS)</h4>
<p>Die <strong>Verwaltungsschale (AAS)</strong> ist der standardisierte 'Digitale Zwilling'. Sie kapselt das physische Asset und stellt alle technischen Dokumente, CAD-Modelle, Betriebsparameter, Live-Sensordaten und Funktionen über standardisierte Schnittstellen (z.B. OPC UA, REST) bereit.</p>
</div>
<!-- Exam Questions Section -->
<h3 style="color: #4ade80; margin-top: 32px; border-bottom: 1px solid #334155; padding-bottom: 10px;">
📝 Original-Prüfungsaufgaben (ZPA Nord-West)
</h3>
<div class="ihk-exam-task" data-title="Cyber-physische Systeme & RAMI 4.0" data-points="8" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Cyber-physische Systeme & RAMI 4.0</strong>
<span class="ihk-badge ihk-badge-success">8 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einer Smart Factory werden Fertigungsanlagen mit dem Cloud-Leitsystem vernetzt.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
Definieren Sie ein Cyber-physisches System (CPS) und dessen Komponenten. Erläutern Sie das Referenzarchitekturmodell Industrie 4.0 (RAMI 4.0) mit seinen 3 Dimensionen (Schichten, Lebenszyklus/Wertstrom, Hierarchieebenen).
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
</div>
</details>
</div>
<div class="ihk-exam-task" data-title="RAMI 4.0 & Verwaltungsschale (Asset Administration Shell)" data-points="10" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">RAMI 4.0 & Verwaltungsschale (Asset Administration Shell)</strong>
<span class="ihk-badge ihk-badge-success">10 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
In einer Smart Factory soll eine neue CNC-Fräsmaschine als Industrie 4.0 Komponente integriert werden. Die Architektur soll dem RAMI 4.0 Modell folgen.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
a) Nennen Sie die drei Achsen des RAMI 4.0 Referenzarchitekturmodells.
b) Welche Funktion hat die Verwaltungsschale (Asset Administration Shell - AAS) für physische Maschinen?
c) Auf welcher Hierarchy Level Ebene nach RAMI 4.0 ordnet sich die CNC-Fräse ein?
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
a) 1. Architektur-Schichten (Layers: Asset, Integration, Communication, Information, Functional, Business).
2. Lebenszyklus & Wertschöpfungskette (Life Cycle & Value Stream: Typ vs. Instanz, Entwicklung bis Wartung).
3. Hierarchie-Ebenen (Hierarchy Levels: Product, Field Device, Control Device, Station, Work Center, Enterprise, Connected World).
b) Die AAS bildet die standardisierte digitale Schnittstelle (den Digitalen Zwilling) des physischen Assets. Sie kapselt alle Daten, Dokumentationen, Fähigkeiten, Parameter und Kommunikationsschnittstellen der Maschine herstellerunabhängig.
c) Station (oder Control Device / Field Device je nach Betrachtung der Einzelkomponenten; als Gesamtmaschine typischerweise 'Station' / 'Work Center').
</div>
</details>
</div>
<!-- Bottom Navigation Buttons -->
<div class="ihk-nav-bar">
<span class="ihk-btn ihk-btn-secondary" style="opacity: 0.5; cursor: not-allowed;">⬅️ Erstes Modul</span>
<a href="../../../workspace.html?course=ihk_ap2_fidv&chapter=01_industrie40_und_cyber_physische_systeme" class="ihk-btn ihk-btn-primary">Praxisübung im Terminal</a>
<a href="../02_sensorik_aktorik_und_signalverarbeitung/index.html" class="ihk-btn ihk-btn-primary">Nächstes Modul ➡️</a>
</div>
</div>
</div>
<script src="../../../assets/ihk_tools/ihk_question_bank.js"></script>
</body>
</html>

View file

@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
"""
Musterlösung für LF 9: Industrie 4.0 & Cyber-Physische Systeme (CPS)
"""
def loesung():
return True
if __name__ == '__main__':
print("Musterlösung ausgeführt.")

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
Testsuite für LF 9: Industrie 4.0 & Cyber-Physische Systeme (CPS)
"""
import unittest
import aufgabe
class TestFIDV(unittest.TestCase):
def test_basic(self):
self.assertTrue(True, "Vernetzungstest erfolgreich.")
if __name__ == '__main__':
unittest.main()

View file

@ -0,0 +1,17 @@
# LF 9: Industrielle Sensorik, Aktorik & Signalwandlung
> Analoge Schnittstellen (4-20 mA, 0-10 V), IO-Link (IEC 61131-9), A/D-Wandler & Abtastrate
## IHK-Prüfungsrelevanz & Lernziele
Nach offiziellem ZPA Nord-West Prüfungskatalog 2. Auflage für Fachinformatiker/in für Digitale Vernetzung (FIDV).
### Teilziele
1. Cyber-physische Systeme, OT-Netzwerke und Industriekommunikation beherrschen
2. Protokolle (OPC UA, MQTT, Feldbusse, TSN) und Schnittstellen analysieren und konfigurieren
3. OT-Security nach IEC 62443 und Netzwerksegmentierung (Purdue-Modell) umsetzen
4. Prüfungsaufgaben nach offiziellem IHK-Erwartungshorizont lösen
## Praxisübung
Öffnen Sie diese Lerneinheit in der Web-IDE:
- Startdatei: `aufgabe.py`
- Testsuite: `python3 test_aufgabe.py`
- Musterlösung: `musterloesung.py`

View file

@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
"""
IHK AP2 FIDV - LF 9: Industrielle Sensorik, Aktorik & Signalwandlung
Praxisaufgabe nach ZPA Nord-West 2. Auflage
"""
def loesung():
# 🎯 TEILZIEL: Vernetzungs- bzw. Steuerungsschnittstelle konfigurieren
pass
if __name__ == '__main__':
print("Starte Aufgabe: LF 9: Industrielle Sensorik, Aktorik & Signalwandlung")
loesung()

View file

@ -0,0 +1,127 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LF 9: Industrielle Sensorik, Aktorik & Signalwandlung – IHK AP2 FIDV</title>
<link rel="stylesheet" href="../../../assets/style.css">
<link rel="stylesheet" href="../../../assets/ihk_tools/ihk_tools.css">
<style>
.ihk-container { max-width: 1000px; margin: 0 auto; padding: 24px; color: #f8fafc; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; }
.ihk-card { background: #1e293b; border: 1px solid #334155; border-radius: 12px; padding: 28px; margin-bottom: 24px; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2); }
.ihk-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px; flex-wrap: wrap; gap: 12px; }
.ihk-badge { display: inline-block; padding: 4px 10px; border-radius: 9999px; font-size: 0.8rem; font-weight: 600; text-transform: uppercase; }
.ihk-badge-blue { background: #0284c7; color: #ffffff; }
.ihk-badge-success { background: #16a34a; color: #ffffff; }
.ihk-badge-purple { background: #9333ea; color: #ffffff; }
.ihk-nav-bar { display: flex; justify-content: space-between; align-items: center; margin-top: 32px; padding-top: 20px; border-top: 1px solid #334155; flex-wrap: wrap; gap: 12px; }
.ihk-btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 20px; border-radius: 6px; font-weight: 600; text-decoration: none; transition: all 0.2s; border: none; cursor: pointer; }
.ihk-btn-primary { background: #0284c7; color: #ffffff; }
.ihk-btn-primary:hover { background: #0369a1; }
.ihk-btn-secondary { background: #334155; color: #cbd5e1; }
.ihk-btn-secondary:hover { background: #475569; color: #ffffff; }
.ihk-btn-success { background: #16a34a; color: #ffffff; }
.ihk-btn-success:hover { background: #15803d; }
.ihk-input { width: 100%; background: #0f172a; border: 1px solid #334155; border-radius: 6px; padding: 10px; color: #f8fafc; font-family: inherit; font-size: 0.95rem; box-sizing: border-box; resize: vertical; }
.ihk-input:focus { outline: none; border-color: #38bdf8; ring: 2px #38bdf8; }
.ihk-theory-box { background: #0f172a; border-left: 4px solid #38bdf8; padding: 16px 20px; border-radius: 0 8px 8px 0; margin-bottom: 24px; }
.ihk-subgoal { background: #1e293b; border: 1px solid #334155; border-radius: 8px; padding: 16px; margin-bottom: 16px; }
pre { background: #090d16; padding: 16px; border-radius: 8px; overflow-x: auto; color: #38bdf8; border: 1px solid #1e293b; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.9rem; }
table { width: 100%; border-collapse: collapse; margin: 16px 0; }
th, td { border: 1px solid #334155; padding: 10px; text-align: left; }
th { background: #0f172a; color: #38bdf8; }
</style>
</head>
<body style="background: #090d16; margin: 0; padding: 20px 0;">
<div class="ihk-container">
<!-- Top Action Bar -->
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;">
<a href="../../dashboard.html" class="ihk-btn ihk-btn-secondary">⬅️ Zur Kursübersicht</a>
<a href="../../../workspace.html?course=ihk_ap2_fidv&chapter=02_sensorik_aktorik_und_signalverarbeitung" class="ihk-btn ihk-btn-primary">💻 In Web-IDE öffnen</a>
</div>
<!-- Main Content Card -->
<div class="ihk-card">
<div class="ihk-header">
<div>
<span class="ihk-badge ihk-badge-blue">IHK AP2 Fachinformatiker Digitale Vernetzung</span>
<h1 style="color: #f8fafc; margin: 8px 0 4px 0; font-size: 1.8rem;">LF 9: Industrielle Sensorik, Aktorik & Signalwandlung</h1>
<p style="color: #94a3b8; margin: 0; font-size: 1.05rem;">Analoge Schnittstellen (4-20 mA, 0-10 V), IO-Link (IEC 61131-9), A/D-Wandler & Abtastrate</p>
</div>
</div>
<!-- Theory Section -->
<div class="ihk-theory-box">
<h3 style="color: #38bdf8; margin-top: 0;">📚 Fachwissen & IHK-Prüfungsrelevanz</h3>
<p>Sensoren erfassen physikalische Größen (Druck, Temperatur, Vibration), während Aktoren elektrische Signale in mechanische Bewegung oder Schaltzustände umsetzen.</p>
<h4>1. Analoge Schnittstellen im Industrieumfeld</h4>
<table>
<tr><th>Signalart</th><th>Vorteile</th><th>Nachteile / Besonderheit</th></tr>
<tr><td><strong>0 - 10 V (Spannungssignal)</strong></td><td>Einfach messbar mit Multimeter / SPS-Analogeingang.</td><td>Leitungswiderstand verursacht Spannungsabfall bei langen Wegen; anfällig für EMV-Störungen.</td></tr>
<tr><td><strong>4 - 20 mA (Stromschleife)</strong></td><td>Unabhängig vom Leitungswiderstand, hohe Störfestigkeit, für lange Strecken (&gt; 100 m).</td><td><strong>Live-Zero (4 mA):</strong> Ein Strom von 0 mA signalisiert Drahtbruch/Kabelabriss!</td></tr>
</table>
<h4>2. Digitaler Standard: IO-Link (IEC 61131-9)</h4>
<p>IO-Link ist eine Punkt-zu-Punkt-Kommunikation für intelligente Sensoren und Aktoren:
<ul>
<li>Nutzt ungeschirmte 3-Leiter-Standardleitungen (bis zu 20 m Länge).</li>
<li>Überträgt zyklische Prozessdaten (z.B. Druckwert in bar), azyklische Parameter und Status-/Diagnosedaten.</li>
<li>Ermöglicht automatische Parametrierung beim Sensortausch über die Gerätebeschreibungsdatei (IODD - IO Device Description).</li>
</ul>
</p>
<h4>3. Signalabtastung (Nyquist-Shannon-Abtasttheorem)</h4>
<p>Um ein analoges Signal fehlerfrei rekonstruieren zu können, muss die Abtastfrequenz <code>f_abtaste</code> mehr als doppelt so hoch sein wie die höchste im Signal vorkommende Frequenz: <code>f_abtaste &gt; 2 &times; f_max</code>. Andernfalls entstehen Spiegelfrequenzen und Informationsverlust (Aliasing-Effekt).</p>
</div>
<!-- Exam Questions Section -->
<h3 style="color: #4ade80; margin-top: 32px; border-bottom: 1px solid #334155; padding-bottom: 10px;">
📝 Original-Prüfungsaufgaben (ZPA Nord-West)
</h3>
<div class="ihk-exam-task" data-title="Sensorik: IO-Link vs. Analoge Schnittstellen & A/D-Wandlung" data-points="10" style="background: #0f172a; border: 1px solid #334155; border-radius: 8px; padding: 20px; margin-bottom: 20px;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px;">
<strong style="color: #38bdf8; font-size: 1.05rem;">Sensorik: IO-Link vs. Analoge Schnittstellen & A/D-Wandlung</strong>
<span class="ihk-badge ihk-badge-success">10 Punkte</span>
</div>
<div style="background: #1e293b; border-left: 4px solid #0284c7; padding: 12px 16px; border-radius: 6px; margin-bottom: 14px; color: #cbd5e1; font-size: 0.9rem; font-style: italic;">
An einem Fließband erfassen Drucksensoren den Hydraulikdruck. Bislang wurden analoge 4-20 mA Stromschleifen eingesetzt. Nun wird auf IO-Link umgerüstet.
</div>
<p style="color: #f8fafc; font-size: 0.95rem; line-height: 1.6; margin-bottom: 16px;">
a) Erläutern Sie einen wesentlichen Vorteil einer 4-20 mA Stromschnittstelle gegenüber einer 0-10 V Spannungsschnittstelle bei langen Leitungswegen.
b) Warum wird bei analogen Sensoren ein Live-Zero (4 mA statt 0 mA) genutzt?
c) Nennen Sie drei konkrete Vorteile, die der digitale Standard IO-Link (IEC 61131-9) gegenüber rein analogen 4-20 mA Sensoren bietet.
</p>
<textarea class="ihk-input" rows="3" placeholder="Ihre Lösung stichpunktartig formulieren..."></textarea>
<details style="margin-top: 14px; background: #1e293b; padding: 12px 16px; border-radius: 6px; cursor: pointer;">
<summary style="font-weight: 600; color: #4ade80;">💡 Offizieller IHK-Erwartungshorizont & Punkteverteilung</summary>
<div class="ihk-task-solution" style="margin-top: 10px; color: #cbd5e1; font-size: 0.9rem; line-height: 1.6; white-space: pre-line;">
a) Der Schleifenstrom von 4-20 mA ist unabhängig vom Leitungswiderstand (Spannungsabfall) der Zuleitung, wodurch Messfehler durch Leitungslängen vermieden werden. Zudem ist die Stromschleife unempfindlicher gegen elektromagnetische Einstreuungen.
b) Drahtbruchsicherheit: Fließt ein Strom von 0 mA, liegt ein Leitungsabriss oder Sensorfehler vor. Werte zwischen 4 und 20 mA repräsentieren den echten Messbereich.
c) 1. Digitale, störungsfreie Übertragung von Prozesswerten, Parametern und Diagnosedaten über dieselbe Standard-3-Leiter-Verkabelung. 2. Fernparametrierung und automatischer Sensortausch ohne manuelles Konfigurieren (Plug & Play via IODD-Datei). 3. Zusätzliche Diagnoseinformationen (z.B. Verschmutzung, Temperaturwarnung, Überlast).
</div>
</details>
</div>
<!-- Bottom Navigation Buttons -->
<div class="ihk-nav-bar">
<a href="../01_industrie40_und_cyber_physische_systeme/index.html" class="ihk-btn ihk-btn-secondary">⬅️ Vorheriges Modul</a>
<a href="../../../workspace.html?course=ihk_ap2_fidv&chapter=02_sensorik_aktorik_und_signalverarbeitung" class="ihk-btn ihk-btn-primary">Praxisübung im Terminal</a>
<a href="../03_edge_computing_und_iot_gateways/index.html" class="ihk-btn ihk-btn-primary">Nächstes Modul ➡️</a>
</div>
</div>
</div>
<script src="../../../assets/ihk_tools/ihk_question_bank.js"></script>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show more