U.Minho Métodos de Programação I - 1999/2000
[ DI/UM ]

Sumários - 1999/2000


Aula Teórica de 7.10.99 [Ref:7]:
Sumário: Apresentação da disciplina. Equipa docente. Programa da disciplina e seu enquadramento no plano de estudos. Regime de avaliação. Informação electrónica sobre a disciplina: URL: HTTP://WWW.DI.UMINHO.PTJNO/HTML/MPI.HTML. Bibliografia.

Aula Teórica de 12.10.99 [Ref:5]:
Sumário: Motivação. Teoria e método em programação. Composicionalidade. Interfaces. Combinadores de programas. Modularidade e reutilização. «Pacotes» de programação.

Programação funcional: sua motivação e antecendentes históricos. Conceito de função. A função como contrato. Diagramas de blocos. Diagramas funcionais.


Aula Teórica de 14.10.99 [Ref:7]:
Sumário: Estudo dos combinadores elementares de programas funcionais: Domínio e codomínio de uma função. Igualdade extensional. A composição como combinador elementar de funções. Função identidade. Notação com ou sem variáveis. Associatividade da composição. Polimorfismo da identidade.

Aula Teórica de 19.10.99 [Ref:5]:
Sumário: Estudo dos combinadores elementares de programas funcionais (cont.): O combinador <f,g> e o produto A ×Bstruct») e suas projecções. Propriedade universal e suas derivadas (cancelamento, reflexão e fusão).

Aula Teórica de 21.10.99 [Ref:7]:
Sumário: Estudo dos combinadores elementares de programas funcionais (cont.): O combinador [f,g] e o coproduto A + B (analogia com «union») e suas injecções. Propriedade universal e suas derivadas (cancelamento, reflexão e fusão).

Aula Teórica de 26.10.99 [Ref:5]:
Sumário: Estudo dos combinadores elementares de programas funcionais (cont.) : Os combinadores f ×g e f + g . Propriedades de absorção. Propriedades functoriais. Lei da troca.

Aula Teórica de 28.10.99 [Ref:7]:
Sumário: Estudo dos combinadores elementares de programas funcionais (cont.) : Invertibilidade à esquerda e à direita. Noção de isomorfismo. O isomorfismo A ×B =B ×A (swap). Outros isomorfismos célebres envolvendo produtos e coprodutos (assocr, undistr, etc). Propriedades naturais.

Aula Teórica de 2.11.99 [Ref:5]:
Sumário: Estudo dos combinadores elementares de programas funcionais (cont.) : Produtos e coprodutos n-ários ( n>=0). Tipos elementares genéricos: 0 (Void em HASKELL ), 1 (() em HASKELL ) e 2 (Bool em HASKELL ). Segmentos iniciais e tipos enumerados. Funções constantes. O combinador c . Propriedades. As funções ! : A ->1 e ? : 0 ->A.

Aula Teórica de < [Ref:7]:
Sumário: <
387>>4.11

Sumários - 1999/2000


Aula Teórica de 7.10.99 [Ref:7]:
Sumário: Apresentação da disciplina. Equipa docente. Programa da disciplina e seu enquadramento no plano de estudos. Regime de avaliação. Informação electrónica sobre a disciplina: URL: HTTP://WWW.DI.UMINHO.PTJNO/HTML/MPI.HTML. Bibliografia.

Aula Teórica de 12.10.99 [Ref:5]:
Sumário: Motivação. Teoria e método em programação. Composicionalidade. Interfaces. Combinadores de programas. Modularidade e reutilização. «Pacotes» de programação.

Programação funcional: sua motivação e antecendentes históricos. Conceito de função. A função como contrato. Diagramas de blocos. Diagramas funcionais.


Aula Teórica de 14.10.99 [Ref:7]:
Sumário: Estudo dos combinadores elementares de programas funcionais: Domínio e codomínio de uma função. Igualdade extensional. A composição como combinador elementar de funções. Função identidade. Notação com ou sem variáveis. Associatividade da composição. Polimorfismo da identidade.

Aula Teórica de 19.10.99 [Ref:5]:
Sumário: Estudo dos combinadores elementares de programas funcionais (cont.): O combinador <f,g> e o produto A ×Bstruct») e suas projecções. Propriedade universal e suas derivadas (cancelamento, reflexão e fusão).

Aula Teórica de 21.10.99 [Ref:7]:
Sumário: Estudo dos combinadores elementares de programas funcionais (cont.): O combinador [f,g] e o coproduto A + B (analogia com «union») e suas injecções. Propriedade universal e suas derivadas (cancelamento, reflexão e fusão).

Aula Teórica de 26.10.99 [Ref:5]:
Sumário: Estudo dos combinadores elementares de programas funcionais (cont.) : Os combinadores f ×g e f + g . Propriedades de absorção. Propriedades functoriais. Lei da troca.

Aula Teórica de 28.10.99 [Ref:7]:
Sumário: Estudo dos combinadores elementares de programas funcionais (cont.) : Invertibilidade à esquerda e à direita. Noção de isomorfismo. O isomorfismo A ×B =B ×A (swap). Outros isomorfismos célebres envolvendo produtos e coprodutos (assocr, undistr, etc). Propriedades naturais.

Aula Teórica de 2.11.99 [Ref:5]:
Sumário: Estudo dos combinadores elementares de programas funcionais (cont.) : Produtos e coprodutos n-ários ( n>=0). Tipos elementares genéricos: 0 (Void em HASKELL ), 1 (() em HASKELL ) e 2 (Bool em HASKELL ). Segmentos iniciais e tipos enumerados. Funções constantes. O combinador c . Propriedades. As funções ! : A ->1 e ? : 0 ->A.

