Métodos de Programação III
Matemática e Ciências da Computação

Engenharia de Sistemas e Informática

2005/2006
Equipa Docente e Horário
Estrutura e Funcionamento
Objectivos
Avaliação
Programa
Fichas Teórico-Práticas
Software
Contribuições dos Alunos
Trabalhos Práticos
Sumários
Bibliografia

Esta página contém informação relativa à cadeira de Métodos de Programação III a decorrer no ano lectivo 2005-2006 . Métodos de Programação III é uma cadeira do 1º Semestre do 3º Ano das licenciaturas em Engenharia de Sistemas e Informática e em Matemática e Ciências da Computação. Referências para páginas de instâncias anteriores podem ser encontradas nos seguintes endereços:

Ano Lectivo 2004-2005: Página
Ano Lectivo 2003-2004: Página
Ano Lectivo 2002-2003: Página
Ano Lectivo 2000-2001: Página
Ano Lectivo 1999-2000: Página

Esta página está a ser gerada a partir de um documento XML, por uma ferramenta que utiliza os métodos de programação leccionados neste curso (eg, expressões regulares, autómatos finitos e gramáticas independentes do contexto). A partir da especificação XML é produzida esta página, bem como a sua representação em LaTeX. O formato LaTeX dá origem aos seguintes documentos em postscript e pdf: [ ps ] , [ pdf ]

Novidades e Avisos

(23-09-04)
  • A Ficha-Teórico-Prática nº1 já está disponível
  • A página da disciplina está no "ar".

1- Equipa Docente e Horário

  • João Saraiva

    Teóricas: LESI/MCC T1 2ª Feira - 11:00-12:00 sala CP2-103
    T2 5ª Feira - 10:00-11:00 sala CP2-103
    Teórica-Prática: MCC TP1 4ª Feira - 11:00-13:00 sala DI 0.02
    MCC TP2 5ª Feira - 11:00-13:00 sala DI 0.02
    Dúvidas LESI/MCC 2ª Feira - 14:00-18:00
  • Pedro Rangel Henriques

    Teórica-Prática: LESI TP1 2ª Feira - 14:00-16:00 sala DI-A2
    Teórica-Prática: LESI TP2 2ª Feira - 16:00-18:00 sala DI-A2
    Dúvidas LESI/MCC ? ? ?
  • Tiago

2- Estrutura e 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 de exercícios de consolidação, a nível das aulas teórico-práticas, no quadro e no computador. Realização, no computador, extra aulas de trabalhos concretos de aplicação, recorrendo à linguagem Haskell.
3- 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 funcional.
  • Aprender o conceito de Autómato Finito e a teoria associada, bem como a sua aplicação à simulação de Sistemas de Controlo e à especificação e reconhecimento de Linguagens Regulares.
  • Compreender os conceitos de cálculo parcial ou especialização de programas
  • Aprender o conceito de gramática e como descrever estruturas de linguagens através de gramáticas.
  • Compreender o conceito: embeber linguagens de dominio especifico (eg, gramáticas) numa linguagem de dominio geral (eg, Haskell).
  • Reforçar a aptidão dos alunos para desenvolver programas correctos e eficientes (quer no paradigma funcional quer em qualquer outro paradigma de programação).

4- 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 sera formada por 2 componentes
  • 2 trabalhos praticos a realizar durante o semestre
  • Uma prova escrita sobre os trabalhos praticos com 15 minutos de duraçao. Esta prova escrita sera realizada imediatamente antes (ou depois) da avaliaçao teorica da disciplina.
A nota final será determinada de acordo com a seguinte fórmula:

A anunciar em breve.

5- Programa

  • Programação baseada em Transições de Estado:
    • Noções básicas
    • Autómatos Finitos
      • Autómatos não-deterministas
      • Autómatos deterministas
      • Cálculo Parcial aplicado a Autómatos Deterministas
      • Conversão de ANDs em ADs
      • Conversão de AFND am AFD através de cálculo parcial
      • Minimização de Estados de AFD
      • Autómatos reactivos
  • Programação baseada em Gramáticas:
    • Conceito e exemplos
    • Estrutura concreta e abstracta das linguagens formais
    • Desenvolvimento de Parsers baseados em Combinadores para Linguagens Formais.

6- Fichas Teórico-Práticas

As fichas a realizar em cada aula teorico-pratica serao disponibilizadas nesta secçao. As fichas estarao disponiveis na sexta-feira da semana anterior a aula a que se destinam.
7- Software

Ao longo do semestre o software usado (e/ou acnoselhado) ser disponibilizado aqui.
8- Contribuições dos Alunos

Soluçoes de trabalhos praticos, desafios lançados nas aulas aos alunos serao aqui disponibilizados.
9- Trabalhos Práticos

A anunicar em breve.
10- Sumários


Bibliografia

  • Hopcorft and Ullman Introduction to Language Theory, Languages and Computation 2nd Edition Edicao 2001
  • João Saraiva Language Processing (with a Functional Flavour) DI/UM 1ª Edicao 2000
    • Repeated Key jas00
  • L.S. Barbosa Elementos da Teoria dos Autómatos DI/UM [PS] 1996
  • João Saraiva Especificação e Processamento de Linguagens DI/UM 1ª Edicao [PS] [HTML] 1995
  • R. Floid and R. Beigel The Language of Machines: An Introduction to Computability and Formal Languages Computer Science Press 1994
  • S.P.Jones, et al Report on the Programming Language Haskell 98 [HTML] [PS] [PDF] 1999
  • R. Bird Introduction to Functional Programming using Haskell Prentice Hall 1998
  • S. Thompson Haskell - The Craft of Functional Programming Addison-Wesley 2ª Edicao 1999
  • N. Jones, C. Gomard and P. Sestoff Partial Evaluation and Automatic Program Generation Prentice Hall 1993
  • E. Horowitz and S. Sahni Fundamentos de Estruturas de Dados Editora Campus 1984
  • J. Carroll and D. Long Theory of Finite Automata Prentice Hall 1989


Pagina mantida por:

João Saraiva

jas@di.uminho.pt
Page produced by a Tool generated by LRC from the XML document pagina_mpiii.xml

Last Change on Fri Sep 23 10:31:45 2005