As classificações constantes desta página foram removidas no final do ano lectivo.
Trabalho prático (TP)
Avaliação do TP
Defesa: os DDHHMM de cada defesa encontram-se afixados aqui. É possível fazer trocas entre slots" até amanhã às 18h00 - pf enviar email ao regente da discipina indicando os 2 grupos que pretendem trocar entre si. O horário só ficará definitivo a partir dessa hora.
Local: dia 3-Jun -- Anfiteatro A1; dia 5-Jun -- sala DI 0.02.
Entrega do TP
Data limite: dia 31 Mai 2015, até às 23h59m.
Instruções para a entrega: um e um só elemento de cada grupo deverá fazer 'upload' em http://www.di.uminho.pt/submissaotrabalhos/ de um único ficheiro zip contendo a sua versão do ficheiro lhs dado como enunciado e do pdf respectivo.
Esse ficheiro zip deverá ter o nome cp1415tXX.zip, onde XX designa o grupo. Exemplos: o grupo G01 enviará o ficheiro cp1415t01.zip, o G99 enviará cp1415t99.zip etc.
O endereço acima está já operacional. O aluno que submete deverá receber uma mensagem automática de confirmação, à qual não é preciso - nem deve - responder.
Qualquer dificuldade técnica que porventura surja deverá ser comunicada à equipa técnica do DI (Eng. José Luís Faria, jose AT di DOT uminho DOT pt).
Alunos e grupos
Eventuais trocas entre elementos dos grupos que se seguem terão que ser comunicadas até à data limite de 1-Maio (NB: os grupos que foram comunicados com mais/menos do que 3 elementos estão sujeitos a re-estruturação, apresentando-se a versão corrente.)
Grupos CP
G01
a27678
Sandra Manuela Silva Machado
a60071
Renato João Gonçalves Santos Silva
a65194
João Miguel Campos dos Reis
G02
a32652
Pedro Duarte Cardoso Lopes
a51790
Manuel João Ferreira Macedo
a61017
Nuno Miguel Abreu Moreira
G03
a38573
Nelson Duarte Cardoso da Mota
a40616
Luis Manuel Camelo Martins
a62819
Luís Miguel Fernandes Vieira
G04
a41841
João Carlos Castro Catarino Rua
a66822
Miguel Espinheira Guimarães
a67650
Carlos Manuel Magalhães Gonçalves
G05
a43548
Jaerder Nunes Sousa
a52834
Pedro Miguel Duarte Mendonça
a56444
Ramon Gama Rodrigues
G06
a49333
Bernardino Marques Fernandes
a54764
Nelson Daniel de Carvalho Vieira
a72864
Daniel Carvalho da Cruz
G07
a51752
John Camilo Ferreira Maia
a51782
Daniel Pereira Andrade
a51814
Ricardo Torres Varzim Faria
G08
a52985
Jorge Miguel Barreiro Ferreira
a58680
David Rodrigues
a60201
Tiago Filipe Martins Moreira
G09
a53791
David Miguel Duarte Rodrigues Alves
a64300
Janine Marlene Duarte da Silva Freitas
a64365
Fernanda Raquel Cerdeira Alves
G10
a54003
Daniel Pinheiro Casanova
a70513
Pedro Miguel Pereira Luís de Almeida Araújo
a70719
Diogo Ramos Constâncio
G11
a54056
Luis Filipe Ferreira Brito
a61043
Paulo Gonçalves Cardoso
a64385
Gustavo Diogo Braga Martins Dias dos Santos
G12
a54713
Tiago Filipe Alves Fonseca da Silva Augusto
a67638
José Carlos Pedrosa Lima de Faria
a67673
André José Ferro Geraldes
G13
a54718
Lázaro Tomé Alves Azevedo
a64296
André Miguel Vila Cova Ferreira
a64345
Pedro Miguel Pereira da Silva
G14
a54723
Rui Gomes Duarte
a64282
Paulo Henrique Alves Lacerda
a67683
César Eduardo da Silva Magalhães
G15
a55522
Ana Isabel Lobo de Castro
a57127
Joana Margarida Miguel
a67722
Luís André Vieira e Mendonça
G16
a55718
Hugo Miguel Gomes Almeida Mendes
a61035
Pedro Santos Arezes Costa
a61083
Tiago Manuel Monteiro Ferreira de Oliveira
G17
a55842
Hugo Ricardo Moutinho Teixeira
a68684
Luísa Maria Carvalho Fernandes
a68694
Solange Ferreira da Silva
G18
a57041
Simão Pedro Santa Cruz Oliveira
a61032
Tiago Filipe Gonçalves Vilar Pereira
a61080
José Paulo Pinheiro Truta
G19
a57767
Miguel Ângelo Ferreira Dias Ribeiro
a72327
Carlos Miguel Gonçalves Ribeiro
a76106
João Henrique Ribeiro Valente
G20
a60407
Isac Fernando Nogueira Carneiro
a62137
Hugo Ricardo Lemos Araújo
a63385
André Oliveira Rego
G21
a60982
Norberto João Sobral
a61044
Diogo Santos Tavares
a61061
Pedro Rites Lima
G22
a60988
Agostinho Abílio Cardoso Fernandes
a61024
Sérgio Lucas dos Santos Oliveira
a61046
Rui Miguel Moura Mendes
G23
a61006
Simão Pedro do Carmo de Pinho Dias
a66669
André Filipe Ribeiro Costa
a67664
Bruno André Araújo Henriques
G24
a61029
William Rodrigues Sousa
a70563
Adelino João Faria da Costa
a72205
Luís Martinho de Aragão Rego da Silva
G25
a61067
Pedro José Costa de Oliveira
a72293
Daniel Cerveira Furtado Malhadas
a72502
Alexandre Romain Lucas Ventosa da Silva
G26
a61778
André Ribeiro Ferraz da Cunha Santos
a67635
Mariana Imperadeiro Carvalho
a67727
João Miguel Gonçalves Fernandes
G27
a61799
Rafael Braga Gomes da Costa
a61855
Ana Paula da Costa Leal de Carvalho
a61887
Carlos Duarte Afonso Pereira
G28
a62120
Bruno Miguel Peixoto Henriques
a64303
Flávia Daniela da Silva
a64330
Fábio Diogo Peixoto Dias
G29
a62132
João Manuel da Cunha Pedro Ribeiro
a62162
João Pedro Cerqueira Pinto
a68686
Claúdia Sofia Maia da Costa
G30
a62134
Sérgio Diogo Gomes Oliveira
a63045
Bento Alves Lima
a63374
Luís Carlos Oliveira Carvalho
G31
a64287
David António Cardoso Moreira
a64319
Duarte Cunha da Silva Moças
a64343
Jorge Miguel da Silva Ferreira
G32
a64299
Mário Nelson Araújo Santos
a64341
João Daniel Cardoso Borges Fernandes
a64367
Pedro Nicolau Machado Carvalho
G33
a64309
Pedro Vieira Fortes
a67847
Bruno Renato Fernandes Carvalho
a71184
João Pedro Pereira Fontes
G34
a64336
João Pedro Moutinho Alves
a64349
Nuno Miguel Fernandes Monteiro
a64377
José Pedro Castro e Sousa
G35
a64344
Carlos Daniel Azevedo Ferreira
a67710
Miguel António Oliveira Antunes da Silva
a67715
Pedro Gomes Antunes
G36
a64391
Bruno Veríssimo Gonçalves
a71548
Luís Miguel Rodrigues Cracel Viana
a73269
Bruno Manuel Gonçalves Ribeiro
G37
a65432
João Manuel Martins Cerqueira
a65450
Cláudio Oliveira Fernandes
a72053
Ângela Andrade de Carvalho Fernandes
G38
a65443
Maria João Fernandes Araújo
a66694
Paulo Filipe Martins de Sousa
a66700
Daniel Filipe Gomes Magalhães
G39
a65453
Pedro Manuel Soares Antunes de Castro Gomes
a66695
Carlos Gabriel da Silva Pereira
a71191
Tiago Costa Loureiro
G40
a66093
Luís Filipe de Azevedo Martins
a68700
Alexandra Cristina Tâmega Magalhães Meireles
a70373
Alexandre Rodrigues Balde
G41
a66823
Pedro José da Mota Lino
a71164
Jéssica Martins Pereira
a73476
Hugo Miguel Esteves Rodrigues
G42
a67634
Daniel Gonçalves Rodrigues
a67717
Pedro Miguel da Rocha Ribeiro
a67725
Xavier Neves Francisco
G43
a67641
Miguel Ângelo de Brito Machado
a67682
Nuno Miguel da Costa Campos
a67751
Pedro Nuno Rodrigues da Silva
G44
a67647
Bruno Manuel Macedo do Nascimento
a67686
Filipe Manuel Gonçalves de Oliveira
a67703
Vítor Hugo de Castro Rodrigues
G45
a67649
Nuno André da Silva Oliveira
a67714
João Pedro Monteiro Miranda
a67741
João Tiago Cruz Cunha
G46
a67654
André Rodrigues Soares
a67656
Rui Alves dos Santos
a68410
Manuel Maciel Roriz Oliveira
G47
a67663
Adriano Dias Teixeira
a71346
Tiago Jorge Martins Araújo
a73312
Ângelo Dias Teixeira
G48
a67672
Márcia Maria Fernandes da Costa
a67687
José Gabriel Sá Santos
a68876
Beatriz Ribeiro Pires Loureiro
G49
a67676
Xavier Passos Rodrigues
a67723
Rafael Joaquim Pereira de Macedo
a72628
Bruno Plácido Gomes Pereira
G50
a67695
José Alexandre da Silva Mirra
a67747
Rui Manuel Abreu Pereira
a67752
José Azevedo Lima
G51
a68682
Filipe Abreu Lemos
a68690
António Pedro Adães de Sá Gomes de Oliveira
a68710
Ricardo Miguel da Silva Pereira
G52
a68692
José Manuel Costa Simões
a68702
Nuno Alexandre Pereira Machado
a70069
Isac Pereira Oliveira Meira
G53
a68695
Diogo José Leite Oliveira Araújo
a68703
Renato Mendes Pinheiro
a70067
Filipe Gonçalves de Macedo
G54
a68698
Joel Filipe Pimenta Carvalho
a70058
Daniel da Fonte Torres
a70060
Elsa Maria Ferreira Amorim
G55
a68913
Carlos Jorge Rodrigues Martins
a70743
Carlos Manuel Oliveira Leite
a71899
Carlos António Senra Pereira
G56
a70066
Pedro Micael Carvalho Fernandes
a70073
Paulo André Pinto Barbosa
a70400
João Nuno Barbosa Teixeira Gomes
G57
a70377
André Filipe Proença e Silva
a70804
Luís Manuel de Carvalho Ribeiro
a71074
Sebastião Mendes de Freitas
G58
a70387
Afonso João Borges Cabral Cerejeira da Silva
a71509
Cláudia Azevedo Marques
a71926
Cecília Catarina Domingues Marciel
G59
a70415
Luís Paulo Ferreira Pedro
a72443
José Miguel da Silva Santos
a73014
José Pedro Santos Monteiro
G60
a70430
João Bernardo Machado Quintas Dias da Costa
a70672
Tiago Alexandre Fernandes Lima
a71240
Rui Jorge Cerqueira Soares
G61
a70443
Tiago João Lopes Carvalhais
a71223
José Carlos da Silva Brandão Gonçalves
a72223
Gustavo da Costa Gomes
G62
a70500
Bruno Jorge Barros de Azevedo
a71580
Rafael Alexandre Antunes Barbosa
a71751
André Miguel Bonjardim Pinto
G63
a70580
Andreia Filipa Pereira de Barros
a70880
João Pedro Alves Fernandes
a71927
Tânia da Conceição Araújo Esteves
G64
a70676
Marcos de Morais Luís
a71664
Nelson Manuel Figueiredo Silva
a72384
César Augusto Lourenço Cachulo
G65
a70712
Francisco José Torres Ribeiro
a71418
Rui António Ramada Rua
a72307
Rafael Mota Oliveira
G66
a70754
Eduardo Jorge Pereira Lopes
a70779
João Miguel Gomes Maciel
a73194
Ângelo Rafael da Silva Coelho
G67
a70949
Leandro Augusto Oliveira Salgado
a72062
Ricardo Dinis Oliveira Lopes
a73236
Humberto João Alves Vaz
G68
a70951
Pedro Miguel Lopes Pereira
a71329
Diogo Silva Meira
a71625
Nelson Arieira Parente
G69
a71015
Beatriz Abreu Aarão
a71417
Madalena Freitas Castro
a71634
Lúcia Martins Videira de Abreu
G70
a71020
André Alexandre Pinheiro Marinho
a71874
João Miguel Afonso
a72187
José Carlos Araújo Lima
G71
a71142
Carlos Miguel Barbosa Araújo
a71847
José Miguel Matos Ventura
a73000
Alberto Emanuel Ferreira Pinto
G72
a71220
José Luís Nunes Silva
a71553
Daniel Filipe Vilar Tavares
a72362
Miguel Martins Costa
G73
a71369
Octávio José Azevedo Maia
a71655
Alfredo Miguel Macedo Gomes
a71802
Pedro Manuel Calheiros da Rocha
G74
a71492
Gabriel Dias Fernandes
a71940
Eduardo de Lima Cunha
a72620
Mário Jorge Dias Real
G75
a71752
João Miguel Amorim Noivo
a72204
José Paulo Queiroga Amorim Fernandes
a72261
Armando Mário Teniz Queirós
G76
a71848
Pedro Filipe Teixeira Costa
a72067
Paulo Miguel Novais Gameiro
a72925
Pedro Miguel Braga do Vale
G77
a71862
João Emanuel da Silva Mendes
a72227
Diogo Filipe da Silva Vilaça
a72424
José Nuno Castro de Macedo
G78
a71930
André Francisco Soares Carvalho Alves Teixeira
a72376
Nuno José Vilela da Cunha
a73434
Luís Alberto Oliveira Rocha Esquível Costa
G79
a72023
João Manuel Ferreira da Silva
a72095
João Tiago Pereira Dias
a72399
Rui Jorge Araújo Freitas
G80
a55856
Ricardo Sousa Fortunato
a57154
André Vaz Teixeira
a65434
Daniel Filipe Morais Faria
G81
a48310
Filipe Manuel da Costa Santos
a58657
José Ricardo Oliveira Gonçalves
a64286
Helder Daniel Domingues Gonçalves
G82
a62154
Diogo Lopes Ferreira
a65446
João Pedro Braga Carvalho Vieira
a66699
Jorge Miguel Azevedo Leite
G83
a53668
João Pedro Gomes Meireles
a57754
Luís Gonçalo Ferreira Mendes
a57816
Filipe Costa Oliveira
G84
a68691
Luís Carlos da Silva Marques
a70644
Ruben Miguel Cunha Santos
a70866
Pedro Manuel Reis Lopes Bragança
G85
a69858
João Luís Silva Ribeiro
a71604
Diogo José Linhares Couto
a71794
Bruno Miguel Alves Ferraz
G86
a64335
Jorge Pedro Ribeiro Nunes Simão
a64357
João Pedro Pinto Póvoa
a64383
André Daniel Freitas Ferreira
G87
a60991
Rafaela Medeiros Guerra
a61003
Emanuel Queiroga Amorim Fernandes
a62153
Filipe Daniel da Silva Rosa Neco Mota
G88
a60995
Ricardo Araújo Silva
a67660
António Manuel Pereira do Anjo
a67740
João Carlos Silva Monteiro
G89
a67662
Adriana Eliana Fernandes Pereira
a70835
Ana Filipa Novo Pereira
a72873
Ana Filipa Rodrigues Gomes
G90
a61066
Nuno Alberto Pires Fernandes
a64310
Nuno Miguel Rodrigues da Silva
a67671
Alberto Rui Vilaverde Monteiro da Silva
G91
a70390
José Duarte Mendes de Azevedo
a70441
Mário Jorge Viana Ferreira
a71835
Tiago Filipe Oliveira Sá
G92
a51216
Geovani Silva Delgado Alves
a57758
André Fafe Fernandes Ferreira de Melo
a61013
Luis Lisandro Ferreira da Silva Alves
G93
a61074
Jorge Rafael Chaves de Oliveira
a67637
Célia Natália Lemos Figueiredo
a67712
João Carlos Gonçalves Pimentel
G94
a65059
Carlos Filipe Gomes da Silva
a70363
Hugo Manuel Ramos Vilas Boas Gonçalves
a71841
André Brandão de Pinho
G95
a51769
João Paulo Pereira Bastos
a51781
Daniel Rodrigues Silva
a66553
Carlos Manuel dos Santos Silva
G96
a61077
João Miguel Ferreira Lopes
a64358
João Nicolau de Araújo Afonso
a64360
Gabriel Martins Pinto
G97
a71407
Maurício Zulueta Lima Salgado
a71929
Pedro Daniel Silva Pinto
a72028
Nuno Jorge Pereira Oliveira
G98
a70853
Hugo Filipe da Silva Ribeiro
a71538
Rui Jorge Mota Gama
a7576
João Miguel de Sousa Faria
G99
a36548
Ariano Soares Lopes
a39293
Adérito Francisco Silves Ferreira Carvalho de Melo
a47423
Tiago Moreira Correia Tulha
Registo dos grupos para trabalho prático
Até ao dia 17 de Abril (inclusive), cada grupo deverá enviar uma mensagem ao docente responsável pela disciplina (jno@di.uminho.pt) contendo, no assunto, um texto no formato
seguinte
CP1415 GrupoCP a99999 a99999 a99999
onde os 99999 devem ser substituídos pelos números mecanográficos dos alunos do grupo.
O corpo da mensagem pode vir vazio pois não será processado.
Em qualquer altura: via correio electrónico pressionando aqui. Qualquer outro meio de contacto será considerado informal, não se sentindo a equipa docente vinculada a dar uma resposta em tempo útil.
Durante o período de aulas: de acordo com o horário seguinte, sujeito a marcação verbal junto do respectivo docente:
Essa marcação deve ser feita previamente (eg. por email) com um mínimo de uma semana de antecedência.
Atendimento electrónico (FAQs)
Q01 - Estou sem conseguir resolver a questão 8 do teste de 2011/12: definir um anamorfismo de naturais como um catamorfismo de listas. Tentei usar a lei universal-ana(44) mas fiquei bloqueado a meio.
R: Sim, universal-ana (naturais) é bom começo (expandindo out = [nil,cons]º ):
f = [( (id+p2). [nil,cons]º )]
== { universal-ana (naturais); álgebra in dos naturais é [0,succ] }
f = in. (id + f ) . (id+p2). [nil,cons]º
== { passando isomorfismo [nil,cons]º para o outro lado, "trocando o sinal" }
f . [nil,cons] = in. (id + f ) . (id+p2)
Aqui começa a preparação das coisas para se obter f como catamorfismo de listas. A dificuldade desta questão é que começa com um anamorfismo de naturais (F f = id + f) e termina com um catamorfismo de listas (F f = id + id x f). A mudança de F dá-se a partir do ponto em que se parou acima. Como sempre, as propriedades naturais não se devem ignorar, neste caso a do p2: f.p2 = p2.(g><f).
Continuando:
f . [nil,cons] = in. (id + f.p2)
== { f.p2 = p2.(id><f) , cf. natural-p2 }
f . [nil,cons] = in. (id + p2.(id><f))
== { natural-id; functor-+ }
f . [nil,cons] = in. (id + p2) .(id + id><f))
== { universal-cata }
f = (| in. (id + p2) |)
Q02 - Estou a tentar resolver a questão 6 do teste de 17 de Junho de 2013: fiz os diagramas de cada catamorfismo e chego às definições das funções com variáveis através da lei universal-cata e consigo perceber que realmente fazem a mesma coisa, mas não sei se era assim que era suposto resolver...
R: Não, isso mostra... mas não prova! O que queremos provar é que f=g, sendo ambas catamorfismos. Logo podemos usar a lei-universal aplicada a f ou g, à nossa escolha, por exemplo
f = ([ (const k), id ])
<=> { Universal-cata }
f.in = [(const k), id] . (id + f)
<=> { simplificação }
f.in = [(const k), f]
<=> { cancelamento-cata (f) }
[const k, const k].(id+f) = [(const k), f]
<=> { simplificação seguida de eq-(+) etc }
f = const k
Agora basta verificar se const k = g, pelo mesmo processo.
Q03 - Não consigo resolver o exercício 8 da ficha 7 pois só conheço a definição do undistl e não sei o que fazer com distl.
R: Pois, esta é uma situação em que saber que uma função é um isomorfismo natural é bom (natural quer dizer que tem propriedade natural, ou grátis, isto é, é genérico). Vejamos primeiro em que situação é que aparece distl. Após a aplicação das leis universal-cata, ... eq-+, a segunda igualdade fica assim:
f . cons = [ p2, cons ] . distl . (id + id >< f)
A única maneira de dos livrarmos de distl é "deslocá-lo para uma ponta" e depois passá-lo para o outro lado da igualdade, convertido em undistl, por serem inversos entre si. A estratégia é, então : (a) para mover distl para a direita usar a sua propriedade grátis, que se pode deduzir pelo seu tipo e diagrama do costume; (b) de seguida passa-se distl do lado direito para undistl no lado esquerdo. O que se obterá é desta forma:
f . cons . undistl = [ p2, cons ] . ...........
Como undistl = [ i1 >< id , i2 >< id ], vai haver fusão-+ com f.cons, etc etc o que acabará por dar duas das três linhas da função dada, escrita em pointwise. Fica como exercício.
Q04 - Na questão 7 do exame de recurso de 2011/12 não percebo a primeira parte: instanciar com a função fac a função lms.
R: O que se pretende é resolver a equação
fac = lms p g h i j
em ordem às variáveis p, g, h, i, j - o que é a mesma coisa que encontrar essas funções na equação
fac = p -> g, h.<i,fac.j>
Partimos da definição de fac sem variáveis (onde 1 representa a função constante 1, (const 1)):
fac.in = [1,mul.<succ,fac>]
== { passagem de in para o outro lado (isomorfismo) ; out dos naturais }
fac = [1,mul.<succ,fac>].((=0) -> i1.!,i2.pred)
== { lei do condicional que facilmente se identifica }
fac = (=0) -> [1,mul.<succ,fac>].i1.!, [1,mul.<succ,fac>].i2.pred
Sugestão: corram esta versão no interpretador de Haskell.
Q05 - No exercício 7 (parte 2 do teste de 2010/2011) tentei chegar da função escrita em Haskell à versão point-free mas não consegui.
R: Escolheu a versão mais complicada, já que no sentido inverso é mais simples: faça absorção-cata no lado direito para obter
hwmny p = ([ g ])
(aqui o objectivo é calcular o gene g do catamorfismo). Depois, dessa equação, deriva hwmny p usando a lei universal-cata
e introduzindo variáveis no fim. Importante: como o tipo em causa é LTree, in = [Leaf, Fork] e o functor de base a usar na lei de
absorção-cata é B(f,g) = f + g >< g - ver baseLTree no ficheiro LTree.hs.
Q06 - Tentei resolver o exercicio 6 do exame de 2012 mas não chego ao resultado que era pretendido. De tri f = (| in . B(id,T f) |) inferi, por cancelamento-cata, (tri f) . in = in . B(id,T f) . F(tri f). Sabendo que B(id,T f) = id + id >< T f e F (tri f) = id + id >< tri f (listas) chego a [tri f . nil, tri f . cons] = [nil, cons . (T f x tri f) ] de onde não consigo chegar ao código Haskell dado.
R: O engano está no cálculo da composição
B(id,T f) . F (tri f)
que deverá dar
id + id >< (T f . (tri f))
e não
id + (T f) >< (tri f)
Resolvido este engano, deverá ser imediato.
Q07 - No exercício 6 do teste de 2012/13 eu faço f = g, universal-cata, cancelamento-cata, absorção-+, const k . f = const k e obtenho o resultado [const k, const k] = [const k, f]. O que estou a fazer de errado?
R: Nada, só falta acabar: por cancelamento-+ obtém const k = const k (trivialmente verdadeiro) e
const k=f. Isto é: a igualdade f=g é equivalente a f=const k. Por transitividade da equivalência obtém também g=const k, logo as duas funções são iguais à função constante k.
Q08 - No exercício 4 do mesmo teste podemos partir de qualquer propriedade da exponenciação (cancelamento por exemplo)? Ou partimos da igualdade curry f a b = f (a,b)?
Q09 - O functor F p1 é igual a id + (p1><p1) e o F p2 = id + (p2 >< p2) ?
R: É isso se estiver a trabalhar com LTrees, pois B(f,g) = f + g><g para essa estrutura e F f = B(id,f). Para outras estruturas terá que ver seu functor de base B(f,g) e calcular o respectivo F f.
Q10 - *LTree p1 = (| in . (p1 + id) |)*, da pergunta 9 do teste resolvido do ano 2012/13, foi deduzido ou trata-se de matéria teórica que devemos saber?
R:LTree p1 = (| in . (p1 + id) |) é um caso particular de functor de tipo, deduzido a partir da sua definição no formulário T f = (| in.B(f,id) |). Como se viu na FAQ anterior, B(f,id) = f + id><id para este tipo de árvores (T = LTree). Como id><id=id, o cálculo é imediato.
Q11 - No mini-teste de 2012/13, na questão 6, como é que mostro que max . const(0,0) = const 0?
R: Não esquecer as propriedades naturais da função constante, entre elas esta: f.(const k) = const (f k).
Assim, max . const(0,0) = const(max(0,0)) = const 0.
Q12 - Venho por este meio pedir um breve esclarecimento acerca do exercício nrº 1 da ficha 5, pois não estou a conseguir pegar no exercício e chegar à propriedade natural a partir do diagrama.
R: A abordagem tem duas partes: primeiro, saber qual o tipo de ▽; de seguida, inferir a propriedade natural a partir desse tipo. Ora é dado que ▽ · i1 = id e ▽ · i2 = id. Pela lei universal-+ obtemos ▽ = [id, id]. Logo o tipo de ▽ é A + A -> A. A segunda parte - derivar a propriedade natural de ▽ deverá ser simples.
Q13 - Não consigo provar a igualdade da questão 5 da ficha 12 nem perceber de que função constante se trata.
R: Primeira parte: para provar curry π2 · f = curry π2 recorremos à lei de fusão da exponenciação, cf:
curry π2 · f
= { fusão-exp }
curry (π2.(f >< id))
= { natural-π2 ; natural-id }
curry π2
Segunda parte: que função constante é curry π2? Vejamos: (curry π2 a) b = π2(a,b) = b. Logo curry π2 a transforma sempre b em b: é a função identidade. Em suma: curry π2 = const id.
Q14 - Não consigo mostrar que f e g são a mesma função na alínea c) da questão 4 da ficha nrº5. Tentei usar a função da questão 9 da ficha nº4 mas também não resultou.
R: Há que usar o cálculo de catamorfismos, pois é muito mais rápido que o uso de definições indutivas como a dessa questão.
Queremos mostrar antes de mais que f = g. Como f e g ambas são catamorfismos, podemos usar a lei universal cata, começando pelo que queremos mostrar (objectivo da prova):
f = g
== { g = for (const i) i = cata [const i, const i] }
f = cata [const i, const i]
== { universal-cata }
f . in = [const i, const i]. (id + f)
== { f = for id i = cata [ const i, id ] ; cancelamento-cata }
[ const i, id ] . (id + f) = [const i, const i]. (id + f)
Logo f = g <=> f = const i: ambas as funções inicializam o ciclo a 'i' e o resultado não se altera, é sempre 'i'.
(experimentem na biblioteca Nat.hs e verão que eg. for 0 id 5 = 0, for 0 (const 0) 5 = 0 etc.)
5-Set - O Exame da época especial terá lugar dia 7-Set, às 14h00, na sala CP1-308.
23 Jul - Orais: as orais terão lugar na sala DI 1.08.
21 Jul - Notas finais: ver Alunos. Os alunos marcados com "oral" deverão comparecer no DI sexta-feira dia 24-Jul às 15h da tarde. A sala será indicada brevemente.
17 Jul - Consulta do exame de recurso: será segunda-feira, dia 20-Jul, das 08h às 12h, na sala DI 1.08.
17 Jul - Notas do exame de recurso de 07-Jul: ver Alunos
06 Jul - Exame de recurso amanhã, 07-Jul, às 16h00: terá lugar nas salas da cantina de Gualtar. O exame é sem consulta exceptuando o formulário disponível no material pedagógico da disciplina, que os alunos deverão trazer consigo impresso.
04 Jul - Publicado no Material Pedagógico o enunciado do teste de 16-Jun, com a correcção.
01 Jul - Sessão para ver o teste: será amanhã, dia 2-Jul, das 14h às 16h, na sala DI 0.11.
15 Jun - Teste amanhã, 20h: o teste é sem consulta exceptuando o formulário disponível no material pedagógico da disciplina, que os alunos deverão trazer consigo impresso.
14 Jun - Alteração da hora do teste: por falta de salas, o teste de CP será realizado no mesmo dia em horário pós-laboral: 20h00 às 22h30, dia 16-Jun, salas CP2 201, 202 e 203 (ou 204).
14 Jun - Anúncio de aulas suplementares: LEI: turnos TP4 e TP5, dia 15 de Junho, das 11:00 - 13:00, na sala 103 do CPI; LCC: turno TP1, dia 15 de Junho, das 11:00 - 13:00, na sala 103 do CPI.
11 Jun - Data e hora do Teste de CP: Ter, 16 de junho, 18:00-20:00.
10 Jun - Estão a ser publicadas FAQs sobre exercícios em Atendimento.
01 Jun - LCC, Turno TP2: chama-se a atenção dos alunos para a aula suplementar que terá lugar dia 4-Jun das 15h30 às 17h30 na sala CP1 104 - ver Sumários.
01 Jun - Defesas dos TPs: ver horário das orais em Alunos.
29 Mai - Instruções para entrega do TP: ver Alunos.
24 Mai - Publicada no Material a ficha nr.12, a preparar para as aulas TP da última semana de aulas.
24 Mai - Data limite para entrega do trabalho prático: 31 Mai 2015, até às 23h59m. Detalhes em Material.
21 Mai - Horário de apoio ao projecto: sala DI 0.02 nos períodos indicados no calendário da disciplina.
17 Mai - Publicada no Material a ficha nr.11, a preparar para as aulas TP da semana de 18-Mai.
05 Mai - LEI, Turnos TP1 e TP2: chama-se a atenção dos alunos para a alteração da hora da aula de reposição amanhã de tarde, que será às 16h00 e não às 14h00 como inicialmente previsto - ver Sumários.
02 Mai - Publicada no Material a ficha nr.10, a preparar para as aulas TP da semana de 04-Mai.
29 Abr - LEI, Turnos TP1 e TP2: chama-se a atenção dos alunos para novas alterações (temporárias) no horário destes turnos e para as aulas de substituição previstas nos Sumários.
28 Abr - Publicado na Bibliografia o último capítulo ( 450K) dos apontamentos.
26 Abr - Publicada no Material a ficha nr.9, a preparar para as aulas TP da semana de 27-Abr.
25 Abr - Trabalho prático: enunciado e material publicados em Material
24 Abr - Publicados os grupos de trabalho em Alunos
24 Abr - Informação sobre Trabalho prático: ver Material
19 Abr - Publicada no Material a ficha nr.8, a preparar para as aulas TP da semana de 20-Abr.
15 Abr - LEI, Turnos TP1 e TP2: chama-se a atenção dos alunos para as alterações (temporárias) no horário destes turnos e para as aulas de substituição previstas nos Sumários.
12 Abr - Publicada no Material a ficha nr.7, a preparar para as aulas TP da semana de 13-Abr.
09 Abr - Registo de grupos para trabalho prático: ver Alunos
04 Abr - Publicada no Material a ficha nr.6, a preparar para as aulas TP da semana de 07-Abr.
20 Mar - Publicada no Material a ficha nr.5, a preparar para as aulas TP da semana de 23-Mar.
16 Mar - Publicado na Bibliografia mais um capítulo ( 550K) dos apontamentos.
14 Mar - Publicada no Material a ficha nr.4, a preparar para as aulas TP da semana de 16-Mar.
07 Mar - Publicada no Material a ficha nr.3, a preparar para as aulas TP da semana de 9-Mar.
27 Fev - Publicada no Material a ficha nr.2, a preparar para as aulas TP da semana de 2-Mar.
J.N. Oliveira. Program Design by Calculation. Departamento de Informática, Universidade do Minho. Os capítulos deste livro (em preparação) essenciais para esta disciplina no corrente ano lectivo são o segundo ( 504K), o terceiro ( 550K) e o quarto ( 450K).
Bibliografia complementar
A. Cunha. Cálculo de Programas: notas teórico-práticas. Departamento de Informática, Universidade do Minho, 2005. (290k).
R. Bird and O. de Moor. Algebra of Programming. Series in Computer Science. Prentice-Hall International, 1997. C. A. R. Hoare, series editor. BGUM 510.5-B
St.hs - contendo uma versão simplificada do mónade de estado (NB: demos.hs foi actualizada com um exemplo de catamorfismo sobre o mónade de estado).
demos.hs - contendo material auxiliar para a visualização em HTML da estrutura de dados virtual (intermédia) dos hilomorfismos qSort, hanoi, mSort etc das bibliotecas BTree.hs e LTree.hs. Experimentar qSort_vtree [6,3,9,1,7,18] e hanoi_vtree (True, 7), por exemplo. Encontrar-se-á a visualização no ficheiro _.html da directoria corrente.
BTree.hs - biblioteca contendo os cata/ana/hilomorfismos do tipo de dados árvores binárias - data BTree a = Empty | Node(a, (BTree a, BTree a)), e aplicações suas (e.g. torres de Hanói, `quick-sort', etc).
LTree.hs - biblioteca contendo os cata/ana/hilomorfismos do tipo de dados árvores binárias de folhas - LTree a = Leaf a | Fork (LTree a, LTree a) e aplicações suas (e.g. duplo factorial, `merge-sort', Fibonacci etc).
List.hs - biblioteca geral para listas em Haskell, contendo combinadores (e.g. catamorfismos) e exemplos de utilização.
Nat.hs - biblioteca de naturais (combinador ciclo-for, etc).
Cp.hs - contendo os combinadores de base do cálculo de programas, e.g. split, ><, -|- etc.
Enunciado o trabalho prático
O material para realização do TP desta disciplina consta de um enunciado (cp1415t.pdf) e de um zip (cp1415t.zip) contendo a respectiva fonte (ficheiro cp1415t.lhs) + outros ficheiros e bibliotecas auxiliares.
Os alunos devem começar por ler cp1415t.pdf para avaliarem o trabalho que há para fazer. Devem ainda deixar para o fim as questões da última parte, cuja matéria só na semana que vem começará a ser leccionada.
A nota final terá uma componente teórica (T) e uma componente prática (TP).
O trabalho de grupo (TP) é obrigatório, será avaliado em prova oral e valerá 40% da nota final. A nota TP mínima é 10 valores.
Os restantes 60% (T) serão avaliados num teste (ou exame de recurso) sem consulta. A nota T mínima é 8 valores.
Os grupos TP serão de 3 alunos cada. As notas TP são individuais, conforme prestação de cada aluno no trabalho e defesa oral.
Melhorias: só se podem fazer à parte T, caso o aluno tenha esse direito; para alunos de anos anteriores, a fórmula de cálculo é a do ano em que a nota a melhorar foi obtida.
Regime de Faltas
Adopta-se o regime geral em vigor na universidade.
TWiki's Education/CP1415 webThe Education/CP1415 web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415Copyright 2020 by contributing authors2020-10-30T14:39:07ZWebStatisticshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebStatistics2020-10-30T14:39:07ZStatistics for Education/CP1415 Web Month: Topic views: Topic saves: File uploads: Most popular topic views: Top contributors for topic ... (last changed by TWikiGuest)TWikiGuestAlunoshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Alunos2019-07-07T09:22:19ZAlunos As classificações constantes desta página foram removidas no final do ano lectivo. Trabalho prático (TP) Avaliação do TP Defesa : os DDHHMM de cada defesa ... (last changed by JoseNunoOliveira)JoseNunoOliveiraAtendimentohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Atendimento2019-05-11T21:26:08ZHorário de Atendimento Em qualquer altura: via correio electrónico pressionando aqui. Qualquer outro meio de contacto será considerado informal, não se sentindo ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebSideBarhttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebSideBar2018-10-05T08:16:02ZTópicos Apresentação Contacto Alunos Sumários Horário Docentes Atendimento Material principal no Catálogo UM ... (last changed by JoseNunoOliveira)JoseNunoOliveiraAvisoshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Avisos2018-10-05T08:15:31Z13 Set Época especial, notas finais: verAlunos. 5 Set O Exame da época especial terá lugar dia 7 Set, às 14h00, na sala CP1 308. 23 Jul Orais: as orais ... (last changed by JoseNunoOliveira)JoseNunoOliveiraMaterialPedagogicohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/MaterialPedagogico2018-06-26T17:05:16ZMaterial Pedagógico Fichas das aulas práticas Ficha 1 (revisões de PF) Ficha 2 Ficha 3 Ficha 4 Ficha 5 Ficha 6 Ficha ... (last changed by JoseNunoOliveira)JoseNunoOliveiraBibliografiahttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Bibliografia2017-05-05T13:01:07ZBibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Os capítulos deste livro ... (last changed by JoseNunoOliveira)JoseNunoOliveiraEquipaDocentehttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/EquipaDocente2015-05-25T09:20:11ZDocentes Docente Código Serviço Cursos Soares Barbosa 406023 Aulas TP LEI Nuno Oliveira 406006 Aulas T, TP LCC, LEI ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebHomehttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebHome2015-04-26T08:59:25ZBenvindo a Cálculo de Programas Bem vindo à página da edição de 2014/15 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ... (last changed by JoseNunoOliveira)JoseNunoOliveiraCalendariohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Calendario2015-02-20T10:20:44ZSumários da disciplina Formato PDF : a disponibilizar oportunamente Formato ICS : a disponibilizar oportunamente Actualização contínua no calendário: JoseNunoOliveira ... (last changed by JoseNunoOliveira)JoseNunoOliveiraRegimeAvaliacaohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/RegimeAvaliacao2015-02-17T11:12:28ZRegime de Avaliação A nota final terá uma componente teórica (T) e uma componente prática (TP). O trabalho de grupo (TP) é obrigatório, será avaliado em prova oral ... (last changed by JoseNunoOliveira)JoseNunoOliveiraHorarioSalasDocenteshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/HorarioSalasDocentes2015-02-12T18:15:00ZHorário e turnos Curso Turno Dia Hora Sala Docente LEI T1 3ª feira 14h00 16h00 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebPreferenceshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebPreferences2015-02-11T18:40:36ZEducation/CP1415 Web Preferences The following settings are web preferences of the Education/CP1415 web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)AlcinoCunhaWebTopicActionshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebTopicActions2007-05-18T08:03:35Z (last changed by AlcinoCunha)AlcinoCunhaWebCsshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebCss2007-02-16T14:32:59Z.natRevision { width:0px; height:0px; overflow:hidden; } .natBreadCrumbs { width:0px; height:0px; overflow:hidden; } .avisos { color: #444; font size ... (last changed by AlcinoCunha)AlcinoCunhaWebTopBarhttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebTopBar2007-02-13T14:43:04Z (last changed by AlcinoCunha)AlcinoCunha
Alunos As classificações constantes desta página foram removidas no final do ano lectivo. Trabalho prático (TP) Avaliação do TP Defesa : os DDHHMM de cada defesa ...
Horário de Atendimento Em qualquer altura: via correio electrónico pressionando aqui. Qualquer outro meio de contacto será considerado informal, não se sentindo ...
13 Set Época especial, notas finais: verAlunos. 5 Set O Exame da época especial terá lugar dia 7 Set, às 14h00, na sala CP1 308. 23 Jul Orais: as orais ...
Bibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Os capítulos deste livro ...
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2014/15 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ...
Sumários da disciplina Formato PDF : a disponibilizar oportunamente Formato ICS : a disponibilizar oportunamente Actualização contínua no calendário: JoseNunoOliveira ...
Regime de Avaliação A nota final terá uma componente teórica (T) e uma componente prática (TP). O trabalho de grupo (TP) é obrigatório, será avaliado em prova oral ...
Education/CP1415 Web Preferences The following settings are web preferences of the Education/CP1415 web. These preferences overwrite the site level preferences ...
Bem vindo à página da edição de 2014/15 da disciplina de Cálculo de Programas.
O meu nome é José Nuno Oliveira e sou o responsável por esta disciplina, que conta com uma
equipa de docentes qualificados na investigação e ensino de métodos que, como os que se leccionam nesta disciplina, estão na base da abordagem científica ao desenvolvimento de software.
Todos fazemos parte do Laboratório HASLab (High-Assurance Software Laboratory), em que se vem consolidando know-how em métodos formais de programação desde há mais de 25 anos.
A palavra "programa" vem do grego "programma", uma derivação de "prographein" = "pro" (antes) + "graphein" (escrever).
Isto sugere que alguém que programa deve pensar antes no que vai fazer.
Cada vez mais, a indústria pede às universidades que ensinem a programar a sério, isto é, de forma reflectida e capaz de evitar erros de programação. Para isso, é preciso introduzir a noção de cálculo em programação, isto é, uma disciplina que nos ajude a pensar os programas, raciocinar sobre eles e obter versões eficientes sem que a sua correcção fique comprometida.
A Universidade do Minho tem uma longa tradição neste tipo de ensino.
Cálculo de Programas é a cadeira que, nas licenciaturas de
Eng. Informática e Ciências da Computação, ensina tais competências. Mais do que tecnologia ensina-se método, que é afinal aquilo que a maioria dos programadores não tem de facto.
Citação
Quien sabe por Algebra, sabe scientificamente. Pedro Nunes(1502-1578) in Libro de Algebra, 1567, fol 270r.
Resultados da Aprendizagem
Programação composicional: aprender a escrever programas complexos por composição de programas mais simples (princípio da composicionalidade).
Programação construtiva: aprender a escrever programas funcionais com recurso a combinadores algébricos.
Transformação de programas: recurso à algebra da programação para se obter eficiência sem sacrifício da correcção.
Arquitectura da programação: Análise, compreensão e catalogação de programas: recurso à factorização em pares "fold" + "unfold" (hilomorfismos) como forma de se perceber a arquitectura dos algoritmos e sua taxonomia.
Síntese de programas: cálculo de ciclos-for a partir de definições indutivas da matemática.
Programação funcional avançada: construir e raciocinar sobre programas funcionais com efeitos sob a forma de mónades.
Alunos As classificações constantes desta página foram removidas no final do ano lectivo. Trabalho prático (TP) Avaliação do TP Defesa : os DDHHMM de cada defesa ...
Horário de Atendimento Em qualquer altura: via correio electrónico pressionando aqui. Qualquer outro meio de contacto será considerado informal, não se sentindo ...
13 Set Época especial, notas finais: verAlunos. 5 Set O Exame da época especial terá lugar dia 7 Set, às 14h00, na sala CP1 308. 23 Jul Orais: as orais ...
Bibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Os capítulos deste livro ...
Sumários da disciplina Formato PDF : a disponibilizar oportunamente Formato ICS : a disponibilizar oportunamente Actualização contínua no calendário: JoseNunoOliveira ...
Regime de Avaliação A nota final terá uma componente teórica (T) e uma componente prática (TP). O trabalho de grupo (TP) é obrigatório, será avaliado em prova oral ...
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2014/15 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ...
Education/CP1415 Web Preferences The following settings are web preferences of the Education/CP1415 web. These preferences overwrite the site level preferences ...
This is a subscription service to be automatically notified by e-mail when topics change in this Education/CP1415 web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe, please add a bullet with your WikiName in alphabetical order to this list:
Each TWiki web has an automatic e-mail notification service that sends you an e-mail with links to all of the topics modified since the last alert.
Users subscribe to email notifications using their WikiName or an alternative email address, and can specify the webs/topics they wish to track using one of these bullet list formats:
three spaces * [ webname . ] wikiName - SMTP mail address three spaces * [ webName . ] wikiName three spaces * SMTP mail address three spaces * SMTP mail address : topics three spaces * [ webname . ] wikiName : topics
In the above examples, topics is a space-separated list of topic names. The user may further customize the specific content they will receive using the following formats:
Specify topics without a Web. prefix
Topics must exist in this web.
Topics may be specified using * wildcards
Each topic may optionally be preceded by a '+' or '-' sign. The '+' sign means "subscribe to this topic" (the same as not putting anything). The '-' sign means "unsubscribe" or "don't send notifications regarding this topic". This allows users to elect to filter out certain topics (and their children, to an arbitrary depth). Topic filters ('-') take precedence over topic includes ('+').
Each topic may optionally be followed by an integer in parentheses, indicating the depth of the tree of children below that topic. Changes in all these children will be detected and reported along with changes to the topic itself. Note This uses the TWiki "Topic parent" feature.
Each topic may optionally be immediately followed by an exclamation mark ! or a question mark ? with no intervening spaces, indicating that the topic (and children if there is a tree depth specifier as well) should be mailed out as complete topics instead of change summaries. ! causes the topic to be mailed every time even if there have been no changes, ? will mail the topic only if there have been changes to it. This only makes sense for subscriptions.
For example:
Subscribe Daisy to all changes to topics in this web.
* daisy.cutter@flowers.com
Subscribe Daisy to all changes in all webs that start with Web.
* daisy.cutter@flowers.com: Web*
Subscribe Daisy to changes to topics starting with Petal, and their immediate children, WeedKillers and children to a depth of 3, and all topics that match start with Pretty and end with Flowers e.g. PrettyPinkFlowers
Subscribe Daisy to the full content of NewsLetter whenever it has changed
* daisy@flowers.com: TWiki.NewsLetter?
Subscribe buttercup to NewsLetter and its immediate children, even if it hasn't changed.
* buttercup@flowers.com: TWiki.NewsLetter! (1)
Subscribe GardenGroup (which includes Petunia) to all changed topics under AllnewsLetters to a depth of 3. Then unsubscribe Petunia from the ManureNewsLetter, which she would normally get as a member of GardenGroup? :
A user may be listed many times in the WebNotify topic. Where a user has several lines in WebNotify that all match the same topic, they will only be notified about changes that topic once (though they will still receive individual mails for news topics).
If a TWiki group is listed for notification, the group will be recursively expanded to the e-mail addresses of all members.
Tip: List names in alphabetical order to make it easier to find the names.
Note for System Administrators: Notification is supported by an add-on to the TWiki kernel called the MailerContrib. See the MailerContrib topic for details of how to set up this service.
Note: If you prefer a news feed, point your reader to WebRss (for RSS 1.0 feeds) or WebAtom (for ATOM 1.0 feeds). Learn more at WebRssBase and WebAtomBase, respectively.
These settings override the defaults for this web only. See full list of defaults with explanation. Many of the settings below are commented out. Remove the # sign to enable a local customisation.
Web-specific background color: (Pick a lighter one of the StandardColors).
Set WEBBGCOLOR = #D0D0D0
Note: This setting is automatically configured when you create a web
Image, URL and alternate tooltip text of web's logo. Note: Don't add your own local logos to the TWikiLogos topic; create your own logos topic instead.
List this web in the SiteMap. If you want the web listed, then set SITEMAPLIST to on, do not set NOSEARCHALL, and add the "what" and "use to..." description for the site map. Use links that include the name of the web, i.e. Education/CP1415.Topic links. Note: Unlike other variables, the setting of SITEMAPLIST is not inherited from parent webs. It has to be set in every web that is to be listed in the SiteMap
Set SITEMAPLIST = on
Set SITEMAPWHAT = Cálculo de Programas
Set SITEMAPUSETO = Licenciaturas em Engenharia Informática e Ciências da Computação
Note: Above settings are automatically configured when you create a web
Exclude web from a web="all" search: (Set to on for hidden webs).
Set NOSEARCHALL =
Note: This setting is automatically configured when you create a web
Prevent automatic linking of WikiWords and acronyms (if set to on); link WikiWords (if empty); can be overwritten by web preferences:
#Set NOAUTOLINK =
Note: You can still use the [[...][...]] syntax to link topics if you disabled WikiWord linking. The <noautolink> ... </noautolink> syntax can be used to prevents links within a block of text.
Default template for new topics for this web:
WebTopicEditTemplate? : Default template for new topics in this web. (Site-level is used if topic does not exist)
Comma separated list of forms that can be attached to topics in this web. See TWikiForms for more information.
Set WEBFORMS =
Users or groups who are not / are allowed to view / change / rename topics in the Education/CP1415 web: (See TWikiAccessControl). Remove the # to enable any of these settings. Remember that an empty setting is a valid setting; setting DENYWEBVIEW to nothing means that anyone can view the web.
Preferences are used as TWikiVariables by enclosing the name in percent signs. Example:
When you write variable %WEBBGCOLOR% , it gets expanded to #D0D0D0
The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since %WEBCOPYRIGHT% uses the %WIKIWEBMASTER% variable.
You can introduce your own preferences variables and use them in your topics and templates.
TWiki search results for \.*
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415
The Education/CP1415 web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.en-usCopyright 2020 by contributing authorsTWiki Administrator [webmaster@di.uminho.pt]The contributing authors of TWikiTWikiDIUM.Education/CP1415
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415
/twiki/pub/Main/LocalLogos/um_eengP.jpgAlunos
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Alunos
Alunos As classificações constantes desta página foram removidas no final do ano lectivo. Trabalho prático (TP) Avaliação do TP Defesa : os DDHHMM de cada defesa ... (last changed by JoseNunoOliveira)2019-07-07T09:22:19ZJoseNunoOliveiraAtendimento
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Atendimento
Horário de Atendimento Em qualquer altura: via correio electrónico pressionando aqui. Qualquer outro meio de contacto será considerado informal, não se sentindo ... (last changed by JoseNunoOliveira)2019-05-11T21:26:08ZJoseNunoOliveiraWebSideBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebSideBar
Tópicos Apresentação Contacto Alunos Sumários Horário Docentes Atendimento Material principal no Catálogo UM ... (last changed by JoseNunoOliveira)2018-10-05T08:16:02ZJoseNunoOliveiraAvisos
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Avisos
13 Set Época especial, notas finais: verAlunos. 5 Set O Exame da época especial terá lugar dia 7 Set, às 14h00, na sala CP1 308. 23 Jul Orais: as orais ... (last changed by JoseNunoOliveira)2018-10-05T08:15:31ZJoseNunoOliveiraMaterialPedagogico
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/MaterialPedagogico
Material Pedagógico Fichas das aulas práticas Ficha 1 (revisões de PF) Ficha 2 Ficha 3 Ficha 4 Ficha 5 Ficha 6 Ficha ... (last changed by JoseNunoOliveira)2018-06-26T17:05:16ZJoseNunoOliveiraBibliografia
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Bibliografia
Bibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Os capítulos deste livro ... (last changed by JoseNunoOliveira)2017-05-05T13:01:07ZJoseNunoOliveiraEquipaDocente
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/EquipaDocente
Docentes Docente Código Serviço Cursos Soares Barbosa 406023 Aulas TP LEI Nuno Oliveira 406006 Aulas T, TP LCC, LEI ... (last changed by JoseNunoOliveira)2015-05-25T09:20:11ZJoseNunoOliveiraWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebHome
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2014/15 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ... (last changed by JoseNunoOliveira)2015-04-26T08:59:25ZJoseNunoOliveiraCalendario
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Calendario
Sumários da disciplina Formato PDF : a disponibilizar oportunamente Formato ICS : a disponibilizar oportunamente Actualização contínua no calendário: JoseNunoOliveira ... (last changed by JoseNunoOliveira)2015-02-20T10:20:44ZJoseNunoOliveiraRegimeAvaliacao
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/RegimeAvaliacao
Regime de Avaliação A nota final terá uma componente teórica (T) e uma componente prática (TP). O trabalho de grupo (TP) é obrigatório, será avaliado em prova oral ... (last changed by JoseNunoOliveira)2015-02-17T11:12:28ZJoseNunoOliveiraHorarioSalasDocentes
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/HorarioSalasDocentes
Horário e turnos Curso Turno Dia Hora Sala Docente LEI T1 3ª feira 14h00 16h00 ... (last changed by JoseNunoOliveira)2015-02-12T18:15:00ZJoseNunoOliveiraWebPreferences
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebPreferences
Education/CP1415 Web Preferences The following settings are web preferences of the Education/CP1415 web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)2015-02-11T18:40:36ZAlcinoCunhaWebTopicActions
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebTopicActions
(last changed by AlcinoCunha)2007-05-18T08:03:35ZAlcinoCunhaWebCss
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebCss
.natRevision { width:0px; height:0px; overflow:hidden; } .natBreadCrumbs { width:0px; height:0px; overflow:hidden; } .avisos { color: #444; font size ... (last changed by AlcinoCunha)2007-02-16T14:32:59ZAlcinoCunhaWebTopBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebTopBar
(last changed by AlcinoCunha)2007-02-13T14:43:04ZAlcinoCunhaWebLeftBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebLeftBar
Apresentação Sumários Projectos Material (last changed by AlcinoCunha)2007-02-13T10:35:33ZAlcinoCunha
As classificações constantes desta página foram removidas no final do ano lectivo.
Trabalho prático (TP)
Avaliação do TP
Defesa: os DDHHMM de cada defesa encontram-se afixados aqui. É possível fazer trocas entre slots" até amanhã às 18h00 - pf enviar email ao regente da discipina indicando os 2 grupos que pretendem trocar entre si. O horário só ficará definitivo a partir dessa hora.
Local: dia 3-Jun -- Anfiteatro A1; dia 5-Jun -- sala DI 0.02.
Entrega do TP
Data limite: dia 31 Mai 2015, até às 23h59m.
Instruções para a entrega: um e um só elemento de cada grupo deverá fazer 'upload' em http://www.di.uminho.pt/submissaotrabalhos/ de um único ficheiro zip contendo a sua versão do ficheiro lhs dado como enunciado e do pdf respectivo.
Esse ficheiro zip deverá ter o nome cp1415tXX.zip, onde XX designa o grupo. Exemplos: o grupo G01 enviará o ficheiro cp1415t01.zip, o G99 enviará cp1415t99.zip etc.
O endereço acima está já operacional. O aluno que submete deverá receber uma mensagem automática de confirmação, à qual não é preciso - nem deve - responder.
Qualquer dificuldade técnica que porventura surja deverá ser comunicada à equipa técnica do DI (Eng. José Luís Faria, jose AT di DOT uminho DOT pt).
Alunos e grupos
Eventuais trocas entre elementos dos grupos que se seguem terão que ser comunicadas até à data limite de 1-Maio (NB: os grupos que foram comunicados com mais/menos do que 3 elementos estão sujeitos a re-estruturação, apresentando-se a versão corrente.)
Grupos CP
G01
a27678
Sandra Manuela Silva Machado
a60071
Renato João Gonçalves Santos Silva
a65194
João Miguel Campos dos Reis
G02
a32652
Pedro Duarte Cardoso Lopes
a51790
Manuel João Ferreira Macedo
a61017
Nuno Miguel Abreu Moreira
G03
a38573
Nelson Duarte Cardoso da Mota
a40616
Luis Manuel Camelo Martins
a62819
Luís Miguel Fernandes Vieira
G04
a41841
João Carlos Castro Catarino Rua
a66822
Miguel Espinheira Guimarães
a67650
Carlos Manuel Magalhães Gonçalves
G05
a43548
Jaerder Nunes Sousa
a52834
Pedro Miguel Duarte Mendonça
a56444
Ramon Gama Rodrigues
G06
a49333
Bernardino Marques Fernandes
a54764
Nelson Daniel de Carvalho Vieira
a72864
Daniel Carvalho da Cruz
G07
a51752
John Camilo Ferreira Maia
a51782
Daniel Pereira Andrade
a51814
Ricardo Torres Varzim Faria
G08
a52985
Jorge Miguel Barreiro Ferreira
a58680
David Rodrigues
a60201
Tiago Filipe Martins Moreira
G09
a53791
David Miguel Duarte Rodrigues Alves
a64300
Janine Marlene Duarte da Silva Freitas
a64365
Fernanda Raquel Cerdeira Alves
G10
a54003
Daniel Pinheiro Casanova
a70513
Pedro Miguel Pereira Luís de Almeida Araújo
a70719
Diogo Ramos Constâncio
G11
a54056
Luis Filipe Ferreira Brito
a61043
Paulo Gonçalves Cardoso
a64385
Gustavo Diogo Braga Martins Dias dos Santos
G12
a54713
Tiago Filipe Alves Fonseca da Silva Augusto
a67638
José Carlos Pedrosa Lima de Faria
a67673
André José Ferro Geraldes
G13
a54718
Lázaro Tomé Alves Azevedo
a64296
André Miguel Vila Cova Ferreira
a64345
Pedro Miguel Pereira da Silva
G14
a54723
Rui Gomes Duarte
a64282
Paulo Henrique Alves Lacerda
a67683
César Eduardo da Silva Magalhães
G15
a55522
Ana Isabel Lobo de Castro
a57127
Joana Margarida Miguel
a67722
Luís André Vieira e Mendonça
G16
a55718
Hugo Miguel Gomes Almeida Mendes
a61035
Pedro Santos Arezes Costa
a61083
Tiago Manuel Monteiro Ferreira de Oliveira
G17
a55842
Hugo Ricardo Moutinho Teixeira
a68684
Luísa Maria Carvalho Fernandes
a68694
Solange Ferreira da Silva
G18
a57041
Simão Pedro Santa Cruz Oliveira
a61032
Tiago Filipe Gonçalves Vilar Pereira
a61080
José Paulo Pinheiro Truta
G19
a57767
Miguel Ângelo Ferreira Dias Ribeiro
a72327
Carlos Miguel Gonçalves Ribeiro
a76106
João Henrique Ribeiro Valente
G20
a60407
Isac Fernando Nogueira Carneiro
a62137
Hugo Ricardo Lemos Araújo
a63385
André Oliveira Rego
G21
a60982
Norberto João Sobral
a61044
Diogo Santos Tavares
a61061
Pedro Rites Lima
G22
a60988
Agostinho Abílio Cardoso Fernandes
a61024
Sérgio Lucas dos Santos Oliveira
a61046
Rui Miguel Moura Mendes
G23
a61006
Simão Pedro do Carmo de Pinho Dias
a66669
André Filipe Ribeiro Costa
a67664
Bruno André Araújo Henriques
G24
a61029
William Rodrigues Sousa
a70563
Adelino João Faria da Costa
a72205
Luís Martinho de Aragão Rego da Silva
G25
a61067
Pedro José Costa de Oliveira
a72293
Daniel Cerveira Furtado Malhadas
a72502
Alexandre Romain Lucas Ventosa da Silva
G26
a61778
André Ribeiro Ferraz da Cunha Santos
a67635
Mariana Imperadeiro Carvalho
a67727
João Miguel Gonçalves Fernandes
G27
a61799
Rafael Braga Gomes da Costa
a61855
Ana Paula da Costa Leal de Carvalho
a61887
Carlos Duarte Afonso Pereira
G28
a62120
Bruno Miguel Peixoto Henriques
a64303
Flávia Daniela da Silva
a64330
Fábio Diogo Peixoto Dias
G29
a62132
João Manuel da Cunha Pedro Ribeiro
a62162
João Pedro Cerqueira Pinto
a68686
Claúdia Sofia Maia da Costa
G30
a62134
Sérgio Diogo Gomes Oliveira
a63045
Bento Alves Lima
a63374
Luís Carlos Oliveira Carvalho
G31
a64287
David António Cardoso Moreira
a64319
Duarte Cunha da Silva Moças
a64343
Jorge Miguel da Silva Ferreira
G32
a64299
Mário Nelson Araújo Santos
a64341
João Daniel Cardoso Borges Fernandes
a64367
Pedro Nicolau Machado Carvalho
G33
a64309
Pedro Vieira Fortes
a67847
Bruno Renato Fernandes Carvalho
a71184
João Pedro Pereira Fontes
G34
a64336
João Pedro Moutinho Alves
a64349
Nuno Miguel Fernandes Monteiro
a64377
José Pedro Castro e Sousa
G35
a64344
Carlos Daniel Azevedo Ferreira
a67710
Miguel António Oliveira Antunes da Silva
a67715
Pedro Gomes Antunes
G36
a64391
Bruno Veríssimo Gonçalves
a71548
Luís Miguel Rodrigues Cracel Viana
a73269
Bruno Manuel Gonçalves Ribeiro
G37
a65432
João Manuel Martins Cerqueira
a65450
Cláudio Oliveira Fernandes
a72053
Ângela Andrade de Carvalho Fernandes
G38
a65443
Maria João Fernandes Araújo
a66694
Paulo Filipe Martins de Sousa
a66700
Daniel Filipe Gomes Magalhães
G39
a65453
Pedro Manuel Soares Antunes de Castro Gomes
a66695
Carlos Gabriel da Silva Pereira
a71191
Tiago Costa Loureiro
G40
a66093
Luís Filipe de Azevedo Martins
a68700
Alexandra Cristina Tâmega Magalhães Meireles
a70373
Alexandre Rodrigues Balde
G41
a66823
Pedro José da Mota Lino
a71164
Jéssica Martins Pereira
a73476
Hugo Miguel Esteves Rodrigues
G42
a67634
Daniel Gonçalves Rodrigues
a67717
Pedro Miguel da Rocha Ribeiro
a67725
Xavier Neves Francisco
G43
a67641
Miguel Ângelo de Brito Machado
a67682
Nuno Miguel da Costa Campos
a67751
Pedro Nuno Rodrigues da Silva
G44
a67647
Bruno Manuel Macedo do Nascimento
a67686
Filipe Manuel Gonçalves de Oliveira
a67703
Vítor Hugo de Castro Rodrigues
G45
a67649
Nuno André da Silva Oliveira
a67714
João Pedro Monteiro Miranda
a67741
João Tiago Cruz Cunha
G46
a67654
André Rodrigues Soares
a67656
Rui Alves dos Santos
a68410
Manuel Maciel Roriz Oliveira
G47
a67663
Adriano Dias Teixeira
a71346
Tiago Jorge Martins Araújo
a73312
Ângelo Dias Teixeira
G48
a67672
Márcia Maria Fernandes da Costa
a67687
José Gabriel Sá Santos
a68876
Beatriz Ribeiro Pires Loureiro
G49
a67676
Xavier Passos Rodrigues
a67723
Rafael Joaquim Pereira de Macedo
a72628
Bruno Plácido Gomes Pereira
G50
a67695
José Alexandre da Silva Mirra
a67747
Rui Manuel Abreu Pereira
a67752
José Azevedo Lima
G51
a68682
Filipe Abreu Lemos
a68690
António Pedro Adães de Sá Gomes de Oliveira
a68710
Ricardo Miguel da Silva Pereira
G52
a68692
José Manuel Costa Simões
a68702
Nuno Alexandre Pereira Machado
a70069
Isac Pereira Oliveira Meira
G53
a68695
Diogo José Leite Oliveira Araújo
a68703
Renato Mendes Pinheiro
a70067
Filipe Gonçalves de Macedo
G54
a68698
Joel Filipe Pimenta Carvalho
a70058
Daniel da Fonte Torres
a70060
Elsa Maria Ferreira Amorim
G55
a68913
Carlos Jorge Rodrigues Martins
a70743
Carlos Manuel Oliveira Leite
a71899
Carlos António Senra Pereira
G56
a70066
Pedro Micael Carvalho Fernandes
a70073
Paulo André Pinto Barbosa
a70400
João Nuno Barbosa Teixeira Gomes
G57
a70377
André Filipe Proença e Silva
a70804
Luís Manuel de Carvalho Ribeiro
a71074
Sebastião Mendes de Freitas
G58
a70387
Afonso João Borges Cabral Cerejeira da Silva
a71509
Cláudia Azevedo Marques
a71926
Cecília Catarina Domingues Marciel
G59
a70415
Luís Paulo Ferreira Pedro
a72443
José Miguel da Silva Santos
a73014
José Pedro Santos Monteiro
G60
a70430
João Bernardo Machado Quintas Dias da Costa
a70672
Tiago Alexandre Fernandes Lima
a71240
Rui Jorge Cerqueira Soares
G61
a70443
Tiago João Lopes Carvalhais
a71223
José Carlos da Silva Brandão Gonçalves
a72223
Gustavo da Costa Gomes
G62
a70500
Bruno Jorge Barros de Azevedo
a71580
Rafael Alexandre Antunes Barbosa
a71751
André Miguel Bonjardim Pinto
G63
a70580
Andreia Filipa Pereira de Barros
a70880
João Pedro Alves Fernandes
a71927
Tânia da Conceição Araújo Esteves
G64
a70676
Marcos de Morais Luís
a71664
Nelson Manuel Figueiredo Silva
a72384
César Augusto Lourenço Cachulo
G65
a70712
Francisco José Torres Ribeiro
a71418
Rui António Ramada Rua
a72307
Rafael Mota Oliveira
G66
a70754
Eduardo Jorge Pereira Lopes
a70779
João Miguel Gomes Maciel
a73194
Ângelo Rafael da Silva Coelho
G67
a70949
Leandro Augusto Oliveira Salgado
a72062
Ricardo Dinis Oliveira Lopes
a73236
Humberto João Alves Vaz
G68
a70951
Pedro Miguel Lopes Pereira
a71329
Diogo Silva Meira
a71625
Nelson Arieira Parente
G69
a71015
Beatriz Abreu Aarão
a71417
Madalena Freitas Castro
a71634
Lúcia Martins Videira de Abreu
G70
a71020
André Alexandre Pinheiro Marinho
a71874
João Miguel Afonso
a72187
José Carlos Araújo Lima
G71
a71142
Carlos Miguel Barbosa Araújo
a71847
José Miguel Matos Ventura
a73000
Alberto Emanuel Ferreira Pinto
G72
a71220
José Luís Nunes Silva
a71553
Daniel Filipe Vilar Tavares
a72362
Miguel Martins Costa
G73
a71369
Octávio José Azevedo Maia
a71655
Alfredo Miguel Macedo Gomes
a71802
Pedro Manuel Calheiros da Rocha
G74
a71492
Gabriel Dias Fernandes
a71940
Eduardo de Lima Cunha
a72620
Mário Jorge Dias Real
G75
a71752
João Miguel Amorim Noivo
a72204
José Paulo Queiroga Amorim Fernandes
a72261
Armando Mário Teniz Queirós
G76
a71848
Pedro Filipe Teixeira Costa
a72067
Paulo Miguel Novais Gameiro
a72925
Pedro Miguel Braga do Vale
G77
a71862
João Emanuel da Silva Mendes
a72227
Diogo Filipe da Silva Vilaça
a72424
José Nuno Castro de Macedo
G78
a71930
André Francisco Soares Carvalho Alves Teixeira
a72376
Nuno José Vilela da Cunha
a73434
Luís Alberto Oliveira Rocha Esquível Costa
G79
a72023
João Manuel Ferreira da Silva
a72095
João Tiago Pereira Dias
a72399
Rui Jorge Araújo Freitas
G80
a55856
Ricardo Sousa Fortunato
a57154
André Vaz Teixeira
a65434
Daniel Filipe Morais Faria
G81
a48310
Filipe Manuel da Costa Santos
a58657
José Ricardo Oliveira Gonçalves
a64286
Helder Daniel Domingues Gonçalves
G82
a62154
Diogo Lopes Ferreira
a65446
João Pedro Braga Carvalho Vieira
a66699
Jorge Miguel Azevedo Leite
G83
a53668
João Pedro Gomes Meireles
a57754
Luís Gonçalo Ferreira Mendes
a57816
Filipe Costa Oliveira
G84
a68691
Luís Carlos da Silva Marques
a70644
Ruben Miguel Cunha Santos
a70866
Pedro Manuel Reis Lopes Bragança
G85
a69858
João Luís Silva Ribeiro
a71604
Diogo José Linhares Couto
a71794
Bruno Miguel Alves Ferraz
G86
a64335
Jorge Pedro Ribeiro Nunes Simão
a64357
João Pedro Pinto Póvoa
a64383
André Daniel Freitas Ferreira
G87
a60991
Rafaela Medeiros Guerra
a61003
Emanuel Queiroga Amorim Fernandes
a62153
Filipe Daniel da Silva Rosa Neco Mota
G88
a60995
Ricardo Araújo Silva
a67660
António Manuel Pereira do Anjo
a67740
João Carlos Silva Monteiro
G89
a67662
Adriana Eliana Fernandes Pereira
a70835
Ana Filipa Novo Pereira
a72873
Ana Filipa Rodrigues Gomes
G90
a61066
Nuno Alberto Pires Fernandes
a64310
Nuno Miguel Rodrigues da Silva
a67671
Alberto Rui Vilaverde Monteiro da Silva
G91
a70390
José Duarte Mendes de Azevedo
a70441
Mário Jorge Viana Ferreira
a71835
Tiago Filipe Oliveira Sá
G92
a51216
Geovani Silva Delgado Alves
a57758
André Fafe Fernandes Ferreira de Melo
a61013
Luis Lisandro Ferreira da Silva Alves
G93
a61074
Jorge Rafael Chaves de Oliveira
a67637
Célia Natália Lemos Figueiredo
a67712
João Carlos Gonçalves Pimentel
G94
a65059
Carlos Filipe Gomes da Silva
a70363
Hugo Manuel Ramos Vilas Boas Gonçalves
a71841
André Brandão de Pinho
G95
a51769
João Paulo Pereira Bastos
a51781
Daniel Rodrigues Silva
a66553
Carlos Manuel dos Santos Silva
G96
a61077
João Miguel Ferreira Lopes
a64358
João Nicolau de Araújo Afonso
a64360
Gabriel Martins Pinto
G97
a71407
Maurício Zulueta Lima Salgado
a71929
Pedro Daniel Silva Pinto
a72028
Nuno Jorge Pereira Oliveira
G98
a70853
Hugo Filipe da Silva Ribeiro
a71538
Rui Jorge Mota Gama
a7576
João Miguel de Sousa Faria
G99
a36548
Ariano Soares Lopes
a39293
Adérito Francisco Silves Ferreira Carvalho de Melo
a47423
Tiago Moreira Correia Tulha
Registo dos grupos para trabalho prático
Até ao dia 17 de Abril (inclusive), cada grupo deverá enviar uma mensagem ao docente responsável pela disciplina (jno@di.uminho.pt) contendo, no assunto, um texto no formato
seguinte
CP1415 GrupoCP a99999 a99999 a99999
onde os 99999 devem ser substituídos pelos números mecanográficos dos alunos do grupo.
O corpo da mensagem pode vir vazio pois não será processado.
Em qualquer altura: via correio electrónico pressionando aqui. Qualquer outro meio de contacto será considerado informal, não se sentindo a equipa docente vinculada a dar uma resposta em tempo útil.
Durante o período de aulas: de acordo com o horário seguinte, sujeito a marcação verbal junto do respectivo docente:
Essa marcação deve ser feita previamente (eg. por email) com um mínimo de uma semana de antecedência.
Atendimento electrónico (FAQs)
Q01 - Estou sem conseguir resolver a questão 8 do teste de 2011/12: definir um anamorfismo de naturais como um catamorfismo de listas. Tentei usar a lei universal-ana(44) mas fiquei bloqueado a meio.
R: Sim, universal-ana (naturais) é bom começo (expandindo out = [nil,cons]º ):
f = [( (id+p2). [nil,cons]º )]
== { universal-ana (naturais); álgebra in dos naturais é [0,succ] }
f = in. (id + f ) . (id+p2). [nil,cons]º
== { passando isomorfismo [nil,cons]º para o outro lado, "trocando o sinal" }
f . [nil,cons] = in. (id + f ) . (id+p2)
Aqui começa a preparação das coisas para se obter f como catamorfismo de listas. A dificuldade desta questão é que começa com um anamorfismo de naturais (F f = id + f) e termina com um catamorfismo de listas (F f = id + id x f). A mudança de F dá-se a partir do ponto em que se parou acima. Como sempre, as propriedades naturais não se devem ignorar, neste caso a do p2: f.p2 = p2.(g><f).
Continuando:
f . [nil,cons] = in. (id + f.p2)
== { f.p2 = p2.(id><f) , cf. natural-p2 }
f . [nil,cons] = in. (id + p2.(id><f))
== { natural-id; functor-+ }
f . [nil,cons] = in. (id + p2) .(id + id><f))
== { universal-cata }
f = (| in. (id + p2) |)
Q02 - Estou a tentar resolver a questão 6 do teste de 17 de Junho de 2013: fiz os diagramas de cada catamorfismo e chego às definições das funções com variáveis através da lei universal-cata e consigo perceber que realmente fazem a mesma coisa, mas não sei se era assim que era suposto resolver...
R: Não, isso mostra... mas não prova! O que queremos provar é que f=g, sendo ambas catamorfismos. Logo podemos usar a lei-universal aplicada a f ou g, à nossa escolha, por exemplo
f = ([ (const k), id ])
<=> { Universal-cata }
f.in = [(const k), id] . (id + f)
<=> { simplificação }
f.in = [(const k), f]
<=> { cancelamento-cata (f) }
[const k, const k].(id+f) = [(const k), f]
<=> { simplificação seguida de eq-(+) etc }
f = const k
Agora basta verificar se const k = g, pelo mesmo processo.
Q03 - Não consigo resolver o exercício 8 da ficha 7 pois só conheço a definição do undistl e não sei o que fazer com distl.
R: Pois, esta é uma situação em que saber que uma função é um isomorfismo natural é bom (natural quer dizer que tem propriedade natural, ou grátis, isto é, é genérico). Vejamos primeiro em que situação é que aparece distl. Após a aplicação das leis universal-cata, ... eq-+, a segunda igualdade fica assim:
f . cons = [ p2, cons ] . distl . (id + id >< f)
A única maneira de dos livrarmos de distl é "deslocá-lo para uma ponta" e depois passá-lo para o outro lado da igualdade, convertido em undistl, por serem inversos entre si. A estratégia é, então : (a) para mover distl para a direita usar a sua propriedade grátis, que se pode deduzir pelo seu tipo e diagrama do costume; (b) de seguida passa-se distl do lado direito para undistl no lado esquerdo. O que se obterá é desta forma:
f . cons . undistl = [ p2, cons ] . ...........
Como undistl = [ i1 >< id , i2 >< id ], vai haver fusão-+ com f.cons, etc etc o que acabará por dar duas das três linhas da função dada, escrita em pointwise. Fica como exercício.
Q04 - Na questão 7 do exame de recurso de 2011/12 não percebo a primeira parte: instanciar com a função fac a função lms.
R: O que se pretende é resolver a equação
fac = lms p g h i j
em ordem às variáveis p, g, h, i, j - o que é a mesma coisa que encontrar essas funções na equação
fac = p -> g, h.<i,fac.j>
Partimos da definição de fac sem variáveis (onde 1 representa a função constante 1, (const 1)):
fac.in = [1,mul.<succ,fac>]
== { passagem de in para o outro lado (isomorfismo) ; out dos naturais }
fac = [1,mul.<succ,fac>].((=0) -> i1.!,i2.pred)
== { lei do condicional que facilmente se identifica }
fac = (=0) -> [1,mul.<succ,fac>].i1.!, [1,mul.<succ,fac>].i2.pred
Sugestão: corram esta versão no interpretador de Haskell.
Q05 - No exercício 7 (parte 2 do teste de 2010/2011) tentei chegar da função escrita em Haskell à versão point-free mas não consegui.
R: Escolheu a versão mais complicada, já que no sentido inverso é mais simples: faça absorção-cata no lado direito para obter
hwmny p = ([ g ])
(aqui o objectivo é calcular o gene g do catamorfismo). Depois, dessa equação, deriva hwmny p usando a lei universal-cata
e introduzindo variáveis no fim. Importante: como o tipo em causa é LTree, in = [Leaf, Fork] e o functor de base a usar na lei de
absorção-cata é B(f,g) = f + g >< g - ver baseLTree no ficheiro LTree.hs.
Q06 - Tentei resolver o exercicio 6 do exame de 2012 mas não chego ao resultado que era pretendido. De tri f = (| in . B(id,T f) |) inferi, por cancelamento-cata, (tri f) . in = in . B(id,T f) . F(tri f). Sabendo que B(id,T f) = id + id >< T f e F (tri f) = id + id >< tri f (listas) chego a [tri f . nil, tri f . cons] = [nil, cons . (T f x tri f) ] de onde não consigo chegar ao código Haskell dado.
R: O engano está no cálculo da composição
B(id,T f) . F (tri f)
que deverá dar
id + id >< (T f . (tri f))
e não
id + (T f) >< (tri f)
Resolvido este engano, deverá ser imediato.
Q07 - No exercício 6 do teste de 2012/13 eu faço f = g, universal-cata, cancelamento-cata, absorção-+, const k . f = const k e obtenho o resultado [const k, const k] = [const k, f]. O que estou a fazer de errado?
R: Nada, só falta acabar: por cancelamento-+ obtém const k = const k (trivialmente verdadeiro) e
const k=f. Isto é: a igualdade f=g é equivalente a f=const k. Por transitividade da equivalência obtém também g=const k, logo as duas funções são iguais à função constante k.
Q08 - No exercício 4 do mesmo teste podemos partir de qualquer propriedade da exponenciação (cancelamento por exemplo)? Ou partimos da igualdade curry f a b = f (a,b)?
Q09 - O functor F p1 é igual a id + (p1><p1) e o F p2 = id + (p2 >< p2) ?
R: É isso se estiver a trabalhar com LTrees, pois B(f,g) = f + g><g para essa estrutura e F f = B(id,f). Para outras estruturas terá que ver seu functor de base B(f,g) e calcular o respectivo F f.
Q10 - *LTree p1 = (| in . (p1 + id) |)*, da pergunta 9 do teste resolvido do ano 2012/13, foi deduzido ou trata-se de matéria teórica que devemos saber?
R:LTree p1 = (| in . (p1 + id) |) é um caso particular de functor de tipo, deduzido a partir da sua definição no formulário T f = (| in.B(f,id) |). Como se viu na FAQ anterior, B(f,id) = f + id><id para este tipo de árvores (T = LTree). Como id><id=id, o cálculo é imediato.
Q11 - No mini-teste de 2012/13, na questão 6, como é que mostro que max . const(0,0) = const 0?
R: Não esquecer as propriedades naturais da função constante, entre elas esta: f.(const k) = const (f k).
Assim, max . const(0,0) = const(max(0,0)) = const 0.
Q12 - Venho por este meio pedir um breve esclarecimento acerca do exercício nrº 1 da ficha 5, pois não estou a conseguir pegar no exercício e chegar à propriedade natural a partir do diagrama.
R: A abordagem tem duas partes: primeiro, saber qual o tipo de ▽; de seguida, inferir a propriedade natural a partir desse tipo. Ora é dado que ▽ · i1 = id e ▽ · i2 = id. Pela lei universal-+ obtemos ▽ = [id, id]. Logo o tipo de ▽ é A + A -> A. A segunda parte - derivar a propriedade natural de ▽ deverá ser simples.
Q13 - Não consigo provar a igualdade da questão 5 da ficha 12 nem perceber de que função constante se trata.
R: Primeira parte: para provar curry π2 · f = curry π2 recorremos à lei de fusão da exponenciação, cf:
curry π2 · f
= { fusão-exp }
curry (π2.(f >< id))
= { natural-π2 ; natural-id }
curry π2
Segunda parte: que função constante é curry π2? Vejamos: (curry π2 a) b = π2(a,b) = b. Logo curry π2 a transforma sempre b em b: é a função identidade. Em suma: curry π2 = const id.
Q14 - Não consigo mostrar que f e g são a mesma função na alínea c) da questão 4 da ficha nrº5. Tentei usar a função da questão 9 da ficha nº4 mas também não resultou.
R: Há que usar o cálculo de catamorfismos, pois é muito mais rápido que o uso de definições indutivas como a dessa questão.
Queremos mostrar antes de mais que f = g. Como f e g ambas são catamorfismos, podemos usar a lei universal cata, começando pelo que queremos mostrar (objectivo da prova):
f = g
== { g = for (const i) i = cata [const i, const i] }
f = cata [const i, const i]
== { universal-cata }
f . in = [const i, const i]. (id + f)
== { f = for id i = cata [ const i, id ] ; cancelamento-cata }
[ const i, id ] . (id + f) = [const i, const i]. (id + f)
Logo f = g <=> f = const i: ambas as funções inicializam o ciclo a 'i' e o resultado não se altera, é sempre 'i'.
(experimentem na biblioteca Nat.hs e verão que eg. for 0 id 5 = 0, for 0 (const 0) 5 = 0 etc.)
5-Set - O Exame da época especial terá lugar dia 7-Set, às 14h00, na sala CP1-308.
23 Jul - Orais: as orais terão lugar na sala DI 1.08.
21 Jul - Notas finais: ver Alunos. Os alunos marcados com "oral" deverão comparecer no DI sexta-feira dia 24-Jul às 15h da tarde. A sala será indicada brevemente.
17 Jul - Consulta do exame de recurso: será segunda-feira, dia 20-Jul, das 08h às 12h, na sala DI 1.08.
17 Jul - Notas do exame de recurso de 07-Jul: ver Alunos
06 Jul - Exame de recurso amanhã, 07-Jul, às 16h00: terá lugar nas salas da cantina de Gualtar. O exame é sem consulta exceptuando o formulário disponível no material pedagógico da disciplina, que os alunos deverão trazer consigo impresso.
04 Jul - Publicado no Material Pedagógico o enunciado do teste de 16-Jun, com a correcção.
01 Jul - Sessão para ver o teste: será amanhã, dia 2-Jul, das 14h às 16h, na sala DI 0.11.
15 Jun - Teste amanhã, 20h: o teste é sem consulta exceptuando o formulário disponível no material pedagógico da disciplina, que os alunos deverão trazer consigo impresso.
14 Jun - Alteração da hora do teste: por falta de salas, o teste de CP será realizado no mesmo dia em horário pós-laboral: 20h00 às 22h30, dia 16-Jun, salas CP2 201, 202 e 203 (ou 204).
14 Jun - Anúncio de aulas suplementares: LEI: turnos TP4 e TP5, dia 15 de Junho, das 11:00 - 13:00, na sala 103 do CPI; LCC: turno TP1, dia 15 de Junho, das 11:00 - 13:00, na sala 103 do CPI.
11 Jun - Data e hora do Teste de CP: Ter, 16 de junho, 18:00-20:00.
10 Jun - Estão a ser publicadas FAQs sobre exercícios em Atendimento.
01 Jun - LCC, Turno TP2: chama-se a atenção dos alunos para a aula suplementar que terá lugar dia 4-Jun das 15h30 às 17h30 na sala CP1 104 - ver Sumários.
01 Jun - Defesas dos TPs: ver horário das orais em Alunos.
29 Mai - Instruções para entrega do TP: ver Alunos.
24 Mai - Publicada no Material a ficha nr.12, a preparar para as aulas TP da última semana de aulas.
24 Mai - Data limite para entrega do trabalho prático: 31 Mai 2015, até às 23h59m. Detalhes em Material.
21 Mai - Horário de apoio ao projecto: sala DI 0.02 nos períodos indicados no calendário da disciplina.
17 Mai - Publicada no Material a ficha nr.11, a preparar para as aulas TP da semana de 18-Mai.
05 Mai - LEI, Turnos TP1 e TP2: chama-se a atenção dos alunos para a alteração da hora da aula de reposição amanhã de tarde, que será às 16h00 e não às 14h00 como inicialmente previsto - ver Sumários.
02 Mai - Publicada no Material a ficha nr.10, a preparar para as aulas TP da semana de 04-Mai.
29 Abr - LEI, Turnos TP1 e TP2: chama-se a atenção dos alunos para novas alterações (temporárias) no horário destes turnos e para as aulas de substituição previstas nos Sumários.
28 Abr - Publicado na Bibliografia o último capítulo ( 450K) dos apontamentos.
26 Abr - Publicada no Material a ficha nr.9, a preparar para as aulas TP da semana de 27-Abr.
25 Abr - Trabalho prático: enunciado e material publicados em Material
24 Abr - Publicados os grupos de trabalho em Alunos
24 Abr - Informação sobre Trabalho prático: ver Material
19 Abr - Publicada no Material a ficha nr.8, a preparar para as aulas TP da semana de 20-Abr.
15 Abr - LEI, Turnos TP1 e TP2: chama-se a atenção dos alunos para as alterações (temporárias) no horário destes turnos e para as aulas de substituição previstas nos Sumários.
12 Abr - Publicada no Material a ficha nr.7, a preparar para as aulas TP da semana de 13-Abr.
09 Abr - Registo de grupos para trabalho prático: ver Alunos
04 Abr - Publicada no Material a ficha nr.6, a preparar para as aulas TP da semana de 07-Abr.
20 Mar - Publicada no Material a ficha nr.5, a preparar para as aulas TP da semana de 23-Mar.
16 Mar - Publicado na Bibliografia mais um capítulo ( 550K) dos apontamentos.
14 Mar - Publicada no Material a ficha nr.4, a preparar para as aulas TP da semana de 16-Mar.
07 Mar - Publicada no Material a ficha nr.3, a preparar para as aulas TP da semana de 9-Mar.
27 Fev - Publicada no Material a ficha nr.2, a preparar para as aulas TP da semana de 2-Mar.
J.N. Oliveira. Program Design by Calculation. Departamento de Informática, Universidade do Minho. Os capítulos deste livro (em preparação) essenciais para esta disciplina no corrente ano lectivo são o segundo ( 504K), o terceiro ( 550K) e o quarto ( 450K).
Bibliografia complementar
A. Cunha. Cálculo de Programas: notas teórico-práticas. Departamento de Informática, Universidade do Minho, 2005. (290k).
R. Bird and O. de Moor. Algebra of Programming. Series in Computer Science. Prentice-Hall International, 1997. C. A. R. Hoare, series editor. BGUM 510.5-B
St.hs - contendo uma versão simplificada do mónade de estado (NB: demos.hs foi actualizada com um exemplo de catamorfismo sobre o mónade de estado).
demos.hs - contendo material auxiliar para a visualização em HTML da estrutura de dados virtual (intermédia) dos hilomorfismos qSort, hanoi, mSort etc das bibliotecas BTree.hs e LTree.hs. Experimentar qSort_vtree [6,3,9,1,7,18] e hanoi_vtree (True, 7), por exemplo. Encontrar-se-á a visualização no ficheiro _.html da directoria corrente.
BTree.hs - biblioteca contendo os cata/ana/hilomorfismos do tipo de dados árvores binárias - data BTree a = Empty | Node(a, (BTree a, BTree a)), e aplicações suas (e.g. torres de Hanói, `quick-sort', etc).
LTree.hs - biblioteca contendo os cata/ana/hilomorfismos do tipo de dados árvores binárias de folhas - LTree a = Leaf a | Fork (LTree a, LTree a) e aplicações suas (e.g. duplo factorial, `merge-sort', Fibonacci etc).
List.hs - biblioteca geral para listas em Haskell, contendo combinadores (e.g. catamorfismos) e exemplos de utilização.
Nat.hs - biblioteca de naturais (combinador ciclo-for, etc).
Cp.hs - contendo os combinadores de base do cálculo de programas, e.g. split, ><, -|- etc.
Enunciado o trabalho prático
O material para realização do TP desta disciplina consta de um enunciado (cp1415t.pdf) e de um zip (cp1415t.zip) contendo a respectiva fonte (ficheiro cp1415t.lhs) + outros ficheiros e bibliotecas auxiliares.
Os alunos devem começar por ler cp1415t.pdf para avaliarem o trabalho que há para fazer. Devem ainda deixar para o fim as questões da última parte, cuja matéria só na semana que vem começará a ser leccionada.
A nota final terá uma componente teórica (T) e uma componente prática (TP).
O trabalho de grupo (TP) é obrigatório, será avaliado em prova oral e valerá 40% da nota final. A nota TP mínima é 10 valores.
Os restantes 60% (T) serão avaliados num teste (ou exame de recurso) sem consulta. A nota T mínima é 8 valores.
Os grupos TP serão de 3 alunos cada. As notas TP são individuais, conforme prestação de cada aluno no trabalho e defesa oral.
Melhorias: só se podem fazer à parte T, caso o aluno tenha esse direito; para alunos de anos anteriores, a fórmula de cálculo é a do ano em que a nota a melhorar foi obtida.
Regime de Faltas
Adopta-se o regime geral em vigor na universidade.
TWiki's Education/CP1415 webThe Education/CP1415 web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415Copyright 2020 by contributing authors2020-10-30T14:39:07ZWebStatisticshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebStatistics2020-10-30T14:39:07ZStatistics for Education/CP1415 Web Month: Topic views: Topic saves: File uploads: Most popular topic views: Top contributors for topic ... (last changed by TWikiGuest)TWikiGuestAlunoshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Alunos2019-07-07T09:22:19ZAlunos As classificações constantes desta página foram removidas no final do ano lectivo. Trabalho prático (TP) Avaliação do TP Defesa : os DDHHMM de cada defesa ... (last changed by JoseNunoOliveira)JoseNunoOliveiraAtendimentohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Atendimento2019-05-11T21:26:08ZHorário de Atendimento Em qualquer altura: via correio electrónico pressionando aqui. Qualquer outro meio de contacto será considerado informal, não se sentindo ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebSideBarhttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebSideBar2018-10-05T08:16:02ZTópicos Apresentação Contacto Alunos Sumários Horário Docentes Atendimento Material principal no Catálogo UM ... (last changed by JoseNunoOliveira)JoseNunoOliveiraAvisoshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Avisos2018-10-05T08:15:31Z13 Set Época especial, notas finais: verAlunos. 5 Set O Exame da época especial terá lugar dia 7 Set, às 14h00, na sala CP1 308. 23 Jul Orais: as orais ... (last changed by JoseNunoOliveira)JoseNunoOliveiraMaterialPedagogicohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/MaterialPedagogico2018-06-26T17:05:16ZMaterial Pedagógico Fichas das aulas práticas Ficha 1 (revisões de PF) Ficha 2 Ficha 3 Ficha 4 Ficha 5 Ficha 6 Ficha ... (last changed by JoseNunoOliveira)JoseNunoOliveiraBibliografiahttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Bibliografia2017-05-05T13:01:07ZBibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Os capítulos deste livro ... (last changed by JoseNunoOliveira)JoseNunoOliveiraEquipaDocentehttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/EquipaDocente2015-05-25T09:20:11ZDocentes Docente Código Serviço Cursos Soares Barbosa 406023 Aulas TP LEI Nuno Oliveira 406006 Aulas T, TP LCC, LEI ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebHomehttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebHome2015-04-26T08:59:25ZBenvindo a Cálculo de Programas Bem vindo à página da edição de 2014/15 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ... (last changed by JoseNunoOliveira)JoseNunoOliveiraCalendariohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Calendario2015-02-20T10:20:44ZSumários da disciplina Formato PDF : a disponibilizar oportunamente Formato ICS : a disponibilizar oportunamente Actualização contínua no calendário: JoseNunoOliveira ... (last changed by JoseNunoOliveira)JoseNunoOliveiraRegimeAvaliacaohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/RegimeAvaliacao2015-02-17T11:12:28ZRegime de Avaliação A nota final terá uma componente teórica (T) e uma componente prática (TP). O trabalho de grupo (TP) é obrigatório, será avaliado em prova oral ... (last changed by JoseNunoOliveira)JoseNunoOliveiraHorarioSalasDocenteshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/HorarioSalasDocentes2015-02-12T18:15:00ZHorário e turnos Curso Turno Dia Hora Sala Docente LEI T1 3ª feira 14h00 16h00 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebPreferenceshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebPreferences2015-02-11T18:40:36ZEducation/CP1415 Web Preferences The following settings are web preferences of the Education/CP1415 web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)AlcinoCunhaWebTopicActionshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebTopicActions2007-05-18T08:03:35Z (last changed by AlcinoCunha)AlcinoCunhaWebCsshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebCss2007-02-16T14:32:59Z.natRevision { width:0px; height:0px; overflow:hidden; } .natBreadCrumbs { width:0px; height:0px; overflow:hidden; } .avisos { color: #444; font size ... (last changed by AlcinoCunha)AlcinoCunhaWebTopBarhttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebTopBar2007-02-13T14:43:04Z (last changed by AlcinoCunha)AlcinoCunha
Alunos As classificações constantes desta página foram removidas no final do ano lectivo. Trabalho prático (TP) Avaliação do TP Defesa : os DDHHMM de cada defesa ...
Horário de Atendimento Em qualquer altura: via correio electrónico pressionando aqui. Qualquer outro meio de contacto será considerado informal, não se sentindo ...
13 Set Época especial, notas finais: verAlunos. 5 Set O Exame da época especial terá lugar dia 7 Set, às 14h00, na sala CP1 308. 23 Jul Orais: as orais ...
Bibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Os capítulos deste livro ...
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2014/15 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ...
Sumários da disciplina Formato PDF : a disponibilizar oportunamente Formato ICS : a disponibilizar oportunamente Actualização contínua no calendário: JoseNunoOliveira ...
Regime de Avaliação A nota final terá uma componente teórica (T) e uma componente prática (TP). O trabalho de grupo (TP) é obrigatório, será avaliado em prova oral ...
Education/CP1415 Web Preferences The following settings are web preferences of the Education/CP1415 web. These preferences overwrite the site level preferences ...
Bem vindo à página da edição de 2014/15 da disciplina de Cálculo de Programas.
O meu nome é José Nuno Oliveira e sou o responsável por esta disciplina, que conta com uma
equipa de docentes qualificados na investigação e ensino de métodos que, como os que se leccionam nesta disciplina, estão na base da abordagem científica ao desenvolvimento de software.
Todos fazemos parte do Laboratório HASLab (High-Assurance Software Laboratory), em que se vem consolidando know-how em métodos formais de programação desde há mais de 25 anos.
A palavra "programa" vem do grego "programma", uma derivação de "prographein" = "pro" (antes) + "graphein" (escrever).
Isto sugere que alguém que programa deve pensar antes no que vai fazer.
Cada vez mais, a indústria pede às universidades que ensinem a programar a sério, isto é, de forma reflectida e capaz de evitar erros de programação. Para isso, é preciso introduzir a noção de cálculo em programação, isto é, uma disciplina que nos ajude a pensar os programas, raciocinar sobre eles e obter versões eficientes sem que a sua correcção fique comprometida.
A Universidade do Minho tem uma longa tradição neste tipo de ensino.
Cálculo de Programas é a cadeira que, nas licenciaturas de
Eng. Informática e Ciências da Computação, ensina tais competências. Mais do que tecnologia ensina-se método, que é afinal aquilo que a maioria dos programadores não tem de facto.
Citação
Quien sabe por Algebra, sabe scientificamente. Pedro Nunes(1502-1578) in Libro de Algebra, 1567, fol 270r.
Resultados da Aprendizagem
Programação composicional: aprender a escrever programas complexos por composição de programas mais simples (princípio da composicionalidade).
Programação construtiva: aprender a escrever programas funcionais com recurso a combinadores algébricos.
Transformação de programas: recurso à algebra da programação para se obter eficiência sem sacrifício da correcção.
Arquitectura da programação: Análise, compreensão e catalogação de programas: recurso à factorização em pares "fold" + "unfold" (hilomorfismos) como forma de se perceber a arquitectura dos algoritmos e sua taxonomia.
Síntese de programas: cálculo de ciclos-for a partir de definições indutivas da matemática.
Programação funcional avançada: construir e raciocinar sobre programas funcionais com efeitos sob a forma de mónades.
Alunos As classificações constantes desta página foram removidas no final do ano lectivo. Trabalho prático (TP) Avaliação do TP Defesa : os DDHHMM de cada defesa ...
Horário de Atendimento Em qualquer altura: via correio electrónico pressionando aqui. Qualquer outro meio de contacto será considerado informal, não se sentindo ...
13 Set Época especial, notas finais: verAlunos. 5 Set O Exame da época especial terá lugar dia 7 Set, às 14h00, na sala CP1 308. 23 Jul Orais: as orais ...
Bibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Os capítulos deste livro ...
Sumários da disciplina Formato PDF : a disponibilizar oportunamente Formato ICS : a disponibilizar oportunamente Actualização contínua no calendário: JoseNunoOliveira ...
Regime de Avaliação A nota final terá uma componente teórica (T) e uma componente prática (TP). O trabalho de grupo (TP) é obrigatório, será avaliado em prova oral ...
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2014/15 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ...
Education/CP1415 Web Preferences The following settings are web preferences of the Education/CP1415 web. These preferences overwrite the site level preferences ...
This is a subscription service to be automatically notified by e-mail when topics change in this Education/CP1415 web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe, please add a bullet with your WikiName in alphabetical order to this list:
Each TWiki web has an automatic e-mail notification service that sends you an e-mail with links to all of the topics modified since the last alert.
Users subscribe to email notifications using their WikiName or an alternative email address, and can specify the webs/topics they wish to track using one of these bullet list formats:
three spaces * [ webname . ] wikiName - SMTP mail address three spaces * [ webName . ] wikiName three spaces * SMTP mail address three spaces * SMTP mail address : topics three spaces * [ webname . ] wikiName : topics
In the above examples, topics is a space-separated list of topic names. The user may further customize the specific content they will receive using the following formats:
Specify topics without a Web. prefix
Topics must exist in this web.
Topics may be specified using * wildcards
Each topic may optionally be preceded by a '+' or '-' sign. The '+' sign means "subscribe to this topic" (the same as not putting anything). The '-' sign means "unsubscribe" or "don't send notifications regarding this topic". This allows users to elect to filter out certain topics (and their children, to an arbitrary depth). Topic filters ('-') take precedence over topic includes ('+').
Each topic may optionally be followed by an integer in parentheses, indicating the depth of the tree of children below that topic. Changes in all these children will be detected and reported along with changes to the topic itself. Note This uses the TWiki "Topic parent" feature.
Each topic may optionally be immediately followed by an exclamation mark ! or a question mark ? with no intervening spaces, indicating that the topic (and children if there is a tree depth specifier as well) should be mailed out as complete topics instead of change summaries. ! causes the topic to be mailed every time even if there have been no changes, ? will mail the topic only if there have been changes to it. This only makes sense for subscriptions.
For example:
Subscribe Daisy to all changes to topics in this web.
* daisy.cutter@flowers.com
Subscribe Daisy to all changes in all webs that start with Web.
* daisy.cutter@flowers.com: Web*
Subscribe Daisy to changes to topics starting with Petal, and their immediate children, WeedKillers and children to a depth of 3, and all topics that match start with Pretty and end with Flowers e.g. PrettyPinkFlowers
Subscribe Daisy to the full content of NewsLetter whenever it has changed
* daisy@flowers.com: TWiki.NewsLetter?
Subscribe buttercup to NewsLetter and its immediate children, even if it hasn't changed.
* buttercup@flowers.com: TWiki.NewsLetter! (1)
Subscribe GardenGroup (which includes Petunia) to all changed topics under AllnewsLetters to a depth of 3. Then unsubscribe Petunia from the ManureNewsLetter, which she would normally get as a member of GardenGroup? :
A user may be listed many times in the WebNotify topic. Where a user has several lines in WebNotify that all match the same topic, they will only be notified about changes that topic once (though they will still receive individual mails for news topics).
If a TWiki group is listed for notification, the group will be recursively expanded to the e-mail addresses of all members.
Tip: List names in alphabetical order to make it easier to find the names.
Note for System Administrators: Notification is supported by an add-on to the TWiki kernel called the MailerContrib. See the MailerContrib topic for details of how to set up this service.
Note: If you prefer a news feed, point your reader to WebRss (for RSS 1.0 feeds) or WebAtom (for ATOM 1.0 feeds). Learn more at WebRssBase and WebAtomBase, respectively.
These settings override the defaults for this web only. See full list of defaults with explanation. Many of the settings below are commented out. Remove the # sign to enable a local customisation.
Web-specific background color: (Pick a lighter one of the StandardColors).
Set WEBBGCOLOR = #D0D0D0
Note: This setting is automatically configured when you create a web
Image, URL and alternate tooltip text of web's logo. Note: Don't add your own local logos to the TWikiLogos topic; create your own logos topic instead.
List this web in the SiteMap. If you want the web listed, then set SITEMAPLIST to on, do not set NOSEARCHALL, and add the "what" and "use to..." description for the site map. Use links that include the name of the web, i.e. Education/CP1415.Topic links. Note: Unlike other variables, the setting of SITEMAPLIST is not inherited from parent webs. It has to be set in every web that is to be listed in the SiteMap
Set SITEMAPLIST = on
Set SITEMAPWHAT = Cálculo de Programas
Set SITEMAPUSETO = Licenciaturas em Engenharia Informática e Ciências da Computação
Note: Above settings are automatically configured when you create a web
Exclude web from a web="all" search: (Set to on for hidden webs).
Set NOSEARCHALL =
Note: This setting is automatically configured when you create a web
Prevent automatic linking of WikiWords and acronyms (if set to on); link WikiWords (if empty); can be overwritten by web preferences:
#Set NOAUTOLINK =
Note: You can still use the [[...][...]] syntax to link topics if you disabled WikiWord linking. The <noautolink> ... </noautolink> syntax can be used to prevents links within a block of text.
Default template for new topics for this web:
WebTopicEditTemplate? : Default template for new topics in this web. (Site-level is used if topic does not exist)
Comma separated list of forms that can be attached to topics in this web. See TWikiForms for more information.
Set WEBFORMS =
Users or groups who are not / are allowed to view / change / rename topics in the Education/CP1415 web: (See TWikiAccessControl). Remove the # to enable any of these settings. Remember that an empty setting is a valid setting; setting DENYWEBVIEW to nothing means that anyone can view the web.
Preferences are used as TWikiVariables by enclosing the name in percent signs. Example:
When you write variable %WEBBGCOLOR% , it gets expanded to #D0D0D0
The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since %WEBCOPYRIGHT% uses the %WIKIWEBMASTER% variable.
You can introduce your own preferences variables and use them in your topics and templates.
TWiki search results for \.*
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415
The Education/CP1415 web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.en-usCopyright 2020 by contributing authorsTWiki Administrator [webmaster@di.uminho.pt]The contributing authors of TWikiTWikiDIUM.Education/CP1415
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415
/twiki/pub/Main/LocalLogos/um_eengP.jpgAlunos
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Alunos
Alunos As classificações constantes desta página foram removidas no final do ano lectivo. Trabalho prático (TP) Avaliação do TP Defesa : os DDHHMM de cada defesa ... (last changed by JoseNunoOliveira)2019-07-07T09:22:19ZJoseNunoOliveiraAtendimento
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Atendimento
Horário de Atendimento Em qualquer altura: via correio electrónico pressionando aqui. Qualquer outro meio de contacto será considerado informal, não se sentindo ... (last changed by JoseNunoOliveira)2019-05-11T21:26:08ZJoseNunoOliveiraWebSideBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebSideBar
Tópicos Apresentação Contacto Alunos Sumários Horário Docentes Atendimento Material principal no Catálogo UM ... (last changed by JoseNunoOliveira)2018-10-05T08:16:02ZJoseNunoOliveiraAvisos
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Avisos
13 Set Época especial, notas finais: verAlunos. 5 Set O Exame da época especial terá lugar dia 7 Set, às 14h00, na sala CP1 308. 23 Jul Orais: as orais ... (last changed by JoseNunoOliveira)2018-10-05T08:15:31ZJoseNunoOliveiraMaterialPedagogico
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/MaterialPedagogico
Material Pedagógico Fichas das aulas práticas Ficha 1 (revisões de PF) Ficha 2 Ficha 3 Ficha 4 Ficha 5 Ficha 6 Ficha ... (last changed by JoseNunoOliveira)2018-06-26T17:05:16ZJoseNunoOliveiraBibliografia
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Bibliografia
Bibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Os capítulos deste livro ... (last changed by JoseNunoOliveira)2017-05-05T13:01:07ZJoseNunoOliveiraEquipaDocente
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/EquipaDocente
Docentes Docente Código Serviço Cursos Soares Barbosa 406023 Aulas TP LEI Nuno Oliveira 406006 Aulas T, TP LCC, LEI ... (last changed by JoseNunoOliveira)2015-05-25T09:20:11ZJoseNunoOliveiraWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebHome
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2014/15 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ... (last changed by JoseNunoOliveira)2015-04-26T08:59:25ZJoseNunoOliveiraCalendario
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/Calendario
Sumários da disciplina Formato PDF : a disponibilizar oportunamente Formato ICS : a disponibilizar oportunamente Actualização contínua no calendário: JoseNunoOliveira ... (last changed by JoseNunoOliveira)2015-02-20T10:20:44ZJoseNunoOliveiraRegimeAvaliacao
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/RegimeAvaliacao
Regime de Avaliação A nota final terá uma componente teórica (T) e uma componente prática (TP). O trabalho de grupo (TP) é obrigatório, será avaliado em prova oral ... (last changed by JoseNunoOliveira)2015-02-17T11:12:28ZJoseNunoOliveiraHorarioSalasDocentes
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/HorarioSalasDocentes
Horário e turnos Curso Turno Dia Hora Sala Docente LEI T1 3ª feira 14h00 16h00 ... (last changed by JoseNunoOliveira)2015-02-12T18:15:00ZJoseNunoOliveiraWebPreferences
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebPreferences
Education/CP1415 Web Preferences The following settings are web preferences of the Education/CP1415 web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)2015-02-11T18:40:36ZAlcinoCunhaWebTopicActions
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebTopicActions
(last changed by AlcinoCunha)2007-05-18T08:03:35ZAlcinoCunhaWebCss
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebCss
.natRevision { width:0px; height:0px; overflow:hidden; } .natBreadCrumbs { width:0px; height:0px; overflow:hidden; } .avisos { color: #444; font size ... (last changed by AlcinoCunha)2007-02-16T14:32:59ZAlcinoCunhaWebTopBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebTopBar
(last changed by AlcinoCunha)2007-02-13T14:43:04ZAlcinoCunhaWebLeftBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1415/WebLeftBar
Apresentação Sumários Projectos Material (last changed by AlcinoCunha)2007-02-13T10:35:33ZAlcinoCunha
5-Set - O Exame da época especial terá lugar dia 7-Set, às 14h00, na sala CP1-308.
23 Jul - Orais: as orais terão lugar na sala DI 1.08.
21 Jul - Notas finais: ver Alunos. Os alunos marcados com "oral" deverão comparecer no DI sexta-feira dia 24-Jul às 15h da tarde. A sala será indicada brevemente.
17 Jul - Consulta do exame de recurso: será segunda-feira, dia 20-Jul, das 08h às 12h, na sala DI 1.08.
17 Jul - Notas do exame de recurso de 07-Jul: ver Alunos
06 Jul - Exame de recurso amanhã, 07-Jul, às 16h00: terá lugar nas salas da cantina de Gualtar. O exame é sem consulta exceptuando o formulário disponível no material pedagógico da disciplina, que os alunos deverão trazer consigo impresso.
04 Jul - Publicado no Material Pedagógico o enunciado do teste de 16-Jun, com a correcção.
01 Jul - Sessão para ver o teste: será amanhã, dia 2-Jul, das 14h às 16h, na sala DI 0.11.
15 Jun - Teste amanhã, 20h: o teste é sem consulta exceptuando o formulário disponível no material pedagógico da disciplina, que os alunos deverão trazer consigo impresso.
14 Jun - Alteração da hora do teste: por falta de salas, o teste de CP será realizado no mesmo dia em horário pós-laboral: 20h00 às 22h30, dia 16-Jun, salas CP2 201, 202 e 203 (ou 204).
14 Jun - Anúncio de aulas suplementares: LEI: turnos TP4 e TP5, dia 15 de Junho, das 11:00 - 13:00, na sala 103 do CPI; LCC: turno TP1, dia 15 de Junho, das 11:00 - 13:00, na sala 103 do CPI.
11 Jun - Data e hora do Teste de CP: Ter, 16 de junho, 18:00-20:00.
10 Jun - Estão a ser publicadas FAQs sobre exercícios em Atendimento.
01 Jun - LCC, Turno TP2: chama-se a atenção dos alunos para a aula suplementar que terá lugar dia 4-Jun das 15h30 às 17h30 na sala CP1 104 - ver Sumários.
01 Jun - Defesas dos TPs: ver horário das orais em Alunos.
29 Mai - Instruções para entrega do TP: ver Alunos.
24 Mai - Publicada no Material a ficha nr.12, a preparar para as aulas TP da última semana de aulas.
24 Mai - Data limite para entrega do trabalho prático: 31 Mai 2015, até às 23h59m. Detalhes em Material.
21 Mai - Horário de apoio ao projecto: sala DI 0.02 nos períodos indicados no calendário da disciplina.
17 Mai - Publicada no Material a ficha nr.11, a preparar para as aulas TP da semana de 18-Mai.
05 Mai - LEI, Turnos TP1 e TP2: chama-se a atenção dos alunos para a alteração da hora da aula de reposição amanhã de tarde, que será às 16h00 e não às 14h00 como inicialmente previsto - ver Sumários.
02 Mai - Publicada no Material a ficha nr.10, a preparar para as aulas TP da semana de 04-Mai.
29 Abr - LEI, Turnos TP1 e TP2: chama-se a atenção dos alunos para novas alterações (temporárias) no horário destes turnos e para as aulas de substituição previstas nos Sumários.
28 Abr - Publicado na Bibliografia o último capítulo ( 450K) dos apontamentos.
26 Abr - Publicada no Material a ficha nr.9, a preparar para as aulas TP da semana de 27-Abr.
25 Abr - Trabalho prático: enunciado e material publicados em Material
24 Abr - Publicados os grupos de trabalho em Alunos
24 Abr - Informação sobre Trabalho prático: ver Material
19 Abr - Publicada no Material a ficha nr.8, a preparar para as aulas TP da semana de 20-Abr.
15 Abr - LEI, Turnos TP1 e TP2: chama-se a atenção dos alunos para as alterações (temporárias) no horário destes turnos e para as aulas de substituição previstas nos Sumários.
12 Abr - Publicada no Material a ficha nr.7, a preparar para as aulas TP da semana de 13-Abr.
09 Abr - Registo de grupos para trabalho prático: ver Alunos
04 Abr - Publicada no Material a ficha nr.6, a preparar para as aulas TP da semana de 07-Abr.
20 Mar - Publicada no Material a ficha nr.5, a preparar para as aulas TP da semana de 23-Mar.
16 Mar - Publicado na Bibliografia mais um capítulo ( 550K) dos apontamentos.
14 Mar - Publicada no Material a ficha nr.4, a preparar para as aulas TP da semana de 16-Mar.
07 Mar - Publicada no Material a ficha nr.3, a preparar para as aulas TP da semana de 9-Mar.
27 Fev - Publicada no Material a ficha nr.2, a preparar para as aulas TP da semana de 2-Mar.
5-Set - O Exame da época especial terá lugar dia 7-Set, às 14h00, na sala CP1-308.
23 Jul - Orais: as orais terão lugar na sala DI 1.08.
21 Jul - Notas finais: ver Alunos. Os alunos marcados com "oral" deverão comparecer no DI sexta-feira dia 24-Jul às 15h da tarde. A sala será indicada brevemente.
17 Jul - Consulta do exame de recurso: será segunda-feira, dia 20-Jul, das 08h às 12h, na sala DI 1.08.
17 Jul - Notas do exame de recurso de 07-Jul: ver Alunos
06 Jul - Exame de recurso amanhã, 07-Jul, às 16h00: terá lugar nas salas da cantina de Gualtar. O exame é sem consulta exceptuando o formulário disponível no material pedagógico da disciplina, que os alunos deverão trazer consigo impresso.
04 Jul - Publicado no Material Pedagógico o enunciado do teste de 16-Jun, com a correcção.
01 Jul - Sessão para ver o teste: será amanhã, dia 2-Jul, das 14h às 16h, na sala DI 0.11.
15 Jun - Teste amanhã, 20h: o teste é sem consulta exceptuando o formulário disponível no material pedagógico da disciplina, que os alunos deverão trazer consigo impresso.
14 Jun - Alteração da hora do teste: por falta de salas, o teste de CP será realizado no mesmo dia em horário pós-laboral: 20h00 às 22h30, dia 16-Jun, salas CP2 201, 202 e 203 (ou 204).
14 Jun - Anúncio de aulas suplementares: LEI: turnos TP4 e TP5, dia 15 de Junho, das 11:00 - 13:00, na sala 103 do CPI; LCC: turno TP1, dia 15 de Junho, das 11:00 - 13:00, na sala 103 do CPI.
11 Jun - Data e hora do Teste de CP: Ter, 16 de junho, 18:00-20:00.
10 Jun - Estão a ser publicadas FAQs sobre exercícios em Atendimento.
01 Jun - LCC, Turno TP2: chama-se a atenção dos alunos para a aula suplementar que terá lugar dia 4-Jun das 15h30 às 17h30 na sala CP1 104 - ver Sumários.
01 Jun - Defesas dos TPs: ver horário das orais em Alunos.
29 Mai - Instruções para entrega do TP: ver Alunos.
24 Mai - Publicada no Material a ficha nr.12, a preparar para as aulas TP da última semana de aulas.
24 Mai - Data limite para entrega do trabalho prático: 31 Mai 2015, até às 23h59m. Detalhes em Material.
21 Mai - Horário de apoio ao projecto: sala DI 0.02 nos períodos indicados no calendário da disciplina.
17 Mai - Publicada no Material a ficha nr.11, a preparar para as aulas TP da semana de 18-Mai.
05 Mai - LEI, Turnos TP1 e TP2: chama-se a atenção dos alunos para a alteração da hora da aula de reposição amanhã de tarde, que será às 16h00 e não às 14h00 como inicialmente previsto - ver Sumários.
02 Mai - Publicada no Material a ficha nr.10, a preparar para as aulas TP da semana de 04-Mai.
29 Abr - LEI, Turnos TP1 e TP2: chama-se a atenção dos alunos para novas alterações (temporárias) no horário destes turnos e para as aulas de substituição previstas nos Sumários.
28 Abr - Publicado na Bibliografia o último capítulo ( 450K) dos apontamentos.
26 Abr - Publicada no Material a ficha nr.9, a preparar para as aulas TP da semana de 27-Abr.
25 Abr - Trabalho prático: enunciado e material publicados em Material
24 Abr - Publicados os grupos de trabalho em Alunos
24 Abr - Informação sobre Trabalho prático: ver Material
19 Abr - Publicada no Material a ficha nr.8, a preparar para as aulas TP da semana de 20-Abr.
15 Abr - LEI, Turnos TP1 e TP2: chama-se a atenção dos alunos para as alterações (temporárias) no horário destes turnos e para as aulas de substituição previstas nos Sumários.
12 Abr - Publicada no Material a ficha nr.7, a preparar para as aulas TP da semana de 13-Abr.
09 Abr - Registo de grupos para trabalho prático: ver Alunos
04 Abr - Publicada no Material a ficha nr.6, a preparar para as aulas TP da semana de 07-Abr.
20 Mar - Publicada no Material a ficha nr.5, a preparar para as aulas TP da semana de 23-Mar.
16 Mar - Publicado na Bibliografia mais um capítulo ( 550K) dos apontamentos.
14 Mar - Publicada no Material a ficha nr.4, a preparar para as aulas TP da semana de 16-Mar.
07 Mar - Publicada no Material a ficha nr.3, a preparar para as aulas TP da semana de 9-Mar.
27 Fev - Publicada no Material a ficha nr.2, a preparar para as aulas TP da semana de 2-Mar.