Logic Programming
Keywords |
Classification |
Keyword |
OFICIAL |
Programming |
Instance: 2007/2008 - 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.
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.
Evaluation Type
Distributed evaluation with final exam
Assessment Components
Description |
Type |
Time (hours) |
Weight (%) |
End date |
Subject Classes |
Participação presencial |
68,00 |
|
|
|
Total: |
- |
0,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
Practical – Grade attained in practical works
Exam – Grade in the final exam
Final = 50% * Practical + 50% * Exam
Minimum grade required in final examination to be approved in 6 (out of 20).
Examinations or Special Assignments
Practical evaluation is required for all students. Students must perform and present two practical assignments.
Special assessment (TE, DA, ...)
Practical evaluation is required for all students. Students must perform and present two practical assignments and perform the final exam.
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
Knowledge acquired in previous Programming and Algorithms and Data Structures courses may be very usefull for Logic Programming.