Saltar para:
Logótipo
Você está em: Início > EIC0026

Programação em Lógica

Código: EIC0026     Sigla: PLOG

Áreas Científicas
Classificação Área Científica
OFICIAL Programação

Ocorrência: 2012/2013 - 1S

Ativa? Sim
Página e-learning: https://moodle.fe.up.pt/
Unidade Responsável: Departamento de Engenharia Informática
Curso/CE Responsável: Mestrado Integrado em Engenharia Informática e Computação

Ciclos de Estudo/Cursos

Sigla Nº de Estudantes Plano de Estudos Anos Curriculares Créditos UCN Créditos ECTS Horas de Contacto Horas Totais
MIEEC 4 Plano de estudos de Transição a partir de 2010/11 4 - 5 56 135
5
Plano de estudos oficial 4 - 5 56 135
5
MIEIC 105 Plano de estudos a partir de 2009/10 3 - 5 56 135
Mais informaçõesA ficha foi alterada no dia 2012-10-24.

Campos alterados: Objetivos, Métodos de ensino e atividades de aprendizagem, Fórmula de cálculo da classificação final, Provas e trabalhos especiais, Componentes de Avaliação e Ocupação, Melhoria de classificação final/distribuída, Obtenção de frequência, Programa, Avaliação especial

Língua de trabalho

Português - Suitable for English-speaking students

Objetivos

O paradigma da Programação em Lógica apresenta uma abordagem declarativa e baseada em processos formais de raciocínio à programação, mais apropriada para a resolução de alguns tipos de problemas. A programação em lógica com restrições permite abordar problemas de satisfação de restrições e de optimização, modelando-os de uma forma directa e elegante.

Objetivos: Adquirir familiaridade com os paradigmas da Programação em Lógica e da Programação com Restrições. Desenvolver as capacidades de raciocínio abstracto e de representação de problemas de forma declarativa.

A Unidade Curricular centra-se no paradigma da programação baseada em lógica de primeira ordem. A componente prática baseia-se na utilização da linguagem de programação Prolog. Adicionalmente, é também abordada a programação em lógica com restrições, com ilustração de diversas aplicações práticas.

Distribuição Percentual: Componente científica: 50%; Componente tecnológica: 50%

Resultados de aprendizagem e competências

No final da Unidade Curricular, os estudantes deverão ter competências para:

  • Reconhecer as categorias de problemas em que a Programação em Lógica (e com Restrições) é particularmente adequada.
  • Aplicar as técnicas de programação em Prolog e em programação lógica com restrições.
  • Construir aplicações completas em Prolog com eventual ligação a outras linguagens.

Os estudantes deverão também ter apreendido competências de programação requeridas nos trabalhos das unidades curriculares da área da Inteligência Artificial.

Modo de trabalho

Presencial

Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)

Embora a Unidade Curricular não tenha pré-requisitos especiais, conhecimentos adquiridos nas unidades curriculares de Fundamentos de Programação, Programação, Algoritmos e Estruturas de Dados, e Concepção e Análise de Algoritmos, são muito úteis para a Unidade Curricular de Programação em Lógica.

Programa

Fundações da Programação em Lógica

  • Lógica proposicional. Lógica de predicados. Regras de inferência. Cláusulas de Horn. Unificação. Resolução. Forma normal conjuntiva.
  • Conceito de programação em lógica. Origens do Prolog.

Conceitos da Programação em Lógica

  • Cláusulas. Predicados. Factos. Perguntas. Regras. Variáveis lógicas. Instanciação.
  • Programação em lógica e bases de dados. Recursividade. Listas. Árvores. Expressões simbólicas.
  • Execução de um programa em lógica. Algoritmo da unificação. Interpretador abstracto. Traçados. Árvores de pesquisa. Negação.

A Linguagem Prolog

  • Modelo de execução. Backtracking. Ordem das regras e dos objectivos. Terminação.
  • Aritmética. Iteração. Inspecção de estruturas. Predicados meta-lógicos. Controlo: cuts e negação. Predicados extra-lógicos.

Técnicas Avançadas de Programação em Prolog

  • Programação não determinística. Estruturas de dados incompletas. Meta-interpretadores. Técnicas de pesquisa.

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

  • Restrições. Satisfação de restrições. Restrições em domínios finitos.
  • Programação em lógica com restrições (PLR). Controlo da pesquisa. Ordenação de variáveis e valores. Modelização de problemas em PLR. Programação com restrições no SICStus Prolog.

