inf400 - Theoretical Computer Science: Logic (Complete module description)

inf400 - Theoretical Computer Science: Logic (Complete module description)

Original version English PDF download
Module label Theoretical Computer Science: Logic
Module code inf400
Credit points 6.0 KP
Workload 180 h
Institute directory Department of Computing Science
Applicability of the module
  • Bachelor's Programme Computing Science (Bachelor) > Basismodule
  • Dual-Subject Bachelor's Programme Computing Science (Bachelor) > Wahlpflicht Theoretische Informatik (30 KP)
  • Master of Education Programme (Gymnasium) Computing Science (Master of Education) > Wahlpflichtmodule (Theoretische Informatik)
  • Master of Education Programme (Vocational and Business Education) Computing Science (Master of Education) > Akzentsetzungsbereich
Responsible persons
  • Wehrheim, Heike (module responsibility)
  • Matheja, Christoph (module responsibility)
  • Lehrenden, Die im Modul (authorised to take exams)
Prerequisites
Skills to be acquired in this module

Introduction to propositional logic, predicate logic, logic programming, and temporal logic
Professional competence
The students:

  • know syntax, semantics and applications of propositional logic, predicate logic, logic programming, and temporal logic
  • specify problems by using logical formulas
  • solve questions concerning propositional formulas with truth tables
  • draw conclusions in the field of propositional logic and predicate logic by means of natural deduction
  • answer queries to logic programs by using SLD resolution
  • perform model checking of Kripke structures with regard to CTL formulas algorithmically

Methodological competence
The students:

  • recognize logic as a versatile tool in computer science

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

The course introduces propositional, predicate and temporal logic. In computer science it is essential to have a good understanding of logic because the language of logical formulas is widely used in the field of computer science. For example, Boolean expressions appear in every programming language and in circuit design; Horn clauses are used in knowledge representation; predicate logic and temporal logic are used for specifying software and hardware. More recent applications such as interactive and automatic proving as well as the logic programming language PROLOG emphasize the tool character of logic in computer science. The course introduces syntax, semantics, procedures, and calculi to prove the validity of formulas of propositional, predicate, and temporal logic. This is illustrated by many examples. Central is the concept of logical consequence.
Topics: 

  • propositional logic: syntax and semantics, truth tables, natural deduction
  • predicate logic: syntax and semantics, natural deduction
  • logic programming: declarative and procedural semantics, unification algorithm (Robinson), SLD resolution, PROLOG
  • temporal logic CTL: syntax and semantics of Kripke structures, CTL model checking algorithm
Recommended reading

Essential: Script "Logik" (in German), in its current edition
Recommended: D. van Dalen: "Logic and Structure", Fourth Edition. Springer-Verlag, 2004.
Good secondary reading: U. Schöning: "Logic for Computer Scientists“, Birkhäuser, 1994.

Links
Language of instruction German
Duration (semesters) 1 Semester
Module frequency annual
Module capacity unlimited
Teaching/Learning method V+Ü
Previous knowledge Useful prerequisites:

set theory, functions and relations
Type of course Comment SWS Frequency Workload of compulsory attendance
Lecture 3 SuSe 42
Exercises 1 SuSe 14
Total module attendance time 56 h
Examination Prüfungszeiten Type of examination
Final exam of module

At the end of the lecture period

written exam or oral exam