Logic and Constraint Programming


  • Guidelines for the projects' presentations: date and time: 3rd of June, 14:00-16:00; venue: https://unicam.webex.com/meet/francesco.tiezzi; presentation of the work: I expect a presentation with slides, and a demo of the implemented application, you do not need to write a report; presentation duration: 15 minutes (20 minutes at most); material: please, send me the slides and the developed code (it is fine to send it the same day of the exam).
  • 13/4/2020: the lectures of 14 and 15 March are postponed; the updated schedules of the next lectures is reported below.
  • 24/3/2020: the lecture of 24 March will start later; the beginning of the lecture is delayed to 10:00.
  • 17/3/2020: the 3rd hour of the lecture of today is postponed, due to problem with Webex.
  • 11/3/2020: please, install SWI Prolog in your machine: https://www.swi-prolog.org/
  • 10/3/2020: first lecture (via Webex: https://unicam.webex.com/meet/francesco.tiezzi)
  • Telegram channel: LCP1920@UNICAM (link: https://t.me/unicam_lcp1920)

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.

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.


  • Logic programming: basic concepts and Prolog language
  • Rule-based programming: Drools
  • Constraint programming: Minizinc

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 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