Introduction to Logic Programming

Undergraduate and Postgraduate course, University of Düsseldorf, 2015

In imperative programming languages, programs are represented as sequences of instructions. In logic programming, one describes the solution for a problem as facts and rules instead of writing an algorithm. The computer then finds a solution autonomously. This offers a new and radically different point of view towards programming, useful even for the every day programmer using C or Java.

The lecture covers the following topics:

  • Propositional and predicate logic
  • Resolution
  • First-order logic
  • Programming using horn clauses
  • Basics of Prolog
  • Constraint logic programming
  • SAT solving

I prepared and graded weekly exercise sheets and gave a weekly tutorial on logic programming. Further, I prepared and graded exams and held an annual lecture on constraint logic programming.

I was involved in teaching this course for 8 years from 2015 until 2023.