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.