Go to:

Site map

Code: | EIC0026 | Acronym: | PLOG |

Keywords | |
---|---|

Classification | Keyword |

OFICIAL | Programming |

Active? | Yes |

E-learning page: | http://moodle.fe.up.pt/ |

Responsible unit: | Department of Informatics Engineering |

Curso/CE Responsável: | Master in Informatics and Computing Engineering |

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

MIEEC | 5 | Syllabus (Transition) since 2010/2011 | 4 | - | 5 | 56 | 135 |

5 | |||||||

Syllabus | 4 | - | 5 | 56 | 135 | ||

5 | |||||||

MIEIC | 115 | Syllabus since 2009/2010 | 3 | - | 5 | 56 | 135 |

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

Henrique Daniel de Avelar Lopes Cardoso |

Lectures: | 2,00 |

Recitations: | 2,00 |

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

Lectures | Totals | 1 | 2,00 |

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

Recitations | Totals | 6 | 12,00 |

Daniel Cardoso de Moura | 4,00 | ||

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

Gustavo Alexandre Teixeira Laboreiro | 2,00 | ||

Inês Coimbra Morgado | 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.

2 - SPECIFIC 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.

3 - PREVIOUS KNOWLEDGE

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.

4 - PERCENTUAL DISTRIBUTION

Scientific component: 50%

Technological component: 50%

5 - LEARNING OUTCOMES

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.

- 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

Practical classes are used to solve programming exercises and for assisting students on their practical assignments.

SWI-Prolog - http://www.swi-prolog.org/

Physical sciences > Computer science > Programming

Physical sciences > Mathematics > Mathematical logic

Technological sciences > Engineering > Knowledge engineering

Description | Type | Time (Hours) | Peso (%) | End date |
---|---|---|---|---|

Attendance (estimated) | Participação presencial | 56,00 | ||

First Assignment | Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese | 30,00 | ||

Second Assignment | Trabalho escrito | 20,00 | ||

Interim Report for the First Assignment | Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese | 6,00 | ||

Final Report for the First Assignment | Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese | 12,00 | ||

Final Report for the Second Assignment | Defesa pública de dissertação, de relatório de projeto ou estágio, ou de tese | 8,00 | ||

Final Exam | Exame | 3,00 | ||

Total: |
- | 0,00 |

- 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 and Demonstration).

- Assignment2 - Final grade of assignment 2 (Report and Demonstration).

Minimum grade required in final examination to be approved is 6 (out of 20).

Important dates:

Deadline for submitting the intermediate report: 2/10

Deadline for submitting the 1st assignment: 06/11

Demonstrations of the 1st assignment: 7/11 a 11/11

Deadline for submitting the 2nd assignment: 11/12

Demonstrations of the 2nd assignment: 12/12 a 16/12

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

Page generated on: 2018-12-12 at 13:10:05

Page generated on: 2018-12-12 at 13:10:05