Aula Teórica de 4.11.99 [Ref:7]:
Sumário: Estudo dos combinadores elementares de programas funcionais (cont.) : Predicados e guardas. Condicional de McCarthy.

Aula Teórica de 9.11.99 [Ref:5]:
Sumário: Estudo dos combinadores elementares de programas funcionais (cont.) : Funções de ordem superior. Noção de espaço funcional. O combinador curry f (curry f em HASKELL ). A exponencial BA. Propriedade universal e suas consequências (cancelamento, fusão e reflexão). A construção fA.

Aula Teórica de 11.11.99 [Ref:7]:
Sumário: Estudo dos combinadores elementares de programas funcionais (conclusão) : conclusão da aula anterior. Apresentação da extensão Mpi.hs ao Prelude.hs do Hugs 1.4 .

Aula Teórica de 16.11.99 [Ref:5]:
Sumário: Introdução aos tipos de dados recursivos a partir de uma analogia com a programação imperativa : O conceito de «apontador» 1 + A (Maybe a em HASKELL ). Tipos de dados recursivos vistos como equações. As listas ligadas e a equação L =1 + A ×L .

Aula Teórica de 18.11.99 [Ref:7]:
Sumário: Introdução aos tipos indutivos : Declaração de tipos de dados em HASKELL . Sua relação com o coproduto. Álgebra e co-álgebra do tipo indutivo definido pela equação L =1 + A ×L . Isomorfismo. Introdução à observação de tipos indutivos usando como exemplo listas de inteiros - data L = Nil | Cons (Int,L) .

Aula Teórica de 23.11.99 [Ref:5]:
Sumário: Introdução aos tipos indutivos (cont.) : Conceitos de catamorfismo e anamorfismo usando o tipo de dados exemplo listas de inteiros - data L = Nil | Cons (Int,L) .

Aula Teórica de 25.11.99 [Ref:7]:
Sumário: Introdução aos tipos indutivos (cont.) : Conceito de hilomorfismo usando o tipo de dados exemplo listas de inteiros - data L = Nil | Cons (Int,L) . O factorial visto como um hilomorfismo.

Apresentação do módulo RList.hs.


Aula Teórica de 30.11.99 [Ref:5]:
Sumário: Introdução aos tipos indutivos (cont.) : Apresentação do algoritmo de ordenação por inserção simples como hilomorfismo sobre a estrutura RList a.

Cálculo de programas: eliminação da estrutura de dados intermédia de um hilomorfismo .

Introdução ao tipo de dados árvores binárias simples , ou listas bi-lineares: data BTree a = Empty | Node(a, (BTree a, BTree a)).


Aula Teórica de 02.12.99 [Ref:7]:
Sumário: Introdução aos tipos indutivos (cont.) : Apresentação do módulo BTree.hs. Estudo da triologia cata-ana-hilo associada ao tipo BTree. Exemplos célebres: os catamorfismos de travessia (in/pre/pós-ordem) e os hilomorfismos qSort ('quick sort') e hanoi (torres de Hanói).

Aula Teórica de 07.12.99 [Ref:5]:
Sumário: Introdução aos tipos indutivos (cont.) : Noção de functor. Propriedades functoriais. Functores em HASKELL : a class Functor e o operador map. Exemplos: functor indentidade, functor constante e a exponencial.

Aula Teórica de 09.12.99 [Ref:7]:
Sumário: Introdução aos tipos indutivos (cont.) : Noção de bi-functor. Propriedades. Bi-functores em HASKELL : a class BiFunctor e o operador bmap. Exemplos: functor produto e coproduto.

Aula Teórica de 14.12.99 [Ref:5]:
Sumário: Não houve aula (participação do docente num júri de doutoramento).

Aula Teórica de 16.12.99 [Ref:7]:
Sumário: Tipos indutivos polinomiais : Functores polinomais. Forma canónica de um functor polinomial. Lei do binómio de Newton. Noção de tipo de dados indutivo polinomial.

Aula Teórica de 04.01.00 [Ref:5]:
Sumário: Tipos indutivos polinomiais (cont.) : Estudo da triologia cata-ana-hilo associada ao tipo LTree. Exemplos: os hilomorfismos dfac (duplo factorial ) e fib (série de Fibonacci ). O hilomorfismo mSort ('merge sort').

Aula Teórica de 06.01.00 [Ref:7]:
Sumário: Tipos indutivos polinomiais : Generalização da triologia cata-ana-hilo à indução polinomial.

Parametrização. Noção de functor de base . maps são catamorfismos: noção de functor de tipo e sua formulação genérica como catamorfismo de um tipo de dados recursivo da forma T a1...an =B(a1,...,an,Ta1...an) .


Aula Teórica de 11.01.00 [Ref:5]:
Sumário: Tipos indutivos polinomiais (cont.) : Estudo da triologia cata-ana-hilo associada ao tipo FTree.

Quadro sinóptico classificativo dos principais algoritmos analisados e estudados ao longo da disciplina:

Classe B(A,X)B(A,C,X)TravessiasOrdenaçãoFactorialOutros
RList 1 + A × X iSort fac sq
LList 1 + X × A
BTree 1 + A × X² in/pré/pós qSort hanoi
LTree A + X² flatten mSort dfac fib
FTree C + A × X²

Aula Teórica de 13.01.00 [Ref:7]:
Sumário: Conclusão : Síntese final. Articulação da disciplina com outras que se lhe seguem no plano de estudos. Preenchimento do questionário de avaliação da disciplina.

Voltar à página principal de MP-I .
Outras disciplinas leccionadas pelo DIUM

1/24/2000
Jose Nuno Oliveira