This is an old revision of the document!
Logic and Constraint Programming
News
- 24/3/2020: the lecture of 24 March will start later; the beginning of the lecture is delayed to 10:00.
- Google Meet: https://meet.google.com/yrw-jsak-pci
- 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)
General Info
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
Course Objectives
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.
Course Contents
- Logic programming: basic concepts and Prolog language
- Rule-based programming: Drools
- Constraint programming: Minizinc
Study material
Course Slides
Lectures
- 10/03/2020: general info, SWI Prolog, Declarative Programming, History of Prolog, examples (recorded lecture).
- 11/03/2020: Prolog syntax, exercises (recorded lecture)
- 17/03/2020: unification recorded lecture 1 recorded lecture 2
- 18/03/2020: exercises, proof search recorded lecture
- 24/03/2020: proof search examples; recursion recorded lecture
- 25/03/2020: recursion recorded lecture
- 31/03/2020: exercises on recursion; lists (recorded lecture)
- 01/04/2020: exercises on lists, arithmetics (recorded lecture)
- 07/04/2020: accumulators and append, exercises
- 08/04/2020: cut, exercises
- 14/04/2020: Minizinc 1
- 15/04/2020: Minizinc 2
- 21/04/2020: partial exam on Prolog
- 22/04/2020: Drools 1
- 28/04/2020: Drools 2
- 29/04/2020: Drools 3
- 05/05/2020: Discussion about projects
- 26/05/2020: Projects' presentations
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.
Exams
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