Modulseite

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.

9 Lektionenca. 6 Std. Lernzeit60 Aufgaben15 Code-Labore39 KarteikartenPraxisprojekt (5 Meilensteine)Prüfungssimulation (90 Min.)

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.

Jetzt starten

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.

Deine Kompetenzen

offen begonnen sicher gemeistert

Berechnet aus deinen gelösten Aufgaben. Ziel für den Kompetenznachweis: überall mindestens «sicher» auf Stufe 2.

1 · Grundlagen2 · Fortgeschritten3 · Erweitert
A · Reine Funktionen und unveränderliche Daten0%0%0%
B · Funktionen als Werte–––
C · Datenpipelines–––
D · Komposition und Rekursion–––
E · Funktional refaktorieren–––

Abzeichen

Gestartet
Halbzeit
Durchgezogen
Lauf
Code-Held
Gedächtnis
Praxisprofi
Prüfungsreif
Meisterschaft
Neugierig
KI-Trainer
Fachgespräch bestanden

Lektionen

  1. 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.
  2. 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#.
  3. 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#.
  4. 4Closures, Fabrikfunktionen und CurryingDu verstehst, was eine Closure festhält, trennst mit Fabrikfunktionen Konfiguration und Logik und setzt Currying und partielle Anwendung gezielt ein.
  5. 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.
  6. 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.
  7. 7Komposition, Option und ResultDu setzt kleine Funktionen mit pipe und compose zusammen und behandelst erwartbare Fehler als Werte (Option, Result) statt mit Exceptions.
  8. 8Rekursion und Pattern MatchingDu schreibst rekursive Funktionen für Baumstrukturen, unterscheidest Varianten mit Pattern Matching und schützt dich vor Stack Overflow und Zyklen.
  9. 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.