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

Engenharia de Sistemas e Informática

2001/2002
Equipa Docente e Horário
Estrutura e Funcionamento
Objectivos
Avaliação
Programa
Sumários
Trabalhos Práticos
Bibliografia

Esta página contém informação relativa à cadeira de Métodos de Programação III a decorrer no ano lectivo 2001-2002 . 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 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

(08-02-02)
  • Trabalhos Práticos:
    • A apresentação dos trabalhos práticos será feita no dia 18 de Fevereiro
    • No dia 15 às 12:00 será disponibilizada na D. Rosa (DI) uma folha para os grupos se inscreverem para a apresentação dos trabalhos
    • Nessa folha será definida a metodologia seguida para a apresentação dos trabalhos.
(17-01-02)
  • Trabalhos Práticos:
    • Em breve será aqui definido como será feita a apresentação do I e II trabalho prático
    • Trabalhos Práticos I recebidos: tp1_receb.html.
    • Solução dos Trabalhos Práticos: solução.
(16-01-02)
(20-12-01) Trabalho-Prático nº 2: tp2.lhs.
  • Resolução (parcial) da Ficha Teórico-Prática nº 11: Ficha11.lhs
  • De Gramáticas para Combinadores de Parsing: listas.lhs.
(14-12-01) Entrega do 1o Trabalho Prático:
  • A Entrega do trabalho é feita enviando um email único para jas@di.uminho.pt
  • A data limite para eu receber o email é dia 17/12/01 às 24:00
    • Por cada dia de atraso será descontado um valor na nota final do trabalho
  • O email deve ter o seguinte assunto: Entrega de Trabalho de MPIII
  • O email deve conter o constituição do grupo especificado de acordo com a seguinte expressão regular:
    (numero ',' curso ',' nome '\n') +
  • Posteriormente será combinado com o monitor a apresentação do trabalho em frente do computador
(09-12-01) Ficha Teórico-Prática nº 9,10 e 11: ficha9.lhs , ficha10.lhs e ficha11.lhs
(30-11-01) Ficha Teórico-Prática nº 8: ficha8.tex.

Esta ficha não incluí programação em Haskell, daí ser um ficheiro em LaTeX puro (com a sua extensão usual, i.e., tex )
(26-11-01) Ficha Teórico-Prática nº 7: ficha7.lhs.
(16-11-01) Ficha Teórico-Prática nº 6: ficha6.tgz.

(A ficha nº6 contém um conjunto de figuras, daí o ficheiro tgz)

Aula Teórico de 15-11-01 sobre o Trabalho Prático: Literate Haskell , Postscript
(12-11-01) Ficha Teórico-Prática nº 5: ficha5.lhs.

LaTeX: O Alberto repetirá a aula de laboratório sobre LaTeX desde que os alunos se agrupem em grupos de 10 (ou mais) e combinem com ele a hora e o local.

Manual do LaTeX em Português: LaTeX.
(07-11-01) Trabalho-Prático nº 1: tp1.lhs.
(06-11-01) Na Quarta-feira (dia 7/11/01) o monitor Alberto Simões vai estar das 14:00 às 16:00 no laboratótio 1.04 (no DI) para apresentar brevemente o LaTeX e tirar dúvidas.

Posteriormente será marcado um novo período de dúvidas no laboratório.

Amanhã estará disponível nesta página o enunciado do trabalho prático
(31-10-01) Ficha Teórico-Prática nº 4: ficha4.lhs.
(26-10-01) Na próxima semana será resolvida/completada a ficha nº3

(turnos de MCC e LESI, respectivamente).
(18-10-01) Ficha Teórico-Prática nº 3: ficha3.lhs.
(11-10-01) Ficha Teórico-Prática nº 2: ficha2.lhs.

Módulo de Expressões Regulares em C: RegExp.c

(Isto é, Exp. Reg. em 120 linhas de código C , em vez das 10 de Haskell )

(08-10-01) Ficha Teórico-Prática nº 1: ficha1.lhs.
(08-10-01) A página da disciplina está no "ar".

Capitulo 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: LESI TP1 2ª Feira - 14:00-16:00 sala DI A2
    LESI TP2 3ª Feira - 09:00-11:00 sala DI-1 (0.02)
    LESI TP3 5ª Feira - 08:00-10:00 sala CP2 - 210
    Dúvidas LESI/MCC 3ª Feira - 14:00-18:00
  • Pedro Henriques

    Teórica-Prática: MCC TP1 5ª Feira - 11:00-13:00 sala DI-2 (1.06)
    MCC TP2 4ª Feira - 11:00-13:00 sala DI-3 (1.07)
    Dúvidas LESI/MCC ? ? ?
  • Alberto Simões (Monitor)
    Dúvidas: LESI/MCC 4ª Feira - 14:00-16:00

Capitulo 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.
Capitulo 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).

Capitulo 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 seré formada por 2 trabalhos para realização em grupo, sendo entregues acompanhados de um relatório sucinto e discutidos em frente ao computador: 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:

NotaFinal = NotaTeorica * 0.50 + (NotaPratica - Delta / 2) * 0.50

sendo Delta = | NT - NP |

Exige-se 8 valores como nota mínima em cada parte.

Capitulo 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.

Capitulo 6 Sumários


Capitulo 7 Trabalhos Práticos

  • Trabalho Prático nº1: tp1.lhs.
  • Trabalho Prático nº2: A anunciar brevemente

Bibliografia

  • João Saraiva Language Processing (with a Functional Flavour) DI/UM 1ª Edicao 2000
  • 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 Feb 8 16:24:47 2002