Master Seminar: Programming in Prolog (SoSe 2026)

  • Time: Mondays 12:00-14:00 (13 April 2026 – 13 July 2026)
  • Location: Oettingenstraße 67, U139
  • Instructor: Prof. Dr. François Bry

News

28 April 2026: Changer of topics

The topics of the venues of 15 JHune and 22 June have been exchanged (on the students' request).

16 April 2026: Change in the schedule

There will be an additional seminar venue on Monday 04 Mai, see below the revised schedule.

04 April 2026: Message from the examination office

  • Once a seminar topic has been assigned to a student, the examination is deemed to have commenced. If the student subsequently leaves the seminar, the student will be given the examination grade ‘fail’.
  • Students must nevertheless explicitly register themselves for the examination via LSF. This registration is expected to be possible in the second half of April, once the seminar topics have been assigned.

Overview

Prolog is a declarative programming language used among others for rapid prototyping, knowledge representation, and symbolic artificial intelligence —among others causal reasoning and explainable artificial intelligence.

Prolog is based on a fragment of first-order logic and a restricted form of resolution proofs. Prolog departs from classical mathematical logic in a few aspects, most notably in its treatment of negation.

The seminar aims at discovering Prolog, understanding Prolog's semantics, and learning typical Prolog programming techniques.

The seminar talks are expected to be given in English. The seminar reports can be written in English or German. A seminar presentation and its associated written report will be worked out either by two students working in team, or by a single student.

Material

Prolog Tutorial

Markus Triska: The Power of Prolog, 2005, revised 2025 https://www.metalevel.at/prolog/

Remark:

  • This tutorial refers mostly, but not only tho the Prolog system "Scryer Prolog" (see https://www.scryer.pl/ )

Online Prolog systems

  • CIAO Prolog: https://ciao-lang.org/playground/
  • https://nextleap.app/online-compiler/prolog-programming
  • One Compiler: https://onecompiler.com/prolog
  • SWI Prolog: https://swish.swi-prolog.org/
  • Tutorials Point: https://www.tutorialspoint.com/compilers/online-prolog-compiler.htm

Schedule

The topics mentioned below refer to Chapters of the tutorial: Markus Triska: The Power of Prolog, 2005, revised 2025 https://www.metalevel.at/prolog/

Mo 13 April

Topic assignment

Mo 20 April

Supervision

Mo 27 April

Chen Xiao: Basic Concepts - Prolog Data Structures

Mo 04 Mai

Maximilian Hofstetter: Higher-order Predicates and Logical Purity

Mo 11 May

Rasmus Leander Valeth: Reading Prolog Programs and Writing Prolog Programs - Termination and Nontermination

Mo 18 May

David Peter Schrank and Daniel Stephan Kratzer: CLP(FD) and CLP(ℤ): Prolog Integer Arithmetic

Mo 25 May Holliday

Mo 1 June

No venue

Mo 8 June

Alexander Recum and Andrei Zubarev: Declarative Testing and Declarative Debugging

Mo 15 June

Erya Wang: Combinatorial Optimization

Mo 22 June

Emilia Streck and Cäcilia Agnes Bolz: Definite Clause Grammars

Mo 29 June

Felicitas Lock and Zhou Yu: Solving Logic Puzzles, Expert Systems, and Theorem Proving

Mo 6 July

Christian Daniel Krengel and Yannick Andreas Martin: Memoization

Mo 13 July

Conclusion

Su 02 August

Seminar written reports due

Hints for all presentations and written reports:

  • Use the tutorial, but give your own presentation and write your own report.
  • Run, or be ready to run, the programs mentioned in your presentation.
  • Prepare yourself to answer questions that are likely to arise from your presentation.
  • Prepare yourself to give solutions to the tutorial's exercises related to your presentation.