Go to:

Site map

Code: | EIC0026 | Acronym: | PLOG |

Keywords | |
---|---|

Classification | Keyword |

OFICIAL | Programming |

Active? | Yes |

Responsible unit: | Department of Informatics Engineering |

Course/CS Responsible: | Master in Informatics and Computing Engineering |

Acronym | No. of Students | Study Plan | Curricular Years | Credits UCN | Credits ECTS | Contact hours | Total Time |
---|---|---|---|---|---|---|---|

MIEIC | 155 | Syllabus since 2009/2010 | 3 | - | 4,5 | 56 | 121,5 |

Teacher | Responsibility |
---|---|

Rui Carlos Camacho de Sousa Ferreira da Silva | |

Henrique Daniel de Avelar Lopes Cardoso |

Lectures: | 2,00 |

Recitations: | 2,00 |

Type | Teacher | Classes | Hour |
---|---|---|---|

Lectures | Totals | 1 | 2,00 |

Rui Carlos Camacho de Sousa Ferreira da Silva | 1,00 | ||

Henrique Daniel de Avelar Lopes Cardoso | 1,00 | ||

Recitations | Totals | 6 | 12,00 |

Henrique Daniel de Avelar Lopes Cardoso | 4,00 | ||

Daniel Augusto Gama de Castro Silva | 4,00 | ||

Rui Carlos Camacho de Sousa Ferreira da Silva | 4,00 |

The Logic Programming paradigm is a declarative approach to programming, based on formal reasoning processes, which is more appropriate to address some types of problems. Constraint logic programming allows addressing constraint satisfaction and optimization problems by modeling them in a straightforward and elegant fashion.

Aims: To get acquainted with the Logic Programming and Constraint Programming paradigms. To develop skills for abstract reasoning and declarative problem representation.

The course focuses on first-order logic programming. On the practical side the Prolog programming language is explored. Additionally, constraint logic programming is also introduced, and several application examples are provided.

Percentual Distribution: Scientific component: 50%; Technological component: 50%

At the end of this course, students should be able to:

- Identify classes of problems where Logic Programming (and with Constraints) is particularly relevant.
- Apply Prolog programming and constraint logic programming techniques.
- Build full Prolog applications, with possible connections to other programming languages.

Moreover, students should have acquired programming skills required for assignments of other courses in the domain of Artificial Intelligence.

Although the course does not have any special prerequisites, any knowledge obtained from the courses of Programming Fundamentals, Programming, Algorithms and Data Structures, and Algorithm Design and Analysis, are useful for the course of Logic Programming.

Foundations of Logic Programming

- Propositional logic. Predicate lógic. Inference rules. Horn clauses. Unification. Resolution. Conjunctive normal form.
- The logic programming paradigm. Origins of Prolog.

Logic Programming

- Clauses. Predicates. Facts. Queries. Rules. Logic variables. Instantiation.
- Logic programming and databases. Recursion. Lists. Trees. Symbolic expressions.
- Computation model of a logic program. The unification algorithm. Abstract interpreter. Traces. Search trees. Negation.

The Prolog Language

- Execution model. Backtracking. Rule and goal order. Termination.
- Arithmetic. Iteration. Structure inspection. Meta-logical predicates. Control: cuts and negation. Extra-logical predicates.

Advanced Prolog Programming Techniques

- Non-deterministic programming. Incomplete data structures. Meta-interpreters. Search techniques.

Constraint Logic Programming

- Constraints. Constraint satisfaction. Constraints in finite domains.
- Constraint logic programming (CLP). Search control. Variable and value ordering. Modelling problems in CLP. Constraint programming using SICStus Prolog.

Marriot, Kim; Programming with constraints. ISBN: 0-262-13341-5

Clocksin, W. F.; Programming in prolog. ISBN: 0-387-58350-5

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

Stuart Russell, Peter Norvig; Artificial intelligence. ISBN: 978-0-13-207148-2

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.

Physical sciences > Computer science > Programming

Physical sciences > Mathematics > Mathematical logic

Physical sciences > Computer science > Cybernetics > Artificial intelligence

Designation | Weight (%) |
---|---|

Exame | 50,00 |

Participação presencial | 0,00 |

Trabalho laboratorial | 50,00 |

Total: |
100,00 |

Designation | Time (hours) |
---|---|

Estudo autónomo | 10,00 |

Frequência das aulas | 52,00 |

Trabalho laboratorial | 60,00 |

Total: |
122,00 |

Enrolled students are admitted to exam if they do not exceed the allowed number of non-attendance to lab classes (maximum 25% of non-attendance) and provided that they obtain a minimum of 7 values (out of 20) in the evaluation of each practical assignment.

Final Grade = 50% * Assignments + 50% * Exam

Assignments = 65% * Assignment1 + 35% * Assignment2

Assignment1 = 25% * Inter1 + 75% * Final1

Exam: Exam final grade.

Assignments: Final grade for both Assignments.

Inter1: Interim evaluation grade for Assignment 1.

Final1: Final evaluation grade for Assignment 1 (Report and Demo).

Assignment2: Evaluation grade for Assignment 2 (Report and Demo).

To obtain approval in the course, a minimum grade of 7 values (out of 20) is required in the Exam. The Exam will be open-book.

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. The 1st assignment interfaces with the LAIG course (for students enrolled in that course).

Evaluation in special seasons consists of one practical Assignment and a written Exam, where each of these components weights 50% on the final grade.

Practical evaluation is required to ALL students. 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+demo). Students’ enrolled using special frequency modes, without obligation to attend to the practical classes, must arrange with the teachers appropriate consultation and evaluation sessions.

Exam grade improvement: in the available exam dates.

Distributed evaluation improvement: this is practical evaluation and can only be improved in the assignment dates of the course, in the following edition.

Copyright 1996-2019 © Faculdade de Engenharia da Universidade do Porto
I Terms and Conditions
I Accessibility
I Index A-Z
I Guest Book

Page generated on: 2019-03-22 at 02:57:06

Page generated on: 2019-03-22 at 02:57:06