Paradigmas da Programação
Ano Lectivo: 09/10 (anual)
Escola de Engenharia
Universidade do Minho
AVISOS **Publicadas as NOTAS FINAIS**
Apresentação
-
Cursos a que é leccionada:
- Mestrado integrado em Engenharia de Comunicações -- 2º ano ()
-
Escolaridade:
- 0 + 3 (1,5+1,5) + 0
-
Responsável:
- Pedro Rangel Henriques
-
Equipe Docente:
- Pedro Rangel Henriques [prh@di.uminho.pt] (1 + 0 + 0)
- Paulo Jorge Azevedo [pja@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órico-práticas.
Realização, fora das aulas, de trabalhos concretos de
aplicação no computador, em ambiente Windows, recorrendo às ferramentas
VisualParadigm e SWI-Prolog.
-
Objectivos:
-
É objectivo deste curso levar os alunos a:
-
Perceber claramente o que é a actividade de resolução de problemas por computador ("ciclo de desenvolvimento de software")
e quais as etapes das abordagens clássicas.
-
Ter uma ideia clara sobre o conceito de paradigma e sua importância nas várias etapes da actividade de resolução de problemas por computador.
-
Saber conceber e desenhar a Arquitectura de um Sistema (de uma aplicação informática que resolve um dado problema).
-
Saber construir Modelos dos Dados e Actividades envolvidos no Problema a resolver.
-
Saber construir Modelos das Operações e Interfaces de um Sistema (de uma aplicação informática que resolve um dado problema).
-
Saber construir protótipos rápidos dos Modelos ou do Sistema a desenvolver, usando uma aboradgem declarativa.
Para isso.
-
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
-
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 4 provas individuais escrita feitas ao longo do ano (2 em cada semestre) nas datas seguintes:
- 26 de Nov.
- 28 de Jan.
- 22 de Abr.
- 10 de Jun.
Caso o aluno não obtenha nota média maior ou igual a 10 (no mínimo 8 a cada uma das partes),
terá acesso a um exame teórico (escrito) de recurso, final e único, em data a marcar em Junho/Julho.
A nota prática será obtida através da
realização de 4 trabalhos práticos (modelação de Sistemas de Informação em Prolog, Jogos em Prolog,
Implementação de Máquinas de Transição de Estados em Prolog e Implementação de um Sistema de Decisão em Prolog)
que serão resolvidos ao longo do ano, extra-aulas e em grupo de 2 alunos,
sendo o resultado de cada trabalho apresentado ao docente, para ser discutido em frente ao computador
na semana de XX de Jun (a marcar de acordo com o calendário geral do 2ºsemestre definido pela Direcção de Curso).
Recorda-se que é obrigatória a presença de todos os elementos do grupo aquando da
apresentação ao docente.
Cada Exercício Prático será classificado 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
sendo
NotaTeorica = Teste1 * 0.25 + Teste2 * 0.25 + Teste3 * 0.25 + Teste4 * 0.25 ou NotaExame
e
NotaPratica = (TP1 + TP2 + TP3 + TP4) / 4
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 dos Trabalhos Práticos, 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. Desenvolvimento de Sistemas de Software:
- 1.1 Conceitos fundamentais com a resolução de problemas por computador e sobre os paradigmas de programação
- 1.2 Etapas do Desenvolvimento de SS:
- a. análise
- a1. levantamento de requisitos (de dados, funcionais, interactivos, restrições)
- a2. especificação dos dados e das operações
- b. concepção/desenho de uma solução
- b1. arquitectura do sistema
- b2. modelação dos dados e operações
- c. prototipagem
- d. implementação
- e. testes
- f. instalação
- 2. Paradigmas da Programação:
- sequencial vs concorrente
- imperativo vs declarativo
- monolítico vs modular e orientado aos objectos (OO)
- orientado às acções vs orientado aos eventos
- 3. UML (Unified Modeling Language) na Modelação dos Sistemas de SW:
- 3.1 Conceitos básicos
- 3.2 Diagramas de Classe
- 3.3 Use-Cases
- 3.4 Diagramas de Sequência
- 3.5 Diagramas de Estado
- 3.6 Diagramas de Actividade
- 3.7 Diagramas de Objectos, de Packages e de Deployment
- 4. Programação Lógica na Prototipagem dos Sistemas de SW:
- 4.1 Caracterização do paradigma lógico
- 4.2 Definições básicas: predicados, termos e cláusulas
- 4.3 Unificação
- 4.4 Árvore de Prova e Árvore de Procura
- 4.5 Estratégias de pesquisa e ``Backtracking''
- 4.6 Explicação Operacional dos predicados de controlo
- 4.7. Estruturas de Dados recursivas: Listas, Árvores e Grafos
- 4.8 Uso do Sistema Prolog:
- Interacção com o exterior, leitura e escrita
- Constatação das propriedades fundamentais dum Sistema de Prova (máquina de inferência)
- Predicados pré-definidos
- 5. Autómatos Deterministas na Modelação e Prototipagem de Sistemas de SW:
- 5.1 Máquinas de Transição de Estados
- 5.2 Expressões Regulares
Bibliografia
-
Material bibliográfico proposto para apoio ao curso:
Sobre Desenvolvimento de Software e Modelação em UML:
- [BRJ,98] G. Booch, J. Rumbaugh, I. Jacobson. "The Unified Modeling Language User Guide", Addison-Wesley, 1998.
- [RJB,99] J. Rumbaugh, I. Jacobson, G. Booch. "The Unified Modeling Language Reference Manual", Addison-Wesley, 1999.
- [Fow,04] M. Fowler. "UML Distilled", Third Edition. Addison-Wesley, 2004.
- [SV,01] Alberto Silva, Carlos Videira. "UML -- Metodologias e Ferramentas CASE". Vol.1, 2ªEdição, CentroAtlantico.pt, 2005
- [NoN,05] M. Nunes, H. O'Neill. "Fundamental do UML". FCA, 2001
Sobre Prototipagem rápida e Programação em Lógica:
- [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:
... e ainda as seguintes Fichas de Trabalho propostas para as aulas:
Descrição de Sistemas de Informação --- lista de casos de trabalho:
-
(S1) Gestão de Candidaturas de projectos de I&D a financiamento da FCT:
Neste problema pretende-se desenvolver uma aplicação Web para submissão electrónica, recepção e processamento de candidaturas
de instituições de investigação (públicas ou privadas) a financiamentos da Fundação nacional para a Ciência e Tecnologia
(FCT) para promoção da pesquisa e desenvolvimento do País em todas as áreas do saber.
Concretamente o sistema terá de permitir carregar candidaturas, lacrar, avaliar, aprovar, fazer os pagamentos
e as medidas de execução, fechar.
Sabe-se que uma candidatura é elaborada por uma instituição proponente, a qual pode estar associada a outras
instituições parceiras, e tem uma equipe de investigadores que pertencem a esse consórcio de instituições;
os membros da equipe pretendem desenvolver um projecto organizado em tarefas, o qual terá resultados (objectivos
e mensuráveis) que serão avaliados em milestones.
-
(S2) Gestão de Marcação de Consultas numa Clínica Médica:
Neste caso a entidade central é 'Consulta' que envolve 'Paciente', 'Médico' e 'Ficha Clínica' --
pretende-se desenvolver um sistema clássico para marcação de consultas de um paciente num dado médico de uma clínica
de saúde.
Para além de manter a informação sobre Médicos e Pacientes, é preciso marcar consultas e registar episódios clínicos
na ficha clínica do paciente, a qual se encontra organizada por especialidades e dentro das especialidades por médicos
(nessa fichas, além dos dados que descrevem o episódio, também se registam exames feitos).
As receitas prescritas pelo médico, devem ser geridas pelo sistema.
-
(S3) Sistema para estudo Prosopográfico do Clero Catedralício:
Neste caso o objectivo, além de carregar e mostrar a informação relativa à Ficha de Documento extraída de cada livro
consultado num Arquivo Catedralício, é fazer a normalização dessas fichas e posteriormente
a fusão das várias fichas com descrições individuais dos Clérigos de modo a construir a respectiva
Ficha Prosopográfica, de modo a construir uma base de conhecimento relativo ao
Clero Catedralício Português na Idade Média.
As fichas prosopográficas manterão a indicação de todos os documentos origem.
-
(S4) Gestão de Correspondência:
Neste caso pretende-se construir um sistema também baseado na Web para permitir fazer o registo completa de cada
correspondência que chega à instituição, identificando o destinatário interno e fazendo os seu tracking
até ser arquivada.
Para tal o sistema tem de possuir o registo de todos os funcionários (sua ficha individual e
e trabalho), e ainda informação sobre a estrutura hierárquica na empresa e descrição dos workflows de modo a
encaminhar correctamente a dita correspondência.
-
(S5) Gestão de Aquisições num Organismo Público:
Neste caso pretende-se desenvolver um sistema de informação para gerir o processo de aquisições em organismos públicos.
A peça essencial desse processo é a Ficha de Aquisição, a qual se associa a unidades orgânicas e produtos,
fornecedores e orçamento, de modo a poder-se fazer a sua alimentação nas rubricas orçamentais
e a respectiva autorização de compra.
Avisos Importantes
(2010.07.02)
Foi publicada a Pauta com as Notas Finais --- Boas Férias !
(2010.05.26)
Foi marcada a data para Entrega/Avaliação do 4º TP para
Domingo, 13.Junho.2010 às 24h00.
(2010.04.14)
Foi marcada a data para Avaliação dos 2º e 3º TPs para
5ªfeira, 29.Abril.2010 às 16h30.
(2010.03.31)
Foi alterada a data de Entrega do 3º TP ficando adiado para
Domingo, 11.Abril.2010 às 24h00.
(2010.03.31)
Foram acrescentados ao sumário da ultima aula TP de 5ªf o Template do Programa Prolog para simular
um Autómato Determinista Reactivo, bem como 2 Exemplos.
(2010.03.03)
Foi alterada a data do 2º Teste ficando adiado para
2ªf, 08.Março.2010 às 16h30.
(2010.03.02)
Foi publicado o 3ºTrabalho Prático para resolver nas próximas 3 semanas.
(2010.01.23)
Foi alterada a data do 2º Teste ficando adiado para o dia 4.Março.2001 às 14h30.
Matérias a focar: a) Modelação Estática e Prototipagem de Sistemas de Informação em UML e Prolog;
b) Modelação Comportamental (dinâmica) de Sistemas de Informação em UML;
c) Programação Lógica: Listas e Árvores
(2010.01.22)
Foi afixada (nesta página) a Pauta com as Notas do 1º Trabalho Prático.
(2010.01.04)
A data final para entrega do 2º Trabalho Prático foi fixada em Domingo 10.Jan.2010.
(2010.01.04)
Recorda-se a todos os Grupos que a avaliação do 1ªTrabalho-Prático ficada marcada para 5ªf, 07.Jan.2010, das 13h-16h.
Os alunos devem trazer o relatório e o código pronto a executar e Todos os Membros do Grupo têm de estar presentes.
(2009.12.10)
Foi publicada o 2º Trabalho Prático que os alunos devem concluir até ao dia 20.Dez.2009.
(2009.12.09)
A entrega presencial com discussão e avaliação do 1ªTrabalho-Prático ficada marcada para 5ªf, 07.Jan.2010.
(2009.11.19)
Foi adiada 1 semana a data do 1ª Teste, passando para 5ªf, dia 03.Dez.2009.
(2009.11.17)
Foi publicada a 1º Folha de Exercícios de Prolog sobre Listas e Árvores (ver acima na rubrica "Notas Pedagógicas e Material de Apoio Diverso" ).
(2009.11.06)
Foi publicada o 1º Trabalho Prático que os alunos devem concluir até ao dia 22.Nov.2009.
(2009.11.06)
Foi publicada a Folha de Cálculo com os Alunos Inscritos e a constituição dos Grupos de Trabalho.
Os alunos devem verificar, usando o link no item respectivo acima, o seu nome, número e grupo
e avisarem-me em caso de encontrarem algum erro.
author: prh@di.uminho.pt;
Last modified: sexta-feira, Julho 2, 2010 at 12:34