Guia de Cursos

Queres conhecer a oferta de cursos da NOVA, nas áreas das licenciaturas, mestrados e doutoramentos?
No nosso Guia de Cursos encontras informação útil sobre Faculdades, Institutos e Escolas.
Podes ainda aceder a informações complementares necessárias a uma completa integração.

saber mais Guia de Cursos

Faculdade de Ciências e Tecnologia

Programação em Lógica com Restrições

Código

8155

Unidade Orgânica

Faculdade de Ciências e Tecnologia

Departamento

Departamento de Informática

Créditos

6.0

Professor responsável

Francisco de Moura e Castro Ascensão de Azevedo, Pedro Manuel Corrêa Calvente Barahona

Horas semanais

5

Total de horas

68

Língua de ensino

Português

Objectivos

Saber
  • Conceito de programação declarativa e de especificação executável de problemas
  • Entender o uso de métodos de derivação em lógica como forma de programação.
  • Familiarização com o uso de relações, unificação, de recursividade e não determinismo na resolução de problemas.
  • Noções básicas de propagação de restrições para redução do espaço de pesquisa
Fazer
  • Desenvolvimento de programas na linguagem Prolog
  • Desenvolvimento de programas de satisfação de restrições
Soft-Skills
  • Capacidade de raciocínio abstracto e formal
  • Cultivar o rigor científico
  • Capacidade de modelação abstracta

Pré-requisitos

Os alunos deverão saber programar numa linguagem imperativa, e ter conhecimentos de base em lógica proposicional e de 1ª ordem. Deverão ainda ter conhecimentos básicos de pesquisa, sua complexidade e métodos para a tornar mais eficiente.

Conteúdo

Introdução e motivação para a disciplina
Conceitos básicos de Programação em Lógica
Linguagem Prolog e seus construtores
Técnicas de Programação em Lógica
   Programação com uso de não-determinismo
   Estruturas incompletas
   Meta-interpretadores
   Análise sintática e DCGs
Técnicas de Programação em Lógica com restrições
   Generalização de unificação (Boleanos, Racionais)
   Modelação de problemas através de restrições sobre domínios finitos
   Pesquisa e Propagação de Restrições

Bibliografia

The Art of Prolog (2nd Edition). Leon Sterling and Ehud Shapiro. MIT Press, 1994
K. Marriot and P. Stuckey, Programming with Constraints – An Introduction, MIT Press, 1998

Método de ensino

Nas aulas teóricas são lecionados os conceitos básicos da programação em lógica com restrições, mostrando a sua fundamentação na lógica de predicados de 1ª ordem. A declaratividade do paradigma é ilustrada com pequenos exemplos, sendo estudadas as extensões com restrições sobre domínios finitos.

Nas aulas práticas são desenvolvidos programas com alguma complexidade para familiarizar os alunos com aspectos práticos de modelação de problemas, qualidade do código e eficiência de execução. 

Método de avaliação

A avaliação é feita por trabalhos, testes e eventual exame oral.

 A avaliação da disciplina é composta por 2 trabalhos práticos de grupo (que podem dar frequência à cadeira), 2 testes escritos individuais, e um exame oral individual (eventual).

  • Trabalhos práticos

Cada grupo de, no máximo, 2 alunos deve realizar 2 trabalhos:

  1. Resolução em Prolog de um problema dado;

  2. Resolução em Prolog com Restrições de um outro problema dado.

A elaboração dos trabalhos será feita fora do horário das aulas.

A cada trabalho de cada grupo será atribuída uma nota única inteira de 0 a 20 valores (P1 e P2, para os 2 trabalhos).

Para cada aluno será atribuída uma nota individual da componente prática (ver Exame oral e Nota final).

 

  • Frequência

Um aluno terá frequência à cadeira (sendo também admitido a possível exame de recurso) se e só se P1 >= 6 e P2 >= 6 e (P1+P2)/2 >= 7.5  (média simples, ao contrário do cálculo para a nota final.)
A atribuição de nota de frequência por edições anteriores da disciplina será vista caso a caso - para tal, deverá ser contactado o regente até ao final de setembro de 2012.

 

  • Testes

Haverá 2 testes escritos individuais sem consulta com notas inteiras T1 e T2. A aprovação à disciplina exige uma nota mínima de 5 valores (numa escala de 0 a 20 valores) em cada teste, e uma média ponderada (ver pesos abaixo) arredondada às unidades de, pelo menos, 9.

 

  • Exame Oral

Em função das notas do trabalho, dos testes (e/ou do exame de recurso), e do conhecimento dos docentes, alguns dos alunos serão chamados a fazer um exame oral individual. Para a escolha dos alunos que terão que fazer o exame oral serão tidos em conta, entre outros critérios, a diferença entre a nota teórica do aluno e as notas dos trabalhos do grupo, e a diferença entre as notas teóricas dos alunos que fazem parte do grupo, e até mesmo alguma aleatoriedade.

Caso um aluno tenha sido chamado a fazer exame oral, a nota individual da componente prática resulta da conjugação da nota do grupo com a informação recolhida desse exame. Um aluno chamado a fazer exame oral e que não compareça à prova tem zero na nota individual da componente prática.

 

  • Nota Final

A nota final (NF) é a média ponderada das componentes prática e teórica, da seguinte forma:

NF = (0,4*T1 + 0,2*T2) + (0,25*P1 + 0,15*P2)

A parte teórica vale assim 60% da nota final, enquanto a prática vale 40% (note-se que a componente prática pode ser alterada por exame oral.)

Em caso de ida a exame escrito (recurso ou especial), a sua nota (unidades) corresponde à parte teórica (podendo ser feita melhoria).

Cursos