Hide menu

TDDD08 Logic Programming

Course information


The course is given in English. (Tutorials may be given in Swedish, if all participants are fluent in Swedish). Exams are given in English but answers can be given in Swedish or English.

Course literature

Additional non-required reading

  • Prolog programming: Sterling och Shapiro. The Art of Prolog, 2ed, MIT-Press.
  • Reasoning about programs:
    W. Drabent. Logic + control: An example. In Technical Communications of ICLP'12.
  • Negation: Sections 2.3 and 3 of W. Drabent, Hybrid Reasoning with Non-monotonic Rules. (In Reasoning Web. Semantic Technologies for Software Engineering. Vol. 6325 of LNCS, Springer, pp 28-61, 2010)
  • Theory:
    K. Apt. From Logic Programming to Prolog. Prentice-Hall.
    J. Lloyd. Foundations of Logic Programming, 2ed, Springer-Verlag.


An introductory course in logic (TDDC36 or similar) and discrete mathematics. The course also assumes programming experience.


The course should provide knowledge in logic programming including both theoretical notions as well as practical programming practice in the programming language Prolog. Theoretical notions, which are the basis of Prolog, are covered at lectures. Declarative and procedural semantics is discussed as well as how to deal with negation. Application areas (such as deductive databases and grammars) are also covered. Another topic addressed at the lectures is constraints and constraint logic programming. The tutorials address more pragmatic issues -- databases, recursive datastructures (e.g. lists) and abstract data types are discussed, as well as how to write efficient Prolog code.The laboratory classes focus on pratical problem solving in the above areas using the programming language Prolog.


To pass the course you must pass both the written examination and complete all laboratory execises. There are two re-examinations during the academic year.

Page responsible: Wlodek Drabent
Last updated: 2015-10-10