Bibliografia Obrigatória

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

Bibliografia Complementar

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
Stuart Russell, Peter Norvig; Artificial intelligence. ISBN: 978-0-13-207148-2

Métodos de ensino e atividades de aprendizagem

As aulas teóricas são usadas para exposição formal da matéria, acompanhada da apresentação de exemplos e sua discussão. Nas aulas teórico-práticas são propostos exercícios de programação e acompanha-se o desenvolvimento dos trabalhos práticos dos alunos.

Software

SWI-Prolog - http://www.swi-prolog.org/
Sicstus Prolog - http://www.sics.se/sicstus/

Palavras Chave

Ciências Tecnológicas > Engenharia > Engenharia do conhecimento
Ciências Físicas > Ciência de computadores > Programação
Ciências Físicas > Matemática > Lógica matemática
Ciências Físicas > Ciência de computadores > Cibernética > Inteligência artificial

Tipo de avaliação

Avaliação distribuída com exame final

Componentes de Avaliação

Descrição Tipo Tempo (Horas) Peso (%) Data Conclusão
Participação presencial (estimativa) Participação presencial 56,00
Primeiro Trabalho (com relatórios Intercalar e Final) Trabalho laboratorial 48,00 32,50
Segundo Trabalho (com relatório Final) Trabalho laboratorial 28,00 17,50
Exame Final Exame 3,00 50,00
Total: - 100,00

Obtenção de frequência

Um aluno inscrito obtém frequência se não exceder o limite de faltas legalmente estabelecido e obtiver um mínimo de 7 valores em 20 na avaliação de cada um dos trabalhos práticos. A nota de frequência corresponde à componente Trabalhos.

Fórmula de cálculo da classificação final

Nota Final = 50% * Trabalhos + 50% * Exame

Trabalhos = 65% * Trabalho1 + 35% * Trabalho2

Trabalho1 = 25% * Inter1 + 75% * Final1

Exame: Nota final do Exame.

Trabalhos: Nota global dos Trabalhos Práticos.

Inter1: Nota da Avaliação Intercalar do Trabalho 1.

Final1: Nota da Avaliação Final do Trabalho 1 (Relatório e Demonstração).

Trabalho2: Nota da Avaliação do Trabalho 2 (Relatório e Demonstração).

A nota mínima exigida no Exame para a obtenção de aprovação é de 7 valores em 20. No Exame permite-se a consulta de material de estudo em papel.

Provas e trabalhos especiais

A Unidade Curricular tem 50% de avaliação prática requerida a todos os inscritos e que é o resultado da realização dos trabalhos práticos nas épocas em que são propostos. O 1º trabalho prático tem interface com a Unidade Curricular de LAIG.

As datas de entrega dos trabalhos e suas demonstrações são:

  • Trabalho 1
    • Entrega Intercalar do Trabalho 1: 7/10
    • Entrega Final do Trabalho 1: 4/11
    • Demonstrações do Trabalho 1: 5-9/11
  • Trabalho 2
    • Entrega do Trabalho 2: 9/12
    • Demonstrações do Trabalho 2: 10/12 a 14/12

A avaliação em épocas especiais consiste na elaboração de um Trabalho prático e de um Exame escrito (com consulta), valendo cada uma destas componentes 50% da nota final.

Avaliação especial (TE, DA, ...)

A avaliação prática, realizada durante o semestre de funcionamento da Unidade Curricular, é exigida a todos os alunos, independentemente do regime de inscrição e da necessidade de obter avaliação de frequência. A avaliação prática é baseada na realização de 2 trabalhos práticos durante o semestre, em períodos divulgados na página da Unidade Curricular. Os alunos inscritos ao abrigo de regimes especiais sem frequência de aulas práticas devem acordar com os docentes sessões de acompanhamento e avaliação prática.

Melhoria de classificação

Melhoria da componente de Exame: realizada nas épocas de exame disponíveis.

Melhoria da classificação distribuída: a componente distribuída da avaliação é avaliação prática e só pode ser melhorada nas épocas de realização de trabalhos práticos da próxima edução da Unidade Curricular.

Recomendar Página Voltar ao Topo
Copyright 1996-2024 © Faculdade de Engenharia da Universidade do Porto  I Termos e Condições  I Acessibilidade  I Índice A-Z  I Livro de Visitas
Página gerada em: 2024-10-28 às 21:32:05 | Política de Utilização Aceitável | Política de Proteção de Dados Pessoais | Denúncias