👩🏻💻 Kompetenzmatrix Modul 319
Applikationen entwerfen und implementieren
Modulkompetenz: Die Lernenden kennen die Grundlagen des Programmierens, deren Herkunft, ihrer Voraussetzungen und sind in der Lage im beruflichen Umfeld Probleme zu verstehen und Lösungen dafür zu entwickeln.
Objekt: Problemstellungen, welche mit einer Programmiersprache umgesetzt werden können.
Kompetenzbänder und Gütestufen
| Kompetenzband | HZ | Beginner | Intermediate | Advanced |
|---|---|---|---|---|
| A1 – Problemanalyse und Lösungsansätze | 1 | A1B: Ich kann vorgegebene Problemstellungen nachvollziehen und mit Hilfestellung erste Lösungsideen entwickeln. Ich erkenne grundlegende Anforderungen. | A1I: Ich kann Problemstellungen eigenständig analysieren, strukturiert Lösungsansätze entwickeln und diese in einfacher Form für andere verständlich darstellen. | A1A: Ich kann komplexe Problemstellungen systematisch erfassen, mehrere Lösungsansätze erarbeiten, diese kritisch bewerten und stakeholdergerecht kommunizieren. |
| A2 – Problemraum und Lösungsraum | 1 | A2B: Ich kann den Unterschied zwischen Problemraum und Lösungsraum erklären und vorgegebene Anforderungen zuordnen. | A2I: Ich kann Problemraum und Lösungsraum bewusst trennen und lösungsfreie Anforderungen mit geeigneten Instrumenten identifizieren. | A2A: Ich kann die Trennung von Problemraum und Lösungsraum gezielt für innovative Lösungsansätze nutzen und den Mehrwert dieser Trennung begründen. |
| B1 – Visuelle Darstellung und Modellierung | 2 | B1B: Ich kann einfache Programmabläufe mit Hilfestellung in einer vorgegebenen Notation (PAP, Struktogramm oder Activity) darstellen. | B1I: Ich kann Programmlogik eigenständig mit einer geeigneten Notation visuell abbilden und diese als Grundlage für die Umsetzung verwenden. | B1A: Ich kann komplexe Programmabläufe mit mehreren Notationen modellieren, die geeignetste Darstellung für den Kontext wählen und als Diskussions- und Umsetzungsgrundlage einsetzen. |
| B2 – Datenanalyse und Datentypen | 3 | B2B: Ich kann aus einfachen Vorgaben grundlegende Daten (Eingabe, Verarbeitung, Ausgabe) ableiten und einfache Datentypen zuordnen. | B2I: Ich kann aus Anforderungen die erforderlichen Daten strukturiert ableiten, passende Datentypen auswählen und den Datenfluss beschreiben. | B2A: Ich kann aus komplexen Vorgaben alle erforderlichen Daten systematisch identifizieren, optimale Datentypen bestimmen und Datenstrukturen effizient gestalten. |
| C1 – Programmstruktur und Kontrollstrukturen | 4 | C1B: Ich kann einfache Programme mit grundlegenden Kontrollstrukturen (if, for, while) nach Vorlage implementieren. Ich verstehe den Aufbau einer Applikation. | C1I: Ich kann Applikationen mit verschiedenen Kontrollstrukturen (Iteration, Selektion) eigenständig implementieren und den Programmablauf zielgerichtet steuern. | C1A: Ich kann komplexe Programmlogik mit verschachtelten Kontrollstrukturen effizient umsetzen, unterschiedliche Lösungsansätze bewerten und die geeignetste Variante wählen. |
| C2 – Variablen, Konstanten und Gültigkeitsbereiche | 4 | C2B: Ich kann Variablen und Konstanten in einfachen Programmen verwenden und deren Unterschied erklären. | C2I: Ich kann Variablen und Konstanten sinnvoll einsetzen, Gültigkeitsbereiche (Scope) berücksichtigen und deren Auswirkungen auf das Programm verstehen. | C2A: Ich kann Variablen und Konstanten optimal organisieren, Gültigkeitsbereiche bewusst gestalten und deren Einfluss auf Wartbarkeit und Performance begründen. |
| C3 – Funktionen und Modularisierung | 4 | C3B: Ich kann vorgegebene Funktionen mit Parametern und Rückgabewerten in meinem Code aufrufen und deren Zweck nachvollziehen. | C3I: Ich kann eigene Funktionen mit korrektem Aufbau (Name, Parameter, Datentypen, Rückgabetyp) erstellen und sinnvoll in mein Programm einbinden. | C3A: Ich kann Code systematisch in wiederverwendbare Funktionen auslagern, die Modularisierung für bessere Wartbarkeit nutzen und den Mehrwert von Funktionen gezielt einsetzen. |
| C4 – Entwicklungsumgebung und Werkzeuge | 4 | C4B: Ich kann eine Entwicklungsumgebung bedienen, einfache Programme schreiben und grundlegende Fehler- und Warnmeldungen verstehen. | C4I: Ich kann Editoren und Entwicklungsumgebungen effizient nutzen, Fehler- und Warnmeldungen interpretieren und zur Fehlerbehebung einsetzen. | C4A: Ich kann erweiterte Funktionen der Entwicklungsumgebung (Refactoring, Code-Analyse, Shortcuts) gezielt nutzen und meinen Entwicklungsprozess optimieren. |
| D1 – Code-Qualität und Wartbarkeit | 5 | D1B: Ich kann vorgegebene Konventionen in meinem Code anwenden und einfache Kommentare schreiben. | D1I: Ich kann Namenskonventionen und Coding-Standards eigenständig einhalten, meinen Code sinnvoll kommentieren und auf grundlegende Lesbarkeit achten. | D1A: Ich kann Konventionen konsequent umsetzen, aussagekräftige Kommentare für komplexe Logik verfassen und Code so strukturieren, dass Wartbarkeit und Verständlichkeit gewährleistet sind. |
| E1 – Debugging und Fehlerbehebung | 6 | E1B: Ich kann einen Debugger unter Anleitung bedienen, einfache Breakpoints setzen und Variablenwerte während der Ausführung beobachten. | E1I: Ich kann einen Debugger eigenständig zur Fehlersuche einsetzen, Fehlerursachen systematisch eingrenzen und beheben. | E1A: Ich kann komplexe Fehler mit erweiterten Debugging-Techniken (Conditional Breakpoints, Watch-Expressions, Call Stack) analysieren und effizient korrigieren. |
| E2 – Testen und Qualitätssicherung | 6 | E2B: Ich kann einfache Testfälle nachvollziehen und mein Programm mit vorgegebenen Tests überprüfen. | E2I: Ich kann eigenständig sinnvolle Testfälle für meine Programme erstellen und systematisch testen. Ich verstehe den Zweck des Testens. | E2A: Ich kann umfassende Teststrategien entwickeln, verschiedene Testverfahren anwenden und die Testabdeckung für hohe Softwarequalität nutzen. |
| E3 – Statisches Testen und Code-Review | 6 | E3B: Ich kann an einem Code-Review teilnehmen, Feedback verstehen und einfache Verbesserungsvorschläge nachvollziehen. | E3I: Ich kann Code-Reviews durchführen, Code anderer Personen auf Qualität prüfen und konstruktives Feedback geben. Ich verstehe die Bedeutung für die Softwarequalität. | E3A: Ich kann systematische Code-Reviews mit Checklisten durchführen, Qualitätskriterien definieren und den Mehrwert statischer Tests für das gesamte Team aufzeigen. |
| F1 – Versionsverwaltung mit Git (Grundlagen) | 7 | F1B: Ich kenne den Zweck von Versionsverwaltung und kann grundlegende Git-Konzepte (Repository, Commit, Branch) erklären. | F1I: Ich kann grundlegende Git-Befehle (init, add, commit, status) verwenden und einfache Änderungen in einem lokalen Repository verwalten. | F1A: Ich kann mit Git eigenständig arbeiten, Repositories klonen, Branches erstellen, Änderungen committen und pushen sowie einfache Merge-Konflikte lösen. |
| F2 – GitHub und Kollaboration | 7 | F2B: Ich kenne die Grundfunktionen von GitHub und kann erklären, wozu die Plattform dient. Ich kann ein Repository öffnen und Code ansehen. | F2I: Ich kann ein Repository auf GitHub erstellen, Code hochladen, einfache Änderungen vornehmen und Pull Requests nachvollziehen. | F2A: Ich kann GitHub für die Zusammenarbeit nutzen, Pull Requests erstellen und reviewen, Issues verwalten und GitHub-Features (Actions, Projects) für professionelle Workflows einsetzen. |
Erläuterungen zu den Handlungszielen (HZ)
- HZ 1: Problemstellungen erfassen und strukturierte Lösungsansätze entwickeln
- HZ 2: Visuelle Darstellung für die Programmierung erstellen
- HZ 3: Erforderliche Daten ableiten
- HZ 4: Applikation mit Kontrollstrukturen und Funktionen implementieren
- HZ 5: Konventionen einhalten und Code kommentieren
- HZ 6: Fehler interpretieren und korrigieren
- HZ 7: Versionsverwaltung mit Git/GitHub anwenden (zusätzlich)
Notenzuordnung (Richtwerte)
- Beginner = Note 3.0
- Intermediate = Note 4.5
- Advanced = Note 6.0
Die genaue Gewichtung der Kompetenzbänder und die Notenvergabe werden durch die Lehrperson im Modullehrplan festgelegt.