Theoretische Informatik
Inhalte:
- Reguläre Sprachen: Endliche Automaten, reguläre Ausdrücke.
- Kontextfreie Sprachen: Kellerautomaten, Grammatiken, Syntaxanalyse.
- Berechenbarkeit und Komplexität: Entscheidbarkeit, Klassen P und NP.
Literatur:
- Boris Hollas: Grundkurs Theoretische Informatik
- Michael Sipser: Introduction to the Theory of Computation
Künstliche Intelligenz
Inhalte:
- Symbolische KI
- Prolog-Programmierung
- Computeralgebra
- Sprachverarbeitung mit Grammatiken
- Problemlösen durch Suche: Uninformierte Suche, informierte Suche
- Spiele mit Gegner
- Probabilistische KI
- Bayes'sche Netze
- Naiver Bayes Klassifikator
- Logistische Regression
- Hauptkomponentenanalyse
Literatur:
- Wolfgang Ertel: Grundkurs Künstliche Intelligenz
- Stuart J. Russell und Peter Norvig: Artificial Intelligence: A Modern Approach
- William F. Clocksin und Christopher S. Mellish: Programming in Prolog
Programmierparadigmen
Am Beispiel der Programmiersprache Scala werden die Grundlagen der funktionalen Programmierung behandelt. Als Anwendung werden in den Übungen Algorithmen auf rekursiven Datenstrukturen implementiert.
Inhalt:
- Funktionen höherer Ordnung
- Pattern Matching
- Algebraische Datentypen
- Lazy Evaluation
- Monaden und Funktoren
- Funktionale Parser
Literatur: Paul Chiusano, Runar Bjarnason: Functional Programming in Scala.
Maschinelle Lernverfahren
Inhalte:
- Lerntheorie
- Überwachte Lernverfahren: Nearest Neighbor, Naiver Bayes, Entscheidungsbäume, Random Forests, Boosting, SVM.
- Unüberwachte Lernverfahren: Assoziationsregeln, Clusterverfahren.
- Reinforcement Learning
Literatur:
- Hastie et al: The Elements of Statistical Learning.
- Jurafsky / Martin: Speech and Language Processing.