Print View

Vorlesungsthemen

Vorlesung am 29.08.2022

  • Organisatorisches
  • Natürliche Zahlen, Peano-Axiome, Rekursion und vollständige Induktion 
  • Quellen zum Nachlesen: Resources/Skripte/skript01.pdf

Vorlesung am 30.08.2022 

  • Syntax und Semantik von Informationen
  • Alphabete, Wörter und formale Sprachen
  • Repräsentation von natürlichen Zahlen in k-nären Systemen
  • 2-Komplement
  • Quellen zum Nachlesen: Resources/Skripte/skript02.pdf

Vorlesung am 01.09.2022

Einführung in Haskell:

  • imperative und deklarative Programmiersprachen: prozedural vs. funktional 
  • Glasgow-Haskell-Compiler GHC
  • Arithmetische Operationen in Präfix- und Infix-Notation
  • primitive Datentypen in Haskell
  • Typsignaturen
  • Vergleichsoperationen, Bool, Definitionen mit  if-then-else
  • Syntaxregeln und Kommentare
  • Quellen zum Nachlesen: Resources/Skripte/skript03_Einführung_Haskell.pdf

Vorlesung am 02.09.2022

  • Polymorphie und Typklassen: Eq, Num, Ord, Integral und Fractional
  • Tupel und Listen
  • Typsynonyme, Definition von Typen
  • Listenkonstruktoren und vordefinierte Funktionen auf Listen
  • Arithmetische Folgen und Listenerzeugung durch List Comprehension
  • Pattern Matching für Tupel und Listen 
  • Quellen zum Nachlesen: Resources/Skripte/Skript04_Listen_und_Co.pdf

Vorlesung am 05.09.2022

Rekursion in Haskell

  • primitive Rekursion (als theoretisches Konzept) vs. Rekursion in Haskell (und anderen Sprachen)
  • Beispiel: Fakultätsfunktion
  • Euklidischer Algorithmus und erweiterter Euklidischer Algorithmus
  • Rekursion auf Listen: Summe und Umkehrung (reverse)
  • Quellen zum Nachlesen: Resources/Skripte/skript05.pdf 
                                             Resources/Folien von Katharina Klost/VL3WS2122.pdf

Vorlesung am 06.09.2022

  • Rekursion mit mehrfachen Verankerungen: Fibonacci-Zahlen und Laufzeitprobleme
  • Türme von Hanoi
  • Mehr zum Datentyp Char und zu Strings
  • Quellen zum Nachlesen: Resources/Skripte/skript06.pdf

Vorlesung am 07.09.2022

Sortieralgorithmen und Laufzeitanalysen

  • Iterative Verfahren: InsertionSort und SelectionSort 
  • Anwendungen des Teile und Herrsche Prinzips: QickSort und MergeSort
  • Laufzeitanalysen
  • Die Landau-Symbole
  • Quellen zum Nachlesen: Resources/Skripte/skript07.pdf

Vorlesung am 08.09.2022

  • Fortsetzung zu Landau-Symbolen und Laufzeit der Sortieralgorithmen
  • Quellen zum Nachlesen: Resources/Skripte/skript07.pdf
  • Signatur als Datentyp von Funktionen
  • partiell ausgewertete Funktionen,  Currying 
  • Komposition von Funktionen mit dem . Operator
  • Funktionen höherer Ordnung
  • Höhere Listenfunktionen: map und filter
  • Quelle zum Nachlesen: Resources/Folien von Katharina Klost/VL7WS2122.pdf + VL8WS2122.pdf

Vorlesung am 12.09.2022

  • Höhere Listenfunktionen:  takeWhile, dropWhile und zipWith
  • Faltungen: foldr1, foldl1, foldr und  foldl
  • Endrekursive Funktionen
  • Quelle zum Nachlesen: Resources/Folien von Katharina Klost/VL8WS2122.pdf + VL9WS2122.pdf
  • Strukturelle Induktion für Funktionen auf Listen
  • Quelle zum Nachlesen: Resources/Folien von Katharina Klost/VL10WS2122.pdf 

Vorlesung am 13.09.2022

  • Typüberprüfung als Vorstufe der Compilierung
  • Automatisierte Typzuweisung durch dem Compiler - Typ-Inferenz
  • Quelle zum Nachlesen: Resources/Folien von Katharina Klost/VL9WS2122.pdf
  • Bedarfsgesteuerte Auswertung - Lazy Evaluation
  • Haskell-Ausdrücke, Normalform und schwache Normalform (WHNF)
  • Auswertungsstrategien: Call by Value, Call by Name, Call by Need
  • Auswertung von List-Comprehension-Ausdrücken
  • Unendliche Listen
  • Quellen zum Nachlesen:
    Resources/Skripte/skript10.pdf (etwas umfangreicher als in der VL) 
    Resources/Folien von Katharina Klost/VL4WS2122.pdf  (Kurzfassung zu WHNF und Auswertungsstrategien)
     

Vorlesung am 15.09.2022

  • Modelle zur Berechenbarkeit und die Churchsche These  
  • Primitive Rekursion: Definition und Beispiele primitiv rekursiver Funktionen
  • Der μ-Operator und die Klasse der μ-rekursiven Funktionen
  • Quelle zum Nachlesen: Resources/Skripte/skript11a.pdf (handschriftlich, gescannt)
  • Algebraische Datentypen: Syntax und erste Beispiele
  • rekursive algebraische Datentypen
  • Zuordnung eines algebraischen Datentyps zu einer Typklasse
  • Quelle zum Nachlesen: Resources/Skripte/skript11b.pdf