Fakultät Informatik/Mathematik

Theoretische Informatik

Inhalte:

  • Reguläre Sprachen: Endliche Automaten, reguläre Ausdrücke, Lexer.
  • Kontextfreie Sprachen: Kellerautomaten, Grammatiken, Syntaxanalyse, rekursive Abstiegsparser.
  • Berechenbarkeit und Komplexität: Entscheidbarkeit, Klassen P und NP.

Literatur: Boris Hollas: Grundkurs Theoretische Informatik

In der ersten Woche finden keine Übungen statt!

Künstliche Intelligenz

Inhalte:

  • Symbolische KI
    • Logisches Schließen
    • Computeralgebra
    • Problemlösen durch Suche: Uninformierte Suche, informierte Suche
    • Spiele mit Gegner
    • Constraint Programming
  • Probabilistische KI
    • Bayes'sche Netze
    • Naiver Bayes Klassifikator
    • Logistische Regression
    • Umgang mit scikit-learn

Als Programmiersprache werden Prolog und Python verwendet.

Literatur:

  • Wolfgang Ertel: Grundkurs Künstliche Intelligenz
  • Stuart J. Russell und Peter Norvig: Artificial Intelligence: A Modern Approach

Die Übung findet in der ersten Woche noch nicht statt!

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.