Métodos de Programação III

Ano Lectivo: 03/04 (1º semestre)

Departamento de Informática / Escola de Engenharia

Universidade do Minho


AVISOS



Apresentação

Cursos a que é leccionada:

Engenharia de Sistemas e Informática -- 3º ano ()
Matemática e Ciências da Computação -- 3º ano ()
Escolaridade:

2 + 2 + 0
Responsável:

Pedro Rangel Henriques
Equipe Docente:

Pedro Rangel Henriques [prh@di.uminho.pt] (1 + 0 + 0)
José Carlos Ramalho [jcr@di.uminho.pt] (0 + 1 + 0)
Jorge Gustavo Rocha [jgr@di.uminho.pt] (0 + 3 + 0)
João Alexandre Saraiva [jas@di.uminho.pt] (0 + 2 + 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--- a nível das aulas teóricas.
Resolução dos exercícios de consolidação, no quadro e no computador (usando projector MM), a nível das aulas teórico-práticas.
Realização, no computador, de trabalhos concretos de aplicação, em ambiente Linux, recorrendo à linguagem Haskell, ou C; os trabalhos serão desenvolvidos extra aulas.
Objectivos:

É objectivo fundamental deste curso levar os alunos a:


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):

A componente prática consistirá na resolução de 2 problemas, envolvendo a análise de um enunciado concreto, o planeamento da resolução e a sua implementação em computador. Um dos enunciados versará a manipulação de Expressões Regulares e o outro será orientado ao trabalho com Autómatos.
O trabalho será realizado ao longo do semestre, extra-aulas e em grupo de 2 ou 3 alunos, sendo apresentado ao docente, para ser discutido em frente ao computador, acompanhado dum relatório sucinto, 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 Trabalho 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

Exige-se 8 valores como nota mínima em cada uma das partes. 

Trabalhos Práticos:

Para fazer o download (do ficheiro postscript) do enunciado dos Trabalhos Práticos propostos, clique abaixo:
Exames:
Para fazer o download (do ficheiro PDF) do enunciado dos Exames do ano anterior, clique abaixo:


Conteúdo Programático

Programa detalhado:

I. Programação baseada em Sistemas de Produção:
II. Uso de Expressões Regulares para definição e reconhecimento de Padrões:
III. Uso de Autómatos Finitos para definição e reconhecimento de Padrões:
IV. Programação baseada em Gramáticas:
V. Reutilização de programas:


Bibliografia

Material bibliográfico proposto para apoio ao curso:

J.A. Saraiva, "Language Processing (with a Functional Flavour)", Notas Pedagógicas, DI/UM, 2000
J.A. Saraiva, "Especificação e Processamento de Linguagens", Notas Pedagógicas, DI/UM, 1995
R.N. Moll & M.A. Arbib & A.J. Kfoury, "An Introduction to Formal Language Theory", Springer-Verlag, 1988
R. Floid & R. Beigel, "The Language of Machines: an Introduction to Computability and Formal Languages", Computer Science Press, 1994
L.S. Barbosa, "Elementos da Teoria dos Autómatos", Monografia DI-LSB-96:5:1, DI/UM, 1996
J. Carroll & D. Long, "Theory of Finite Automata", Prentice-Hall, 1989
N. Jones & C. Gomard & P. Sestoff, "Partial Evaluation and Automatic Program Generation", Prentice-Hall, 1993
R. Bird, "Introduction to Functional Programming using Haskell", Prentice-Hall, 1998
S. Thompson, "Haskell - the Craft of Functional Programming", Addison-Wesley, 1999
S.P.Jones et al, "Report on the Programming Language Haskell 98", 1999
J.J. Almeida & J.B. Barros & P.R. Henriques, "O Ambiente de Desenvolvimento Unix", Notas Pedagógicas, DI/UM, 1990


Notas Pedagógicas e Material de Apoio Diverso

De momento e para além do material bibliográfico recomendado, encontram-se disponíveis as seguintes Notas e Material Pedagógico:

... e a seguinte documentação diversa de apoio:


Avisos Importantes

(2004.03.08)

A ultima versão da pauta com as notas dos trabalhos, dos exames e a nota final, acaba de ser afixada nos placards dos cursos no CPII.

(2004.03.03)

Notas finais após o exame de recurso

(2004.02.17)

Notas finais das duas chamadas e trabalhos práticos

(2003.11.03)

Ficheiro para auto-avaliação. Ficheiros de teste para o problema dos telemóveis e para o corrector ortográfico.

(2003.11.03)
ENTREGA E APRESENTAÇÃO do 1º trabalho prático: Os trabalhos TÊM que ser enviados por email para jgr at di ponto uminho ponto pt, num único ficheiro *.tgz.
O ficheiro TEM que ter uma Makefile, com regras para gerar o executável e o relatório em PDF.
(2003.11.03)
Os alunos TÊM que passar na segunda feira de manhã pela recepção do DI para se inscreverem no turno onde pretendem apresentar o trabalho prático. Para a apresentação, cada grupo deve trazer uma cópia do relatório impressa, que ficará com o docente.


author: prh@di.uminho.pt; 
Last modified: 3 de Março de 2004