Métodos
de Programação III
1998/99
Engenharia de Sistemas e Informática
Matemática e Ciências da Computação
[Equipa
Docente][Objectivos][Avaliação][Programa][Bibliografia][Sumários][Trabalhos][Contribuições]
NOVIDADES
E AVISOS
EQUIPA DOCENTE
OBJECTIVOS
Éobjectivo deste curso levar os alunos a:
-
Aprofundar e interiorizar os conceitos fundamentais e os métodos
de programação em larga escala e a reutilização
de programas, dando especial relevo ao paradigma imperativo mas recorrendo
aos paradigmas declarativos ou orientado ao objecto, sempre que tal se
justifique;
-
Aprender o conceito de Sistema de Produção e a noção
de programação por regras condição-reacção;
-
Aprender o conceito de Automato e a teoria associada, bem como a sua aplicação
à especificação e reconhecimento de Linguagens Regulares;
-
Aprofundar e/ou completar o estudo de estruturas de dados não-lineares
(árvores, grafos e tabelas de dispersão);
-
Reforçar a aptidão dos alunos para desenvolver correcta e
eficientemente programas na linguagem em C em ambiente Unix,
tirando partido do SCCSystem, makefiles, scripts e
do editor Emacs.
Sistema de avaliação
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ª chamada da época normal, no fim do 1º
semestre
-
Exame, realizado na 2ª chamada da época normal, no fim do 1º
semestre
-
Exame, realizado na época de recurso
A componente prática será formada por 3 trabalhos
para realização em grupo, sendo entregues acompanhados de
um relatório sucinto e discutidos em frente ao computador:
-
Os 2 primeiros trabalhos serão enunciados durante Outubro e Novembro
mas só um será avaliado, na semana de 14 de Dezembro, sendo
sorteado com cada grupo qual deles será apresentado e discutido;
-
O 3º trabalho prático, será proposto antes das férias
de Natal e será avaliado na semana imediatamente após o fim
do 1º semestre (semana de 18 de Janeiro).
Os trabalhos práticos serão classificados 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 prática será a média aritmética das
classificações obtidas nos 2 trabalhos avaliados.
A nota final será determinada de acordo com a seguinte fórmula:
Nota Final = Nota Teórica * 0.60 + Nota Prática
* 0.40
Exige-se 8 valores como nota mínima na parte teórica.
PROGRAMA
-
Programa
para o ano 1999-2000
-
I) Estudo das Estruturas
de Dados Não-Lineares - conceitos e algoritmos principais para
o manuseamento e implementação de:
-
II) Programaçãoo dirigida por Padrões:
-
II.1 princípio geral da programação baseada em Regras
Condição-Acção
-
II.2 Sistemas de Produção
-
II.3 introdução ao utilitário awk
-
III) Programação baseada em Transições de Estado:
-
III.1 noções básicas
-
III.2 autómatos:
-
III.2.1 autómatos não-deterministas
-
III.2.2 autómatos deterministas; fecho de estados e conversão
de ANDs em ADs
-
III.2.3 autómatos reactivos
-
III.2.4 aplicação dos autómatos à simulação
de Sistemas de Controlo
-
III.2.5 aplicação dos autómatos ao reconhecimento
de Linguagens Regulares: definições; expressões regulares;
gramáticas regulares
-
III.2.6 introdução ao utilitário lex
-
IV) Programação baseada em Combinadores:
-
IV.1 Conceito e exemplos
-
IV.2 Desenvolvimentom de Parsers baseados em Combinadores para Linguagens
Regulares.
-
V) Reutilização de Programas:
-
V.1 Programação generalizada e especialização
de Programas
-
V.1.1 Conceito e exemplos de aplicação de Partial Evaluation
-
V.1.2 técnicas de Partial Evaluation
-
V.2 noções básicas sobre Arquitecturas de Software,
Frameworks e Design Patterns
BIBLIOGRAFIA
Material bibliográfico proposto para apoio ao curso:
-
L.S. Barbosa, Elementos
da Teoria dos Autómatos, Monografia DI-LSB-96:5:1, DI/UM,
1996
-
J.A. Saraiva, Especificação
e Processamento de Linguagens, Monografia DI-LSB-96:5:1, DI/UM,
1996
-
J.J. Almeida & J.B. Barros & P.R. Henriques, O Ambiente de Desenvolvimento
Unix, Notas Pedagógicas, Univ. do Minho, 1990
-
J.B. Barros & J.J. Almeida, Estruturas de Dados, Notas Pedagógicas,
Univ. do Minho, 1990
-
R. Tare, Data Processing in Unix, McGraw-Hill, 1989
-
E. Horowitz & S. Sahni, Fundamentos de Estruturas de Dados,
Editora Campus, 1984
-
J. Carroll & D. Long, Theory of Finite Automata, Prentice-Hall,
1989
-
Ted Lewis et al, Object Oriented Application Frameworks, Manning
Publications, 1995
-
R.N. Moll & M.A. Arbib & A.J. Kfoury, An Introduction to Formal
Language Theory, Springer-Verlag, 1988
-
Manuais diversos do sistema Unix e seus utilitários
SUMÁRIOS
TRABALHOS PRATICOS
CONTRIBUIÇÂO
dos ALUNOS
Enviar comentários para jas@di.uminho.pt.
Ultima modificação: 31/01/1999