Paradigmas da Programação I
Ano Lectivo: 06/07 (1º semestre)
Escola de Engenharia
Universidade do Minho
AVISOS (ver Adiamento do Exame)
Apresentação
-
Cursos a que é leccionada:
- Engenharia de Comunicações -- 2º ano ()
-
Escolaridade:
- 3 + 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 dos anos anteriores, 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
- 4.2 Máquinas de Transição de Estados e Autómatos Deterministas Reactivos
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
- (2007.03.03)
-
Foi hoje afixada a Pauta Final com as notas da 1ª e 2º épocas, encerrando assim a avaliação do 1ºSem.
(lamento o atraso).
- (2007.02.13)
-
Visto que as notas da 1ª época só saíram hoje, atrasadas, o exame de recurso vai ser adiado
para o dia 21 de Fevereiro às 9h30 (4ªfeira) (encontro no Lab. de Electrónica alocado a MiECom).
- (2007.01.03)
-
A entrega dos trabalhos decorrerá no dia 8 de Janeiro a partir das 9h30 em paralelo com as aulas extraordinárias
de LI3.
- (2006.12.09)
- Foi publicado o Enunciado do 3º Trabalho Prático a resolver e submeter nos próximos 8 dias.
- (2006.12.09)
- Foi acrescentada ao material complementar da Aula de 2006/11/23 uma Ficha Prática contento o enunciado
de Exercícios sobre a Modelação em Prolog de Autómatos Deterministas Reactivos.
- (2006.11.02)
- Foram publicados os Enunciados dos 2 primeiros Trabalhos Práticos a resolver e submeter nos próximos 8 e 15dias.
- (2006.10.08)
- Foi criado o link para o Sistema de Submissão de Trabalhos Práticos, através do qual os grupos devem (após inscrição) fazer a entrega das Fichas práticas semanais e dos TPs a ser propostos,
no respectivo item desta página (ver acima).
author: prh@di.uminho.pt;
Last modified: 03 de Março de 2007