Themenschwerpunkt | Grundlagen | Fortgeschritten | Erweitert |
Unterschiede zwischen funktionaler Programmierung und anderen Programmierparadigmen aufzeigen. | A1G: Ich kann die Eigenschaften von Funktionen beschreiben (z.Bsp. pure function) und den Unterschied zu anderen Programmier-Strukturen erläutern (z.Bsp. zu Prozedur). | A1F: 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) | A1E: Ich kann aufzeigen wie Probleme in den verschiedenen Konzepten (OO, prozedural und funktional) gelöst werden und diese miteinander vergleichen. |
Funktionale Programmierung umsetzen | B1G: Ich kann ein Algorithmus erklären | B1F: Ich kann Algorithmen in funktionale Teilstücke aufteilen | B1E: Ich kann Funktionen in zusammenhängende Algorithmen implementieren |
| B2G: Ich kann Funktionen als Objekte behandeln und diese in Variablen speichern und weitergeben. | B2F: Ich kann Funktionen als Argumente für andere Funktionen verwenden und dadurch höherwertige Funktionen erstellen. | B2E: Ich kann Funktionen als Objekte und Argumente verwenden, um komplexe Aufgaben zu lösen. (Anwenden von Closures) |
| B3G: 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. | B3F: Ich kann Lambda-Ausdrücke schreiben, die mehrere Argumente verarbeiten können. | B3E: Ich kann Lambda-Ausdrücke verwenden, um den Programmfluss zu steuern, z.B. durch Sortieren von Listen basierend auf benutzerdefinierten Kriterien. |
| B4G: Ich kann die Funktionen Map, Filter und Reduce einzeln auf Listen anwenden. | B4F: Ich kann Map, Filter und Reduce kombiniert verwenden, um Daten zu verarbeiten und zu manipulieren, die komplexere Transformationen erfordern. | B4E: 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 | C1G:Ich kann einige Refactoring-Techniken aufzählen, die einen Code lesbarer und verständlicher machen. | C1F:Ich kann mit Refactoring-Techniken einen Code lesbarer und verständlicher machen. | C1E:Ich kann die Auswirkungen des Refactorings auf das Verhalten des Codes einschätzen und sicherstellen, dass das Refactoring keine unerwünschten Nebeneffekte hat. |