Paradigmas da Programação I
Ano Lectivo: 05/06 (1º semestre)
Escola de Engenharia
Universidade do Minho
AVISOS ***ver novidades (2006.03.02)***
Apresentação
-
Cursos a que é leccionada:
- Engenharia de Comunicações -- 2º ano ()
-
Escolaridade:
- 2 + 0 + 0
-
Responsável:
- Pedro Rangel Henriques
-
Equipe Docente:
- Pedro Rangel Henriques [prh@di.uminho.pt] (1 + 0 + 0)
Obs: é
indicado o número de turmas de cada tipo de aula que cada docente lecciona.
-
Estrutura de Funcionamento:
-
Exposição da matéria fundamental
---motivação, conceitos, definições, métodos e justificações---
e resolução dos exercícios de consolidação, no quadro e no computador
a nível das aulas teóricas.
Realização, fora das aulas, de trabalhos concretos de
aplicação no computador, em ambiente Windows ou Linux, recorrendo à ferramenta SWI-Prolog.
-
Objectivos:
-
É objectivo deste curso levar os alunos a:
-
Aprofundar e interiorizar os conceitos de programação declarativa,
mais concretamente segundo o paradigma lógico
-
Dominar o uso de predicados (cláusulas de Horn), unificação e recursividade na resolução de problemas
-
Estudar a implementação de estruturas de dados lineares e não-lineares
e respectivos algoritmos de manuseamento em Programação Lógica
e, ainda, tornar os alunos aptos a desenvolver correcta e eficientemente programas
na linguagem Prolog.
Avaliação
-
Critério:
-
A Avaliação tem uma componente teórica
e uma componente prática ambas obrigatórias.
-
De acordo com o regulamento actualmente em vigor na UM, a
nota teórica será obtida através da realização
de 1 prova individual escrita. Essa prova tem as instâncias a seguir
indicadas (um aluno só poderá fazer melhoria na época
de recurso):
-
Exame, realizado na 1ª ou 2ª chamadas da época normal,
no fim do semestre
-
Exame, realizado na época de recurso, agora também no fim do semestre
A nota prática será obtida através da
realização de 2 fichas práticas que serão resolvidas ao longo do semestre, extra-aulas e em grupo de 2 ou 3 alunos,
sendo o resultado de cada trabalho apresentado ao docente, para ser discutido em frente ao computador
em datas a combinar com os alunos. Recorda-se que é obrigatória a presença de todos os elementos do grupo aquando da
apresentação ao docente.
Cada Ficha Prática será classificada
de acordo com os seguintes escalões:
Escalão |
Nota
|
Não Entregue
|
0
|
Não Satisfaz
|
7
|
Satisfaz no Mínimo
|
10
|
Satisfaz
|
13
|
Bom
|
16
|
Muito Bom
|
19
|
A nota final será determinada de acordo
com a seguinte fórmula:
NotaFinal = NotaTeorica * 0.60 + NotaPratica * 0.40
Exige-se 8 valores como nota mínima em cada uma das partes.
Trabalhos Práticos
Para fazer o download das Fichas de Trabalho propostas, clique abaixo:
Para fazer a inscrição dos grupos e a submissão das Fichas e TPs, siga o link abaixo:
Para fazer o download (do ficheiro PDF) do enunciado dos Trabalhos do ano anterior, clique abaixo:
Exames
Para fazer o download (do ficheiro PDF) do enunciado dos Exames do ano anterior, clique abaixo:
Pauta e Notas
Para ver o Número do seu Grupo ou as suas Notas (TP, T Ou Final), clique abaixo:
Conteúdo Programático
-
Programa detalhado:
- 1. Introdução à disciplina:
- Reflexão sobre os conceitos fundamentais
relacionados com a resolução de problemas por computador e sobre os paradigmas
de programação
- 2. Introdução à Programação Lógica:
- 2.1 Caracterização do paradigma lógico
- 2.2 Definições básicas: predicados, termos e cláusulas
- 2.3 Unificação
- 2.4 Árvore de Prova e Árvore de Procura
- 2.5 Estratégias de pesquisa e ``Backtracking''
- 2.6 Explicação Operacional dos predicados de controlo
- 3. Uso do Sistema Prolog:
- 3.1 Interacção com o exterior, leitura e escrita
- 3.2 Constatação das propriedades fundamentais dum Sistema de Prova
(máquina de inferência)
- 3.3 Predicados pré-definidos
- 4. Estruturas de Dados recursivas:
- 4.1 Listas, Árvores e Grafos
Bibliografia
-
Material bibliográfico proposto para apoio ao curso:
- [Tor,00] Delfim Torres, "Introdução a Programação em Lógica", versão 1.0, Dep. de Matemática, Univ. de Aveiro, 2000
- [Der,86] Pierre Deransart, "Initiation à Prolog", Univ. Orleans, 1986
- [CM,81] W.F. Clocksin & C.S. Mellish, "Programming in Prolog", Springer-Verlag, 1981
- [SS,86] Leon Sterling & E. Shapiro, "The Art of Prolog", MIT-Press, 1986
- [Bra,90] Ivan Bratko, "Prolog: programming for Artificial Intelligence", Addison Wesley, 1990
- [Wie,99] Jan Wielemaker, "SWI-Prolog 3.3: Reference Manual", Univ. Amsterdam, Nov. 1999
Notas Pedagógicas e Material de Apoio Diverso
De momento e para além do material bibliográfico recomendado, encontram-se disponíveis
os seguintes elementos:
... e a seguinte documentação diversa de apoio:
Avisos Importantes
- (2006.03.02)
- Foram lançadas as Notas FINAIS da Disciplina, na pauta dos SAUM e aqui (ver link "Notas").
- (2006.01.18)
- Foram lançadas (só em formato electrónico, nesta página) as Notas dos Trabalhos Praticos.
- (2006.01.03)
- Recorda-se que, tal como combinado na última aula, a sessão para entrega/discussão/avaliação
dos Trabalhos Práticos é na 3ªfeira, dia 10.jan, às 14h30 na sala de aula habitual.
Todos os alunos dum grupo devem estar presentes na entrega.
Os alunos devem consultar a Listagem com dos Elementos e Número dos Grupos, no item Pauta e Notas acima, para saberem a que hora devem aparecer para apresentar o trabalho.
Notem que serão recebidos 2 trabalhos (grupos) em simultâneo e cada entrega demorará 30 min.
author: prh@di.uminho.pt;
Last modified: 02 de Marco 2006