Constraint Logic programming

COURSE INFORMATION

COURSE NAME

Constraint Logic programming

Course Code

0828 (Computer Science)

Course Type

Optional

Level of Course

Undergraduate

Year of Study

4rd

Term

Spring

ECTS Credits

5

Name of Instructor

IDr. Ilias Sakellariou (Lecturer)

E-mail

iliass@uom.gr

Office Hours

Open Door Policy

In-Classroom Study

3 hours per week

Out-of-Classroom Study

2 hour per week

Objective of the Course

Logic Programming and Constraint Logic programming are among the most interesting programming schools, that significantly differs from the "classical" schools of imperative and object oriented programming. The course aims to (a) introduce to the students logic programming, offering a brief introduction to the theoretical foundations of First Order Predicate Logic and the resolution principle, (b) present in depth Prolog, (c) present the principles of constraint programming and their embedding in the LP platforms, that leads to powerful tools for solving problems, (d) present the applications classes in which LP and CLP offer significant advantages and finally, develop student programming skills, like recursion that are applicable to all programming schools.

Prerequisites

Basic Programming Skills

Course Contents

Introduction to Logic Programming. Declarative Programming, First Order Predicate Logic and Logic Programs. Prolog Syntax, facts, rules. Program Execution-queries. Logic Variables and Scope. Terms and Unification. Resolution. Execution Mechanism. Debugging. Recursion. Prolog Arithmetic. Lists, cut and control of execution. Higher Order predicates (all solutions, variable call, negation as failure, term composition and decomposition, Prolog DB). Files. Graphs. Natural Language Processing and Grammars. Constraint Satisfaction Problems. The notion of constraints over Variables. Domains. Solving Constraint Satisfaction problems. Filtering algorithms on binary and higher order constraints. The Eclipse programming language. Example problem classes (scheduling, resource allocation).

Recommended Readings

K. R. Apt, M. G. Wallace, "Constraint Logic Programming Using ECLiPSe", Cambridge University Press, 2007.

Bratko, Prolog Programming for Artificial Intelligence, (3rd edition), Addison Wesley, 2001 ISBN-10:0201403757, ISBN-13:9780201403756.

R. Kowalski, Logic for Problem Solving, North-Holland, 1983 (from author's web page)

Teaching Methods

3h Lectures/Week

Assesment Methods

Final Written Examination (70%), Weekly assignments (10%), Coursework (20%)

Language of Instruction

English

Course Schedule

 

1. Week

Introduction to Logic Programming. Declarative Programming, First Order Predicate Logic and Logic Programs.

2. Week

Prolog Syntax, facts, rules. Program Execution-queries. Logic Variables and Scope.

3. Week

Terms and Unification. Resolution. Execution Mechanism. Debugging.

4. Week

Recursion. Prolog Arithmetic.

5. Week

Lists and Recursion

6. Week

Cut and control of execution.

7. Week

Higher Order predicates (all solutions, variable call, negation as failure, term composition and decomposition, Prolog DB).

8. Week

Natural Language Processing and Grammars.

9. Week

Constraint Satisfaction Problems. The notion of constraints over Variables. Domains. Solving Constraint Satisfaction problems.

10.Week

Filtering algorithms on binary and higher order constraints. The Eclipse programming language.

11.Week

The Eclipse programming language. Example CLP problem classes.

12.Week

Example CLP problem classes.

13.Week

Revision Lecture