Logic and Constraint Programming


  • 29/5/2019: last lecture
  • 22/5/2019: the lecture is postponed
  • 20/5/2019: partial exam results published (see lecture of 7/5/19)
  • 12/3/2019: the lecture is postponed
  • 4/3/2019: the course web site is now on-line

Teacher:

ESSE3 Link

Lessons schedule:

  • Tue 9:00-12:00, AB1
  • Wed 14:00-16: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. 5- Have the knowledge of the syntax and the semantics of the input languages of Z3.

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- Writing constraint-based programs in Z3. 5- 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.


  • Logic programming: basic concepts and Prolog language
  • Introduction to Constraint Satisfaction Problems
  • Rule-based programming: Drools
  • Constraint programming: Minizinc
  • Resolution of Constraint Satisfaction Problems: Z3

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, Z3.
  • Course's slides.

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


Exam Dates A.Y. 2015/2016

  • Winter session dates here
  • Summer session dates here
  • Autumn session dates here
  • Winter session dates here (2016)

Exam rules:

Exam Results

  • N/A