Métodos de Programação III

Ano Lectivo: 02/03 (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 (1 + 0 + 0)
José Carlos Ramalho (0 + 1 + 0)
Jorge Gustavo Rocha (0 + 4 + 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 dois 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.

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 ou literate haskell) do enunciado dos Trabalhos Práticos propostos, clique abaixo:
Exames:

Notas

Consultar as Pautas Excel de preferencia com o MS - Internet Explorer


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

(2002.11.18)
ATENÇÃO: O 2º Trabalho Prático já está publicado e tem de ser entregue até ao dia 13 de Dezembro!!!
(2002.11.15)
Acabou de ser substituido o texto da 5ª Ficha de Exercícios para as Aulas TP's, corrigindo-se assim um erro que a anterior tinha na definição da função "epsilon-closure"
(2002.11.14)
Terminou (com saldo positivo) o Periodo para recepção no computador e avaliação do 1º Trabalho Prático !!!
Em Breve será distribuido o enunciado do 2º Trabalho Prático
(2002.11.07)
Já está disponivel na Recepção do DI (andar 0) a folha com os periodos para recepção dos Trabalhos Práticos (TP1), na 2ªf, 3ªf e 4ªf da proxima Semana.
Por Favor, procedam rapidamente a inscrição dos Grupos.
(2002.10.28)
Terminou o Prazo para entrega do Relatório + Disquete relativos à Análise e Desenvolvimento do 1º Trabalho Prático !!! Em Breve será afixada o periodo para avaliação do mesmo em frente ao computador.
(2002.10.12)
ATENÇÃO: O 1º Trabalho Prático já está publicado e tem de ser entregue até ao dia 25 de Outubro!!!
(2002.10.12)
Foi acrescentado um novo apontador para documentação sobre o utilitário FLEX (de modo a ajudar os alunos na realização do 1º TP).
(2002.10.02)
ATENÇÃO: No inicio de cada semana será publicada nesta página a Ficha de Exercícios para as Aulas Teórico-Práticas dessa Semana (as fichas estão disponiveis em Literate Haskell).


author: prh@di.uminho.pt; 
Last modified: 18 de Novembro de 2002