Programação em Lógica
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Programação |
Ocorrência: 2007/2008 - 1S
Ciclos de Estudo/Cursos
Língua de trabalho
Português
Objetivos
Adquirir familiaridade com os paradigmas da Programação em Lógica e Programação com Restrições e com a linguagem Prolog.
Desenvolver as competências de raciocínio abstracto e de representação de problemas de forma declarativa.
Reconhecer as categorias de problemas em que a Programação em Lógica (com Restrições) é particularmente adequada.
Experimentar e praticar as técnicas de programação em Prolog e de programação com restrições.
Construir aplicações completas em Prolog com eventual ligação a outras linguagens.
Desenvolver as competências de programação requeridas nas disciplinas da área da Inteligência Artificial.
Programa
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA. História e Fundações do Prolog. Aplicações do Prolog. Sistemas de Programação em Lógica. Fundações Teóricas da Programação em Lógica.
PROGRAMAÇÃO EM LÓGICA. Conceitos Básicos: Predicados, Claúsulas, Factos, Regras, Consultas, Variáveis Lógicas e Instanciação. Programação estilo bases de dados. Programação com recursividade. Modelo de computação dos programas em lógica. Rastreios e árvores de pesquisa. Resolução e unificação.
A LINGUAGEM PROLOG. Modelo de Execução do Prolog. Comparação com as Linguagens Convencionais. Ordem das Regras e dos Objectivos. Recursividade e Retrocesso (Backtracking). Terminação. Operadores e Aritmética. Inspecção de Estruturas. Processamento de Listas. Predicados meta lógicos. Controlo: Cuts e Negação. Predicados extra lógicos.
PROLOG AVANÇADO. Programação não determinística. Estruturas de dados incompletas. Meta-interpretadores. Técnicas de Pesquisa. Gramáticas de Claúsulas Definidas.
METODOLOGIA DE PROGRAMAÇÃO EM LÓGICA. Princípios gerais de boa programação. Como pensar em Prolog? Estilo de programação. Depuração de programas. Eficiência e optimização.
PROGRAMAÇÃO COM RESTRIÇÕES. Restrições e 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. Sistemas de programação com restrições. Programação com restrições no Sicstus Prolog.
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.
Tipo de avaliação
Avaliação distribuída com exame final
Componentes de Avaliação
Descrição |
Tipo |
Tempo (Horas) |
Peso (%) |
Data Conclusão |
Aulas da disciplina (estimativa) |
Participação presencial |
68,00 |
|
|
|
Total: |
- |
0,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 30% na avaliação dos trabalhos práticos.
Fórmula de cálculo da classificação final
Trabalho- Nota global dos Trabalhos Práticos
Exame - Nota final do Exame
Final = 50% * Trabalho + 50% * Exame
A nota mínima exigida no Exame para a obtenção de aprovação é de 6 valores.
Provas e trabalhos especiais
Não há provas nem trabalhos especiais. A disciplina 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.
Avaliação especial (TE, DA, ...)
A avaliação prática, realizada durante o semestre de funcionamento da disciplina, é 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 disciplina. Os alunos inscritos ao abrigo de regimes especiais sem frequência de aulas práticas devem acordar com os docentes as sessões de avaliação prática a que irão comparecer.
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 disciplina
Observações
Embora a disciplina não tenha pré-requisitos especiais, conhecimentos adquiridos nas disciplinas de Programação I e II, Algoritmos e Estruturas de Dados I e II e Lógica Computacional, são muito úteis para a disciplina de Programação em Lógica.