Logic and Constraint Programming



Teacher:

ESSE3 Link

Lessons schedule:

  • Tue 16:00-18:00, AB1
  • Wed 09:00-11:00, AB1

Students Office hours:

  • On appointment (via email), second floor of Polo Lodovici, via Madonna delle Carceri 9, Camerino

D1 – KNOWLEDGE AND UNDERSTANDING At the end of the course, the student should be able to: 1- Have the knowledge of the issues concerning logic and constraint programming. 2- Have the knowledge of the syntax and the semantics of the Prolog language. 3- Have the knowledge of the syntax and the semantics of the input languages of Drools. 4- Have the knowledge of the syntax and the semantics of the input languages of Minizinc.

D2 – APPLYING KNOWLEDGE AND UNDERSTANDING At the end of the course, the student should be able to: 1- Writing logic programs in Prolog. 2- Writing rule-based programs in Drools. 3- Writing constraint-based programs in Minizinc. 4- Understand technical manuals on the languages and tools presented in the course and similar ones.

D3 – MAKING JUDGEMENTS At the end of the course, the student should be able to: 1- Identify the best language suitable for describing the logic of an intelligent system.

D4 - COMMUNICATION SKILLS At the end of the course, the student should be able to: 1- Describe in a clear way the behaviour of a logic- and constraint-based program. 2- Write a brief survey and state of the art about a given research topic related to constraint and logic programming by searching the scientific literature.

D5 – LEARNING SKILLS At the end of the course, the student should be able to: 1- Search the scientific literature for specific advances in languages and tools for logic and constraint programming. 2- Autonomously understand and learn to use new features added to tools for logic and constraint programming.


  • Constraint programming: Minizinc
  • Rule-based programming: Drools
  • Logic programming: Prolog

Course Slides

Lectures

Practical sessions

Reference books The main material of the course consists of:

  • Stuart J. Russell and Peter Norvig. Artificial Intelligence A Modern Approach. Third Edition. Pearon, 2016.
  • Patrick Blackburn, Johan Bos, Kristina Striegnitz. Learn Prolog Now! 2001
  • Tutorial of Drools, Minizinc.
  • Course's slides.

Moreover, lecture notes, papers and slides may be given by the teacher for studying and for exercises.


Exam rules:

The exam is divided in two parts:

  • Programming test:
    • on the exam date a programming test takes place, using the languages and tools introduced in the course
    • during the course in itinere tests take place; in case they are evaluated positively, they replace the programming test of the exam date
  • Realisation of a project using one or more languages and software tools with a presentation