Programação em Lógica
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Ciência de Computadores |
Ocorrência: 2018/2019 - 1S
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 às linguagens lógicas.
- Diferenças entre linguagens lógicas, funcionais e imperativas.
- Introdução à linguagem Prolog.
- Relação entre Prolog e a lógica.
- Relação entre Prolog e algoritmos de busca.
- Relação entre Prolog e bases de dados (Datalog).
- Sintaxe e semântica da linguagem Prolog.
- Tipos básicos de dados.
- Manipulação de listas. Recursão.
- Diferenças de listas.
- Boas práticas de programação em Prolog.
- Controlo do espaço de busca. Operador de corte (cut).
- Depuração de programas Prolog.
- Satisfação de Restrições (Constraint Logic Programming)
- Implementação de Prolog (máquina WAM).
- Programação avançada em Prolog.
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.