Print View

Vorlesung - 1Wed Oct 20, 2021 10:15 AM  | 

Vorlesung 1 - 19.10. 10:15

Organisatorisches:

Aktive Teilnahme:

  • 60% aller Punkte auf den Übungszetteln
  • auf (n-2) Zetteln mehr als 20% der Punkte
  • 2x Vorstellen einer Lösung im Tutorium
  • 1x erstellen eines kahoot-Quiz

Regelmäßige Teilnahme:

  • (n-2) mal anwesend im Tutorium

Note

  • 120 Minutenklausur am Ende des Semesters (i.A. nicht differenziert bewertet)

Inhaltliches:

  • Programmierparadigmen imperativ vs funktional (Einhornreiten)
  • GHCi als Taschenrechner
  • vordefinierte arithmetische Funktionen
  • eigene Funktionen schreiben
  • Typsignaturen
VL1.hs
VL1WS2121.pdf

Vorlesung - 2Mon Oct 25, 2021 10:15 AM  | 

  • Vergleichoperationen und Wahrheitswerte
  • Fallunterscheidung
  • Syntaxregeln
  • Polymorphie
  • Typklassen
  • Tupel und Listen
  • Listengeneratoren
  • Pattern Matching

 

------------------------------------------------

Errata:

 Folie 23: Signatur von f ist falsch. Müsste sein:

f :: (Integer,Integer) -> Float
VL2WS2121.pdf

Vorlesung - 3Wed Oct 27, 2021 10:15 AM  | 

  • Pattern Matching und Guards
  • case.. of
  • where, let .. in
  • Rekursion - Fakultätsfunktion
  • Rekursion und Listen

----------------------------------------------------------

Errata Folien:

Folie 1: Siehe Folie 23 in VL 2

Folie 11: Bei dreheUm fehlt der rekursive Aufruf. Richtig wäre:

dreheUm :: [a] -> [a]
dreheUm [] = []
dreheUm (x:xs) = dreheUm xs ++ [x]

Folie 16: Bei quickfib wird im Anker der falsche Wert zurückgegeben. Richtig wäre:

quickfib a b 0 = quickfib a
VL3WS2121_vorab1.pdf
VL3.hs
VL3WS2122.pdf

Vorlesung - 4Mon Nov 01, 2021 10:15 AM  | 

  • Rekursion -- Türme von Hanoi
  • Auswertungstrategien
  • Normalformen
  • Striktheit
  • Referentielle Transparenz
  • Suchen in Listen

 

--------------------------------------------

Errata:

Folie 13: Bei einer unendlichen Liste würde die Funktion nicht terminieren. Für das Beispiel müsste sie wie folgt definiert sein:

myfunc a [] = a
myfunc 0 _  = 0
myfunc a (x:xs) = (a-1) myfunc (a-1) xs
VL4WS2122_vorab.pdf
VL4WS2122.pdf
VL4.hs

Vorlesung - 5Wed Nov 03, 2021 10:15 AM  | 

  • Suchen in Listen (Wiederholung)
  • Sortieren
    • Selectionsort
    • Inserionsort
    • Mergesort
    • Quicksort
  • Motivation Komplexitätsanalyse
VL5WS2122_vorab.pdf
VL5.hs
VL5WS2122.pdf

Vorlesung - 6Mon Nov 08, 2021 10:15 AM  | 

  • Einführung O-Notation
  • Bedeutung O-Notation
  • Beispiele Laufzeitanalyse (max1, max2, sum)
VL6WS2122.pdf
Videos
Videos VL12

Vorlesung - 7Wed Nov 10, 2021 10:15 AM  | 

  • Analyse Sortieralgorithmen
  • Funktionen höherer Ordnung
    • Funktionen als Ein- und Ausgabe
    • Currying
VL7WS2122.pdf
VL7.hs

Vorlesung - 8Mon Nov 15, 2021 10:15 AM  | 

  • Funktionen höherer Ordnung
  • Currying
  • Anonyme Funktionen
  • map
  • filter
  • takeWhile, dropWhilezip, zipWith
  • Funktionsapplikation und Funktionskomposition
VL8.hs
VL8WS2122.pdf

Vorlesung - 10Mon Nov 22, 2021 10:15 AM  | 

  • Fibonacci mit scanl und zipWith
  • Endrekursion
  • seq, $! und foldl'
  • Korrektheitsbeweise mittels struktureller Induktion
VL10WS2122.pdf

Vorlesung - 11Wed Nov 24, 2021 10:15 AM  | 

  • Weitere Beispiele zur strukturellen Induktion

Algebraische Datentypen

  • Motivation
  • Einfache Beispiele
  • Algebraische Datentypen und Typklassen
  • Algebraische Datentypen und Polymorphie
VL11.hs
VL11WS2122_updated.pdf

Vorlesung - 12Mon Nov 29, 2021 10:15 AM  | 

  • Maybe
  • Rekursive algebraische Datentypen
  • Binärbäume
    • Motivation
    • Definitionen
    • erste Funktionen
VL12WS2122.pdf

Vorlesung - 13Wed Dec 01, 2021 10:15 AM  | 

  • Eigenschaften von Binärbäumen
  • Traversierung von Binärbäumen
  • Laufzeitanalyse auf Binärbäumen
  • Induktion auf Binärbäumen
VL13WS2122.pdf

Vorlesung - 26 + 27 VideosFri Jan 28, 2022 12:00 PM  | 

Lambda-Kalkül

  • Zahlen
  • Arithmetik
  • Listen
  • Rekursion

-----------------------------------------------

Folien 10 und 12: Die Funktion zum Testen auf 0 sollte isZero sein.

Folie 11: in der ersten Zeile des linken Blocks, fehlt eine Klammer vor dem x:

Y x = (λf.(λy.f(yy))(λy.f(yy))) x

Vl2627V1Zahlen.mp4
VL2627V2Arithmetik.mp4
Vl2627V3RekursionListen.mp4
VL26WS2122.pdf