Programação em Lógica
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Ciência de Computadores |
Ocorrência: 2019/2020 - 1S ![Requerida a integração com o Moodle Ícone do Moodle](/fcup/pt/imagens/MoodleIcon)
Ciclos de Estudo/Cursos
Língua de trabalho
Português - Suitable for English-speaking students
Objetivos
- Transmitir aos estudantes conceitos fundamentais de programação em lógica
- Desenvolver nos estudantes competências de programação em Prolog
- Expor a relação entre programação em lógica e lógica matemática
- Despertar nos estudantes a motivação para a programação em lógica
- Apresentar aos estudantes aplicações práticas de programação em lógica
- Envolver os estudantes em projetos práticos de programação em lógica
- Relacionar a disciplina com outras do curso
Resultados de aprendizagem e competências
Ao concluir a disciplina, os estudantes devem ser capazes de:
- Identificar em que tipos de problemas a programação lógica deve ou pode ser aplicada
- Compreender as limitações das linguagens lógicas e das suas implementações
- Saber desenvolver programas de relativa complexidade
- Saber resolver problemas com relativa complexidade usando programação em lógica
- Conhecer bem a sintaxe e semântica da linguagem Prolog
- Relacionar o conhecimento adquirido com outras unidades curriculares do curso
Modo de trabalho
Presencial
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
Algum conhecimento de lógica matemática e inteligência artificial pode ajudar, mas não é fundamental para a aprendizagem.
Programa
Introdução à programação em lógica e à linguagem Prolog
- O poder expressivo do Prolog. Representação de conhecimento.
Como funciona a programação em lógica
- Unificação, Substituição, Prova, Resolução SLD, Backtracking.
Programação em Prolog
- Aritmética com inteiros em Prolog usando termos. Listas em Prolog. Cut, negação por falha, cut-fail.
Aplicações
- Manipulação simbólica. Operadores. Resolução de problemas como procura. Heurísticas. Best-first. Hill-Climbing. Notação DCG. Processamento de linguagens.Algoritmo minimax para jogos entre adversários.
Prolog avançado
- Diferença de listas e estruturas incompletas. Predicados de segunda ordem.Programação de segunda ordem.
Bibliografia Obrigatória
Sterling Leon;
The art of prolog. ISBN: 0-262-19250-0
Bratko Ivan 1946-;
Prolog programming for artificial intelligence. ISBN: 978-0-201-14224-2 pbk
Métodos de ensino e atividades de aprendizagem
- aulas teóricas expositivas e com discussões de grupo.
- aulas práticas com tarefas teóricas e de programação realizadas em laboratório e onde os estudantes têm oportunidade de discutir problemas e soluções em grupo e com o professor.
- trabalhos em grupo realizados nas aulas práticas e fora delas.
Utilização do Moodle para os testes intermédios e listas de exercícios.
Software
SWI Prolog
Palavras Chave
Ciências Físicas > Ciência de computadores > Cibernética > Inteligência artificial
Ciências Físicas > Ciência de computadores > Programação
Tipo de avaliação
Avaliação distribuída com exame final
Componentes de Avaliação
Designação |
Peso (%) |
Exame |
60,00 |
Trabalho prático ou de projeto |
40,00 |
Total: |
100,00 |
Componentes de Ocupação
Designação |
Tempo (Horas) |
Estudo autónomo |
106,00 |
Frequência das aulas |
56,00 |
Total: |
162,00 |
Obtenção de frequência
Nota maior do que zero na componente de avaliação contínua.
Fórmula de cálculo da classificação final
Nota Final = 0.6*EF + 0.4*AC
EF = exame final
AC = avaliação contínua, incluindo trabalhos e testes realizados.
Trabalho de estágio/projeto
Consiste de atividade teórico-prática. Estudantes devem entregar a implementação e um relatório explicativo. Se houver tempo, farão apresentação do seu projeto.
Avaliação especial (TE, DA, ...)
A avaliação na época especial consiste na realização de uma prova em sala de aula ou laboratório.
Melhoria de classificação
Apenas o exame final pode ser melhorado nas épocas em que o estudante tenha acesso.