This is an old revision of the document!
Logic and Constraint Programming
News
- 12/3/2019: the lecture is postponed
- 4/3/2019: the course web site is now on-line
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. 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.
Course Contents
- 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
Study material
Course Slides
Lectures
- 05/03/2019: general info, SWI Prolog, Declarative Programming, History of Prolog, examples (registration).
- 06/03/2019: variables, Prolog syntax, exercises registration
- 19/03/2019: prolog unification registration
- 20/03/2019: proof search; exercises registration
- 26/03/2019: recursion registration
- 27/03/2019: exercises registration
- 02/04/2019: list, exercises registration
- 03/04/2019: arithmetics registration
- 9/04/2019: list, exercises registration
- 10/04/2019: cut, exercises registration
- 16/04/2019: Cybersecurity seminar
- 7/05/2019: partial exam on Prolog results
- 14/05/2019: Drools registration tutorial
- 15/05/2019: Drools registration tutorial
- 21/05/2019: TODO - Minizinc 1
- 22/05/2019: TODO - Minizinc 2
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.
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