inf401 - Foundations of Theoretical Computer Science (Complete module description)

inf401 - Foundations of Theoretical Computer Science (Complete module description)

Original version English PDF Download
Module label Foundations of Theoretical Computer Science
Modulkürzel inf401
Credit points 6.0 KP
Workload 180 h
Institute directory Department of Computing Science
Verwendbarkeit des Moduls
  • Bachelor's Programme Computing Science (Bachelor) > Aufbaumodule
  • Bachelor's Programme Mathematics (Bachelor) > Nebenfachmodule
  • Dual-Subject Bachelor's Programme Computing Science (Bachelor) > Wahlpflicht Theoretische Informatik (30 KP)
  • Master of Education Programme (Gymnasium) Computing Science (Master of Education) > Pflichtmodule
  • Master of Education Programme (Hauptschule and Realschule) Computing Science (Master of Education) > Mastermodule
  • Master of Education Programme (Vocational and Business Education) Computing Science (Master of Education) > Akzentsetzungsbereich
Zuständige Personen
  • Wehrheim, Heike (module responsibility)
  • Lehrenden, Die im Modul (Prüfungsberechtigt)
Prerequisites
No participant requirement
Skills to be acquired in this module
Introduction to the theory of automata, formal languages, computability, and complexity
Professional competence
The students:
  • know different classes of languages (e.g. regular and context-free languages)
  • know automata models corresponding to the respective language classes (e.g. finite automata, pushdown automata, Turing machines)
  • construct automata, Turing machines, and grammars for given tasks
  • know equivalent formalisations of the concept of algorithm
  • classify functions as algorithmically computable and problems as algorithmically decidable
  • know and recognize undecidable problems
  • evaluate the complexity of algorithms
  • know problems that are solvable deterministically or nondeterministically in polynomial time
Methodological competence
The students:
  • learn about the power of abstract models of computation
Social competence
The students:
  • work together in small groups to solve problems
  • present solutions to problems to groups of other students
Self-competence
The students:
  • learn persistence in pursuing difficult tasks
  • learn precision in writing down solutions
Module contents
In the first part of the course, different classes of languages are introduced (regular and context-free languages). For each class a matching automata model is presented (finite automata, pushdown automata). Various properties are proven for the introduced classes of languages and models of automata. In the second part of the course, we examine which functions are computable and which problems are decidable. To this end, the concept of algorithm is formalised. Turing machines and grammars turn out as equivalent approaches. We show that there are problems that are undecidable. Many of these problems are of practical interest. The third part of the course deals with the complexity of algorithms, i.e. how much time and space is required to solve a problem. In particular, we consider problems that are solvable in polynomial time, either deterministically or non-deterministically. These problems are classified as P and NP.
Literaturempfehlungen
Essential:
  • Skript "Grundbegriffe der Theoretischen Informatik", jeweils in aktueller Ausgabe
Recommended:
  • Schöning: "Theoretische Informatik kurzgefasst", 5. Auflage, Spektrum, 2008
Good secondary literature:
  • Hopcroft, Motwani, Ullman: "Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie", Pearson, 2002 (ein Klassiker...)
Links
Language of instruction German
Duration (semesters) 1 Semester
Module frequency annual
Module capacity unlimited
Teaching/Learning method V+Ü
Previous knowledge none
Lehrveranstaltungsform Comment SWS Frequency Workload of compulsory attendance
Lecture 3 WiSe 42
Exercises 1 WiSe 14
Präsenzzeit Modul insgesamt 56 h
Examination Prüfungszeiten Type of examination
Final exam of module
At the end of the lecture period
Written or oral exam