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