Logic Programming
Keywords |
Classification |
Keyword |
OFICIAL |
Programming |
Instance: 2009/2010 - 1S
Cycles of Study/Courses
Teaching language
Portuguese
Objectives
Get acquainted with Logic Programming and Constraint Logic Programming paradigms and with Prolog programming language.
Develop competences for abstract reasoning and for representing problems in a declarative manner.
Recognize problem categories for which (constraint) logic programming is appropriate.
Practice of Prolog and Constraint Logic Programming techniques.
Development of complete Prolog applications with connection to other programming languages.
Development of the programming competences required in other disciplines related to Artificial Intelligence.
Program
INTRODUCTION TO LOGIC PROGRAMMING. Prolog history and foundations. Prolog applications. Logic programming systems. Logic programming theorectical foundations.
LOGIC PROGRAMMING. Basic concepts. Predicates, clauses, facts, rules, queries, logic variables and instantiation. Database programming style. Recursive programming. Logic programming computational model. Tracing and search trees. Resolution and unification.
PROLOG LANGUAGE. Prolog execution model. Comparison with conventional languages. Goals and rule’s ordering. Recursive programming and Backtracking. Operators and arithmetic. Structure inspection. List processing. Meta-Logic predicates. Control: Cuts and negation. Extra-logic predicates.
ADVANCED PROLOG. Non deterministic programming. Incomplete data structures. Meta-Interperters. Search techniques. Defined clause grammars.
LOGIC PROGRAMMING METHODOLOGY: General principles for logic programming. How to think in Prolog? Programming style. Program debugging. Efficiency and optimization.
CONSTRAINT LOGIC PROGRAMMING. Constraints and Constraint Satisfaction. Finite domain constraints. Constraint Logic Programming (CLP). Search control: Variable and value ordering. CLP problems modelling. Constraint programming systems. Constraint programming using Sictsus Prolog.
Mandatory literature
Sterling, Leon;
The Art of Prolog. ISBN: 0-262-69163-9
Marriot, Kim;
Programming with constraints. ISBN: 0-262-13341-5
Clocksin, W. F.;
Programming in prolog. ISBN: 0-387-58350-5
Complementary Bibliography
Torres, Delfim Fernando Marado;
Introdução à programação em lógica. ISBN: 972-8021-93-3
Bratko, Ivan;
Prolog programming for artificial intelligence. ISBN: 0-201-40375-7
O.Keefe, Richard A.;
The craft of Prolog. ISBN: 0-262-15039-5
Teaching methods and learning activities
Theoretical classes are used for exposition of the main (constraint) logic programming concepts, presentation and discussion of practical examples.
Practical classes are used to solve programming exercises and for assisting students on their practical assignments.
Software
Sicstus Prolog - http://www.sics.se/sicstus/
SWI-Prolog - http://www.swi-prolog.org/
keywords
Physical sciences > Computer science > Programming
Physical sciences > Mathematics > Mathematical logic
Technological sciences > Engineering > Knowledge engineering
Physical sciences > Computer science > Cybernetics > Artificial intelligence
Evaluation Type
Distributed evaluation with final exam
Assessment Components
Description |
Type |
Time (hours) |
Weight (%) |
End date |
Attendance (estimated) |
Participação presencial |
52,00 |
|
|
Final Exam |
Exame |
3,00 |
|
|
Practical Assignment 1 (LP) |
Trabalho escrito |
40,00 |
|
|
Practical Assignment 2 (CLP) |
Trabalho escrito |
15,00 |
|
|
Study (Exercices) |
Teste |
15,00 |
|
|
|
Total: |
- |
0,00 |
|
Amount of time allocated to each course unit
Description |
Type |
Time (hours) |
End date |
Study (Theory) |
Estudo autónomo |
10 |
|
|
Total: |
10,00 |
|
Eligibility for exams
Students approve in practical evaluation if they don’t exceed the fault limit and get a minimum of 30% grade in the required practical assignments.
Calculation formula of final grade
Final Grade = 50% * Practical Assignments + 50% * Exam
- Exam – Examination Final Grade
- Practical Assignments - Practical Assignments Final Grade.
Practical Assignments = 15%*Mid1 + 50%*Final1 + 35%*Assignment2
- Mid1 – Grade of the Assignment 1 intermediate report.
- Final1 – Final grade of assignment 1 (Report, Demonstration and Oral Presentation).
- Assignment2 - Final grade of assignment 2 (Report and Demonstration).
Minimum grade required in final examination to be approved is 6 (out of 20).
Examinations or Special Assignments
No exams or special assignments. The course has 50% of practical evaluation required to all students. Practical assignments must be performed in the appropriate semester following the rules available at the course website.
Special assessment (TE, DA, ...)
Practical evaluation is required for all students to attain frequency. Students must perform and present two practical assignments (see course website for details). The practical assignments are evaluated as described in the course website (report+demonstration+oral presentation). Students’ registered using special frequency modes, without obligation to attend to the practical classes, must arrange with the teachers the evaluation sessions to present their practical assignments.
Classification improvement
Students may perform exams to improve their grade in the appropriate periods. Practical evaluation may only be improved in the appropriate semester.
Observations
Although there are no special pre-requisites, knowledge acquired in Programming Fundamentals, Programming, Algorithms and Data Structures and Complements of Programming and Algorithms is useful for Logic Programming.