modul:m323:kompetenzraster

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

modul:m323:kompetenzraster [2024/03/28 14:07] – angelegt - Externe Bearbeitung 127.0.0.1modul:m323:kompetenzraster [2026/08/18 10:11] (aktuell) – Aktualisiert auf offizielle Kompetenzmatrix ZH (kompetenzmatrix.ch), Stand 18.08.2026 admin
Zeile 1: Zeile 1:
 ====== Kompetenzraster ====== ====== Kompetenzraster ======
  
 +Dieses Kompetenzraster entspricht der offiziellen Kompetenzmatrix des Projekts Modulentwicklung ZH (BiVo2021) für das Modul M323 Funktional Programmieren.
  
-^ Kompetenzband: ^ HZ ^ Grundlagen ^ Fortgeschritten ^ Erweitert ^ +^ Kompetenzband ^ HZ ^ Beginner (B) ^ Intermediate (I) ^ Advanced (A) ^ 
-| Unterschiede zwischen funktionaler Programmierung und anderen Programmierparadigmen aufzeigen. | 1 | AG1: Ich kann die Eigenschaften von Funktionen beschreiben (z.Bsp. pure function) und den Unterschied zu anderen Programmier-Strukturen erläutern (z.Bsp. zu Prozedur).| AF1: Ich kann das Konzept von *immutable values* erläutern und dazu Beispiele anwenden. Somit kann ich dieses Konzept funktionaler Programmierung im Unterschied zu anderen Programmiersprachen erklären (z.Bsp. im Vergleich zu referenzierten Objekten)| AE1: Ich kann aufzeigen wie Probleme in den verschiedenen Konzepten (OO, prozedural und funktional) gelöst werden und diese miteinander vergleichen.| +| **A** – Unterschiede zwischen funktionaler Programmierung und anderen Programmierparadigmen aufzeigen | 1 | **A1B:** Ich kann die Eigenschaften von Funktionen beschreiben (z.B. pure function) und den Unterschied zu anderen Programmierstrukturen erläutern (z.B. zu Prozedur) | **A1I:** Ich kann das Konzept von immutable values erläutern und dazu Beispiele anwenden sowie dieses Konzept funktionaler Programmierung im Unterschied zu anderen Programmiersprachen erklären (z.B. im Vergleich zu referenzierten Objekten) | **A1A:** Ich kann aufzeigen, wie Probleme in den verschiedenen Konzepten (OO, prozedural und funktional) gelöst werden, und diese miteinander vergleichen | 
-| Anforderungen und Design beschreiben | 1 | BG1: Ich kann den Unterschied zwischen Anforderungen der imperativen Programmierung (definierte Folge von Handlungsanweisungen) und der deklarativen Programmierung (Beschreibung des Endzustandes) erklären.| BF1: Ich kann den Endzustand als Anforderung im Sinne der deklarativen Programmierung beschreiben. (Das gewünschte Ergebnis wird beschrieben statt die Arbeitsschritte.)| BE1: Ich kann Anforderungen aus der imperativen Programmierung in Anforderungen der deklarativen Programmierung transferieren. ("klar definierte Abfolge" transformieren zu "Endergebnis beschreiben")| +| **B** – Anforderungen und Design der deklarativen Programmierung beschreiben | 1 | **B1B:** Ich kann den Unterschied zwischen imperativer und deklarativer Programmierung erklären und die Elemente des Functional Design benennen (z.B. immutable data types, constructors, composable operators) | **B1I:** Ich kann deklarative Anforderungen formulieren und für eine Problemstellung ein Functional Design entwerfen | **B1A:** Ich kann Anforderungen und Design einer imperativen Lösung in eine deklarative Lösung transferieren und die Vor- und Nachteile beider Ansätze begründet bewerten | 
-| | | BG2: Ich kann Elemente des Functional Design erklären. (zBsp. Immutable data types, model, solution, domain of interest, constructors, composable operators)| BF2: Ich kann für eine Problemstellung ein Functional-Design entwerfen und dabei die Elemente des Functional Designs anwenden.| BE2: Ich kann ein Design einer imperativen Programmierung in ein Desing der deklarativen Programmierung transferieren.| +| **C** – Funktionale Programmierung umsetzen | 2 | **C1B:** Ich kann einen Algorithmus erklären | **C1I:** Ich kann Algorithmen in funktionale Teilstücke aufteilen | **C1A:** Ich kann Funktionen in zusammenhängende Algorithmen implementieren und deren Struktur auf Korrektheit und Lesbarkeit analysieren | 
-| Funktionale Programmierung umsetzen | 2 | C1G: Ich kann ein Algorithmus erklären | C1F: Ich kann Algorithmen in funktionale Teilstücke aufteilen | C1E: Ich kann Funktionen in zusammenhängende Algorithmen implementieren | +| ::: | ::: | **C2B:** Ich kann Funktionen als Objekte behandeln (in Variablen speichern, weitergeben) und die grundlegenden Higher-Order Functions (Map, Filter, Reduce) einzeln auf Listen anwenden | **C2I:** Ich kann Funktionen als Argumente einsetzen, Lambda-Ausdrücke schreiben und Map, Filter sowie Reduce kombiniert verwenden, um komplexere Datentransformationen durchzuführen | **C2A:** Ich kann Higher-Order Functions, Lambda-Ausdrücke und Funktionskomposition einsetzen, um komplexe Datenverarbeitungsaufgaben zu lösen und den Programmfluss zu steuern (z.B. Aggregation, Sortierung nach benutzerdefinierten Kriterien) | 
-| | | C2G: Ich kann Funktionen als Objekte behandeln und diese in Variablen speichern und weitergeben. | C2F: Ich kann Funktionen als Argumente für andere Funktionen verwenden und dadurch höherwertige Funktionen erstellen.| C2E: Ich kann Funktionen als Objekte und Argumente verwenden, um komplexe Aufgaben zu lösen und den Code sauberer und effizienter zu gestalten. | +| **D** – Refactoring und bestehenden Code optimieren | 3, 4 | **D1B:** Ich kann Refactoring-Techniken sowie Massnahmen zur Leistungsverbesserung aufzählen und deren Zweck erklären | **D1I:** Ich kann Refactoring-Techniken anwenden, um Code lesbarer zu machen, und vorgegebene Massnahmen zur Leistungsverbesserung umsetzen | **D1A:** Ich kann die Auswirkungen des Refactorings einschätzen, unerwünschte Nebeneffekte vermeiden und geeignete Algorithmen oder Datenstrukturen auswählen, um die Leistung zu verbessern |
-| | | C3G: Ich kann einfache Lambda-Ausdrücke schreiben, die eine einzelne Operation durchführen, z.B. das Quadrieren einer Zahl oder das Konvertieren eines Strings in Großbuchstaben. | C3F: Ich kann Lambda-Ausdrücke schreiben, die mehrere Argumente verarbeiten können. | C3E: Ich kann Lambda-Ausdrücke verwenden, um den Programmfluss zu steuern, z.B. durch Sortieren von Listen basierend auf benutzerdefinierten Kriterien. | +
-| | | C4G: Ich kann die Funktionen Map, Filter und Reduce einzeln auf Listen anwenden. | C4F: Ich kann Map, Filter und Reduce kombiniert verwenden, um Daten zu verarbeiten und zu manipulieren, die komplexere Transformationen erfordern. | C4E: Ich kann Map, Filter und Reduce verwenden, um komplexe Datenverarbeitungsaufgaben zu lösen, wie z.B. die Aggregation von Daten oder die Transformation von Datenstrukturen. | +
-| Refactoring und bestehenden Code optimieren | 3,4| DG1:Ich kann einige Refactoring-Techniken aufzählen, die einen Code lesbarer und verständlicher machen. | DF1:Ich kann mit Refactoring-Techniken einen Code lesbarer und verständlicher machen. | DE1:Ich kann die Auswirkungen des Refactorings auf das Verhalten des Codes einschätzen und sicherstellen, dass das Refactoring keine unerwünschten Nebeneffekte hat. | +
-| | | DG2: Ich kann allgemeine Massnahmen zur Verbesserung der Leistung von Code aufzählen.| DF2:Ich kann vorgegebene Massnahmen zur Verbesserung der Leistung von Code umsetzen.| DE2: Ich kann effiziente Algorithmen, Techniken oder Datenstrukturen auswählen und einsetzen, um die Leistung von Code zu verbessern.| +
  
 +**HZ** = Handlungsziel gemäss [[https://www.modulbaukasten.ch/module/323/1/de-DE?title=Funktional-Programmieren|Modulidentifikation 323]].
 +
 +===== Quelle =====
 +
 +Wortlaut übernommen von [[https://www.kompetenzmatrix.ch/informatiker/cluster-api/m323/|Kompetenzmatrizen ZH – M323 Funktional Programmieren]] (Verfasser: BZZ, TBZ, BBW, BFSU), Stand 18.08.2026.
 +
 +Die Verfasser der Kompetenzmatrizen stellen die Inhalte unter der Lizenz [[https://creativecommons.org/licenses/by-nc-sa/4.0/|CC BY-NC-SA 4.0]] zur Verfügung.
 +
 +Ergänzend: [[https://www.kompetenzmatrix.ch/informatiker/cluster-api/m323/umsetzungsvorschlag/|Umsetzungsvorschlag]] · [[https://www.kompetenzmatrix.ch/informatiker/cluster-api/m323/handlungssituationen/|Handlungssituationen]]
 +
 +----
 +[[https://creativecommons.org/licenses/by-nc-sa/4.0/ch/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]]
  
  • modul/m323/kompetenzraster.1711631267.txt.gz
  • Zuletzt geändert: 2024/03/28 14:07
  • von 127.0.0.1