Kurs · Modul 323
Funktional programmieren
Nach diesem Kurs schreibst du Programme aus kleinen, reinen Funktionen, die du einzeln testen und wie Bausteine zusammensetzen kannst. Du erkennst Seiteneffekte und versteckte Inputs, arbeitest mit unveränderlichen Daten statt mit geteiltem Zustand und übergibst Funktionen als Werte, mit Closures, Fabrikfunktionen und Currying. Auswertungen formulierst du als lesbare Pipeline aus map, filter und reduce, übersetzt sie zwischen JavaScript, Java Streams und C# LINQ und weisst, wann Lazy Evaluation und ein einziger Durchlauf den Unterschied machen. Verschachtelte Strukturen löst du rekursiv und mit Pattern Matching, ohne in Stack Overflow oder Zyklen zu laufen, und erwartbare Fehler behandelst du mit Option und Result. Zum Schluss baust du gewachsenen, imperativen Code mit Charakterisierungstests abgesichert Schritt für Schritt um und kannst im Code-Review begründen, wo er bewusst imperativ bleibt. Du lernst in 9 Lektionen am durchgehenden Beispiel der Stromauswertung des Energiewerks Seetal, übst in 15 Code-Laboren direkt im Browser, baust die Auswertung im geführten Projekt selbst und prüfst dich in einer Simulation des Kompetenznachweises. Rechne mit rund 25 Stunden. Der Kurs wirkt, wenn du die Labore und das Projekt selbst durchziehst; Lesen allein ersetzt das Üben nicht.
Dein nächster Schritt
Reine Funktionen: Schluss mit versteckten Nebenwirkungen
Du erkennst Seiteneffekte und versteckte Inputs, schreibst deterministische Funktionen und trennst Berechnung von Ein- und Ausgabe nach dem Muster funktionaler Kern, imperative Schale. · 40 Min.
Dein KI-Lerncoach
Lernen mit KI, aber richtig
Der Tutor kennt dieses Modul, deine Lektion und deine Aufgaben. Er führt dich zur Lösung, statt sie vorzusagen.
Training
…
Aufgaben gelöst
Karteikarten
…
Karten im Kurs
Praxisprojekt
…
Meilensteine
Prüfung
…
bestes Ergebnis
Deine Kompetenzen
offen begonnen sicher gemeistert
Berechnet aus deinen gelösten Aufgaben. Ziel für den Kompetenznachweis: überall mindestens «sicher» auf Stufe 2.
| 1 · Grundlagen | 2 · Fortgeschritten | 3 · Erweitert | |
|---|---|---|---|
| A · Reine Funktionen und unveränderliche Daten | 0% | 0% | 0% |
| B · Funktionen als Werte | – | – | – |
| C · Datenpipelines | – | – | – |
| D · Komposition und Rekursion | – | – | – |
| E · Funktional refaktorieren | – | – | – |
Abzeichen
Lektionen
- 1Reine Funktionen: Schluss mit versteckten NebenwirkungenDu erkennst Seiteneffekte und versteckte Inputs, schreibst deterministische Funktionen und trennst Berechnung von Ein- und Ausgabe nach dem Muster funktionaler Kern, imperative Schale.Gratis40 Min.
- 2Unveränderliche Daten: neue Versionen statt ÄnderungenDu verstehst Referenzen, kopierst statt zu mutieren (Spread, toSorted, with) und vermeidest die Falle flacher Kopien, in JavaScript, Java und C#.40 Min.
- 3Funktionen als Werte: Lambdas und Funktionen höherer OrdnungDu übergibst Funktionen als Parameter, schreibst eigene Funktionen höherer Ordnung und kennst die passenden Funktionstypen in Java und C#.40 Min.
- 4Closures, Fabrikfunktionen und CurryingDu verstehst, was eine Closure festhält, trennst mit Fabrikfunktionen Konfiguration und Logik und setzt Currying und partielle Anwendung gezielt ein.40 Min.
- 5map, filter und reduce: Schleifen als DatenpipelineDu formulierst Auswertungen als lesbare Pipeline aus filter, map, reduce und Gruppierung und verfolgst reduce Schritt für Schritt.45 Min.
- 6Streams, LINQ und Lazy EvaluationDu übersetzt Pipelines zwischen JavaScript, Java Streams und C# LINQ, verstehst eager und lazy Auswertung und optimierst Pipelines für grosse Datenmengen.45 Min.
- 7Komposition, Option und ResultDu setzt kleine Funktionen mit pipe und compose zusammen und behandelst erwartbare Fehler als Werte (Option, Result) statt mit Exceptions.40 Min.
- 8Rekursion und Pattern MatchingDu schreibst rekursive Funktionen für Baumstrukturen, unterscheidest Varianten mit Pattern Matching und schützt dich vor Stack Overflow und Zyklen.45 Min.
- 9Funktional refaktorieren: imperativen Code sicher umbauenDu sicherst gewachsenen Code mit Charakterisierungstests ab, baust ihn in kleinen Schritten zu Pipelines um und begründest, wo er bewusst imperativ bleibt.40 Min.