Zum Inhalt

👩🏻‍💻 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)

  1. HZ 1: Problemstellungen erfassen und strukturierte Lösungsansätze entwickeln
  2. HZ 2: Visuelle Darstellung für die Programmierung erstellen
  3. HZ 3: Erforderliche Daten ableiten
  4. HZ 4: Applikation mit Kontrollstrukturen und Funktionen implementieren
  5. HZ 5: Konventionen einhalten und Code kommentieren
  6. HZ 6: Fehler interpretieren und korrigieren
  7. 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.