Umsetzungsvorschlag

Umsetzungsvorschlag Modul 323

Lektionenplan Vorschlag

Anzahl LektionenThemenKompetenzenTools
2Einführung
Aufgaben aus imperativer Praxis, dann die Beispiele funktional aufzeigen
A, CVisual Studio Code o.ä.
2Was sind pure Functions, wie werden Daten gehandabt (immutable data), allgem. Begriffe funktionaler ProgrammierungA, C
2Entscheidungen und Loops in funktionaler ProgrammierungA, C
2Algorithmen in funktionaler Programmierung (Rekursion), filer-map-reduceA, C
2Praxisnahe Beispiel mit Algorithmen durch funktionale Programmierung umsetzen
Vor und Nachteile funktionaler Programmierung
A, C
2Prüfung 1A, C
2Anforderungen und Design
Wie beschreibe ich Probleme so dass sie deklarativ umgesetzt werden können – Übungen Text transfer in Code
B, C
2Anforderungen definieren, damit diese als Funktionen umgesetzt werden könnenB, C
2Entwurfsmuster und funktionale ProgrammierungB, C
2Entwurfsmuster und funktionale ProgrammierungB, C
2Prüfung 2
2Refactoring
Bestehender Code verbessern (u.a. evtl. Code von MitschülerInnen verbessern etc.)
D
2Parallele prozesse in funktionaler ProgrammierungC
2Diverse Übungen in funktionaler ProgrammierungC
2Projekt
Kombination imperativ und funktional (oder nur funktional)
2""
2""
2Feedback Projekt (evtl. mit Refactoring)
4Reserve



Gedanken und Themen für das Modul

Programmierparadigma funktionales Programmieren vs. imperatives Programmieren

  • Unterschiede mittels Beispiele und Aufgaben aufzeigen
  • Bsp. Fibonacci Reihe imperativ und funktional umsetzen
  • OO-Bsp. in Funktionales Programm umwandeln

Grundlagen der funktionalen Programmierung

  • Was sind Funktionen (Merkmale von pure functions, können aneinander gereiht werden, etc.)
  • Funktionen als Werte (functions as values)
  • Wie werden Daten gehandabt (Stichwort: immutable data)
  • Wie werden Entscheidungen und Schleifen umgesetzt (oder eben nicht); loops vs rekursion
  • Auswirkungen von Funktionen (No side effects)
  • Lambda-Ausdrücke als Funktionen
  • Error-Handling

Deklarative Beschreibungen

  • Wie erstelle ich Beschreibungen anhand denen ich funktionale Programme ableiten kann?

Unterschied deklarativ vs. Imperativ (erwähnt in HK 3.2)

  • Deklarativ: beschreibt was getan werden muss, nicht wie (!= imperativ)
  • Funktionen und Big Data (parallelles Programmieren)

Algorithmen in funktionalen Programmen

  • Rekursion anstatt Schleifen
  • Filter-Map-Reduce
  • Such-Algorithmen
  • Pipeline-basierte Algorithmen

Entwurfsmuster und funktionales Programmieren

  • Builder-Pattern
  • Factory Pattern ?

Refactoring von prozeduralem Code

  • Code verbessern durch Anwendung funktionaler Programmierung

Qualitätsprüfung von funktionalen Programmen

  • Qualitätsmerkmale für funktionalen Code
  • Prüfung von funktionalen Code (evtl. in Kombination mit Modul 450)
Änderung vorschlagen GitHub