27 Set - Classificações do exame da época especial: estão disponíveis na secção Alunos13 Set - Exame da época especial: 15-Set-2010, 14h00-17h00, sala 2303.
26 Jul - Classificações finais, após exame de recurso: estão disponíveis na secção Alunos11 Jul - No Material encontra-se uma nova versão do PDF do teste de 18-Jun com a resolução das questões que têm suscitado mais
dúvidas.
08 Jul - detalhes sobre exame de recurso: 12-Jul, das 14h00 às 16h30, salas 2201, 2202, 2203 e 2204. (Ver também calendário oficial)
05 Jul - atenção aos transparentes sobre monadificação que estão no material da disciplina (ficheiro EasyMonads.pdf)
02 Jul - as classificações à data do teste de 18-Jun serão afixadas amanhã (3-Jul) de manhã.
23 Jun - o exame de recurso terá lugar dia 12-Jul (detalhes a anunciar).
14 Jun - O docente das aulas teóricas estará disponível no Lab. 1.04 para tirar dúvidas para o teste nas tardes de
3ª-feira (16h30-18h30) e 4ª-feira (14h-16h).
14 Jun - o formato do teste de 18-Jun encontra-se
aqui. Ver as instruções relativas à diferença entre os métodos A e B.
11 Jun
- Notas (Método A): estão disponíveis em Alunos. Os alunos que não obtiveram a nota mínima devem apresentar-se a recurso.
11 Jun
- Teste individual: terá lugar a 18-Jun, das 11h00-13h30, nas salas
Salas 2111, 2201, 2202, 2203, 2204, 2205 e 2209.
07 Jun
- Questões (Método A): estão disponíveis no material pedagógico.
04 Jun
- Teste de CP: terá lugar de hoje a quinze dias, 18-Jun de manhã, em local/hora a anunciar aqui.
04 Jun
- Teóricas do dia 11-Jun: serão substituidas por aula prática de compensação, na mesma sala.
01 Jun
- Turno TP/LCC: a aula extra deste turno será dia 2-Jun, das 15 às 18, no anfiteatro DI-A1.
28 Mai
- Turno TP-4: haverá uma aula complementar da de hoje no dia
02-Jun, 15h-17h (na mesma sala).
20 Mai
- Turno TP(5)/B: não haverá aula amanhã dia
21-Mai, 16h-18h, devido a uma reunião do docente na Universidade do Porto. A aula será compensada na próxima 6ª-feira, dia 28-Mai,
das 18h-19h30.
19 Mai
- Turno de LCC: haverá uma aula extra no dia
02-Jun, 14h-17h.
07 Mai
- Turno TP-2: haverá uma aula de substituição da de ontem 4.a-feira dia
19-Mai, 15h-17h (na mesma sala).
07 Mai
- Método A: as QAIs nrs.5+6 terão lugar nos turnos dos dias 27-Mai, 28-Mai e
31-Mai.
07 Mai
- Método A: a QAI nr.4 terá lugar nos turnos dos dias 20-Mai, 21-Mai e
24-Mai.
30 Abr
- A aula teórica do dia
4-Maio será substituída por uma de SO.
18 Abr
- Ao contrário de que foi anunciado, os turnos de 5ª-feira (22-Abr) de LCC e o turno TP-05 de 23-Abr (LEI) funcionarão
regularmente. Nos de LCC haverá avaliação (alunos do Método A).
13 Abr
- Método A: a QAI nr.3 terá lugar nos turnos dos dias
22-Abr, 23-Abr e 26-Abr.
08 Abr
- Turno TP-2: haverá uma aula de substituição da de hoje na próxima 4.a-feira dia
14-Abr, 15h-17h (na mesma sala).
06 Abr
- Método A: a QAI nr.2 terá lugar nos turnos dos dias 15-Abr, 16-Abr e 19-Abr.
11 Mar
- Método A: primeira Questão para Avaliação Individual (QAI nr.1) terá lugar nos turnos da semana 22-Mar a 26-Mar.
04 Mar
- Já só há 4 vagas para o Método A, no turno TP-2.
01 Mar
- A aula de amanhã,
02-Mar, será (execpcionalmente) de 2 horas, das 9h00 às 11h00, no anfiteatro CP2 103.
26 Fev
- Há 10 vagas por preencher, ver Alunos24 Fev
- Anuncia-se que estão abertas mais 4 vagas em cada turno (LEI, TP-1 a TP-4).
Importante: os pedidos de troca serão considerados por ordem de chegada, mas só aqueles que seguirem as instruções que constam em Alunos. Todos os outros serão ignorados.
23 Fev - Estão já publicadas as inscrições nos turnos TP-1 a TP-4 (LEI)
23 Fev - As aulas práticas começam 2ª-feira, dia 29 (LEI) e dia 4 (LCC)
19 Fev
- As aulas teóricas começam 3ª-feira, dia 23 (LEI) e dia 26 (LCC)
J.N. Oliveira. Program Design by Calculation. Departamento de Informática, Universidade do Minho, 2005. Livro em preparação: os capítulos 2, 3 e 4 já estão disponíveis.
A. Cunha. Cálculo de Programas: notas teórico-práticas. Departamento de Informática, Universidade do Minho, 2005. Documento em preparação: versão actual.
Bibliografia complementar
R. Bird and O. de Moor. Algebra of Programming. Series in Computer Science. Prentice-Hall International, 1997. C. A. R. Hoare, series editor.
Os alunos devem escolher um dos seguintes métodos de avaliação:
Método A:
Prova individual escrita com nota mínima de 8 valores (60%).
Projecto prático desenvolvido em grupos de 2 alunos (30%).
Participação nas aulas práticas (10%).
Presença obrigatória nas aulas teórico-práticas.
Método B:
Prova individual escrita com nota mínima de 10 valores (100%).
O método de avaliação A só é válido para alunos de primeira inscrição e que não se encontrem enquadrados pelos regimes especiais de frequência referidos no artigo 19º do RIAPA; no entanto, abrimos uma execpção para qualquer outro aluno desde que prescinda do direito de não ter frequência que lhe confere o artigo 9º do RIAPA. O método A só poderá ser escolhido uma vez: quem optar por este método este ano e não obtiver aprovação terá necessariamente que optar pelo método B no próximo ano e seguintes. Os turnos práticos a frequentar são diferentes conforme o método de avaliação escolhido.
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, com um mínimo de uma semana de antecedência:
6 transparentes (PDF) mostrados na aula teórica de 13-Abril sobre cálculo da função sq.
12 transparentes (PDF) sobre o método de escrita de código monádico ensinado nas aulas teóricas.
Bibliotecas
Ficheiro zip (última actualização: 6-Jun) contendo bibliotecas em Haskell (Nat.hs, List.hs, LTree.hs, etc.) que definem os respectivos combinadores (eg. cata, for) e contêm os exemplos (eg. sq, fac) estudados nas aulas. O mesmo ficheiro contém também o módulo St.hs que anima uma versão simplificada do mónade de estado. Inclui ainda uma lista de demos (demos.hs) através do qual se pode a visualizar a estrutura de dados virtual (intermédia) dos hilomorfismos qSort, mSort, fib etc das bibliotecas BTree.hs e LTree.hs. Experimentar qSort_vtree [6,3,9,1,7,18], por exemplo. Encontrar-se-á a visualização da árvore intermédia no ficheiro _.html da directoria corrente.
Motivação. Teoria e método em programação. Cálculo e raciocínio sobre programas. Composicionalidade. Combinadores de programas. Modularidade e reutilização. «Pacotes» de programação.
Programação funcional: sua motivação e antecendentes históricos. Composição de funções. Noções de abstracção e de isomorfismo.
Iniciação à estruturação de dados. Combinadores básicos e suas propriedades estruturais (reflexão, fusão, absorção, cancelamento e de functorialidade). Álgebra de um tipo de dados. Lei da troca.
Introdução às estruturas de dados indutivas regulares. Álgebras de functores. A triologia «cata-ana-hilo». Recursividade polinomial. Caso de estudo: algoritmos de ordenação.
Regras para codificação de estruturas de dados funcionais na linguagem de programação C.
Parametrização e polimorfismo. Inferência de tipos polimórficos. Programação genérica. Functores de tipo. Introdução ao politipismo.
Programação modular.
Programação funcional com mónades. `Input/output'. Excepções.
Programa detalhado
1. Teoria e método em programação. Concepção composicional e reutilização. Combinadores de programas. Modelação funcional de problemas.
2. Introdução à Programação funcional. Conceito de função. A função como contrato. Diagramas de blocos. Domínio e codomínio de uma função. Igualdade extensional. Diagramas funcionais. Recurso a setas f : A -> B e diagramas. Notação funcional com ou sem variáveis.
3. Combinadores de programas funcionais. A composição f · g como combinador elementar de funções. Associatividade da composição: Função identidade id. O polimorfismo de id e a propriedade f ·id = id ·f = f e seu diagramas comutativo. O combinador <f,g> e o produto A × B (analogia com «struct» em C) e suas projecções. O combinador [f,g] e o coproduto A + B (analogia com «union» em C) e suas injecções. Os combinadores f × g e f + g . Noção de isomorfismo entre tipos de dados. Funções bijectivas ou isomorfismos. Função inversa. Predicados e guardas. Condicional de McCarthy.
4. Álgebra da programação funcional. Inferência de tipos polimórficos com recurso a diagramas. Propriedades naturais e propridades universais. Propriedades de reflexão. Propriedades de cancelamento e fusão. Lei da troca. Propriedades de absorção e propriedades functoriais. Leis de fusão do condicional de McCarthy.
5. Programação funcional em HASKELL. Costumização de produtos e coprodutos. Álgebras e coálgebras de tipos de dados. O conceito de «apontador» 1 + A (Maybe a em HASKELL). Funções parciais.
6. Programação com tipos de dados indutivos. Tipos de dados recursivos vistos como equações. Os número naturais e a equação N =1 + N. As listas ligadas e a equação L = 1 + A × L. Noção de combinadores recursivos. Exemplos: catamorfismos e anamorfismos. Hilomorfismos (anamorfismos seguidos de catamorfismos). Apresentação do módulo List.hs. Estudo da triologia cata-ana-hilo associada ao tipo List. O algoritmo de cálculo do quadrado de um número visto como hilomorfismo sobre a estrutura List a. O algoritmo de ordenação por inserção simples visto como hilomorfismo sobre a estrutura List a. Introdução ao tipo de dados árvores binárias simples, ou listas bi-lineares. Estudo da triologia cata-ana-hilo associada ao tipo BTree. Exemplo: o hilomorfismo qSort (`quick sort'). Estudo da triologia cata-ana-hilo associada ao tipo LTree. Exemplos: o hilomorfismo fib (série de Fibonacci) e o hilomorfismo mSort (`merge sort').
7. Definição genérica de um tipo indutivo de dados. Noção de functor de base. Operadores fmap vs catamorfismos: Politipismo da definição T a = B(a,T a) de um tipo indutivo genérico paramétrico. Noção de functor de tipo e sua formulação genérica como o catamorfismo T f =cata (in ·B(f,id)). Propriedade universal de um catamorfismo cata (f) do tipo genérico T a =B(a,t a) e suas derivadas: cancelamento-cata e reflexão-cata.
8. Classificação algorítmica. Quadro sinóptico dos principais algoritmos analisados e estudados ao longo da disciplina. Polimorfismo versus politipismo. Programação dita «genérica».
9. Programação funcional monádica. Motivação: funções parciais e sua composição. Manipulação de erros e mecanismos de excepção («exception handling»). Funções monádicas envolvendo listas. Mónadas versus functores. Noção de functor. Propriedades functoriais. Functores em HASKELL: a class Functor e o operador fmap. Regra geral para a composição monádica. Definição formal de mónade. Composição e sua unidade. Multiplicação e suas propriedades. Exemplos: listas e Maybe. Mónadas em HASKELL: a class Monad e os operadores return, (»=) e ». A notação do. Introdução à notação em compreensão. A definição fmap f x = do { a <- x ; return (f a) }. Regras para a monadificação de funções arbitrárias com recurso à notação "do".
TWiki's Education/CP0910 webThe Education/CP0910 web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910Copyright 2020 by contributing authors2020-10-30T14:39:00ZWebStatisticshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebStatistics2020-10-30T14:39:00ZStatistics for Education/CP0910 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/CP0910/Alunos2018-10-05T08:28:57ZClassificações dos exames da época especial Listadas por ordem crescente de número. 36773 10 ; 38207 R ; 40514 R ; 43110 R ; 43201 10 ; 47021 10 ; 47023 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraMaterialPedagogicohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/MaterialPedagogico2011-06-14T12:37:57ZMaterial Pedagógico Fichas das aulas práticas Ficha 1. Ficha 2. Ficha 3. Ficha 4. Ficha 5. Ficha 6. Ficha 7. Ficha 8. ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebSideBarhttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebSideBar2011-02-26T11:10:48ZTópicos Apresentação Docentes Contacto principal Alunos Regime de Avaliação Horário Atendimento Sumários Programa ... (last changed by JoseNunoOliveira)JoseNunoOliveiraCalendariohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Calendario2011-02-19T16:59:48ZSumários da disciplina Formato PDF (última actualização: 2010.Jun.24) : calendar 2010 01 01 2010 12 31.pdf. Formato ICS (última actualização: 2010.Jul.12) : ... (last changed by JoseNunoOliveira)JoseNunoOliveiraEquipaDocentehttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/EquipaDocente2011-02-15T11:46:46ZDocentes Docente Código Aulas Licenciaturas Nuno Oliveira 406006 T TP LCC LEI Soares Barbosa 406023 TP LCC Pacheco ... (last changed by JoseNunoOliveira)JoseNunoOliveiraProgramahttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Programa2011-01-12T17:45:20ZPrograma resumido Motivação. Teoria e método em programação. Cálculo e raciocínio sobre programas. Composicionalidade. Combinadores de programas. Modularidade ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebHomehttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebHome2011-01-12T17:40:08ZBenvindo a Cálculo de Programas Bem vindo à página da edição de 2009/10 da disciplina de de Programas. O meu nome é José Nuno Oliveira e sou o responsável por esta ... (last changed by JoseNunoOliveira)JoseNunoOliveiraBibliografiahttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Bibliografia2011-01-11T15:00:56ZBibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho, 2005. Livro em preparação: os 2, 3 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraAvisoshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Avisos2011-01-11T14:47:51Z27 Set Classificações do exame da época especial: estão disponíveis na secção Alunos 13 Set Exame da época especial: 15 Set 2010, 14h00 17h00, sala 2303 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraHorarioAtendimentohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/HorarioAtendimento2010-08-02T22:40:46ZHorá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)JoseNunoOliveiraHorarioSalasDocenteshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/HorarioSalasDocentes2010-03-09T09:29:56ZHorário Ref Dia Hora Tipo /Método Sala Cursos Docente 1 2. feira 11h00 13h00 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraRegimeAvaliacaohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/RegimeAvaliacao2010-02-23T13:10:47ZRegime de Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: 6 Fichas individuais (sem consulta) a realizar nas aulas TP: 12 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraFuncionamentohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Funcionamento2010-02-19T16:23:20ZAvaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: Prova individual escrita com nota mínima de 8 valores (60%). Projecto ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebPreferenceshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebPreferences2010-02-01T11:02:05ZEducation/CP0910 Web Preferences The following settings are web preferences of the Education/CP0910 web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)AlcinoCunhaWebTopicActionshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebTopicActions2007-05-18T08:03:35Z (last changed by AlcinoCunha)AlcinoCunha
Classificações dos exames da época especial Listadas por ordem crescente de número. 36773 10 ; 38207 R ; 40514 R ; 43110 R ; 43201 10 ; 47021 10 ; 47023 ...
Programa resumido Motivação. Teoria e método em programação. Cálculo e raciocínio sobre programas. Composicionalidade. Combinadores de programas. Modularidade ...
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2009/10 da disciplina de de Programas. O meu nome é José Nuno Oliveira e sou o responsável por esta ...
Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho, 2005. Livro em preparação: os 2, 3 ...
27 Set Classificações do exame da época especial: estão disponíveis na secção Alunos 13 Set Exame da época especial: 15 Set 2010, 14h00 17h00, sala 2303 ...
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 ...
Regime de Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: 6 Fichas individuais (sem consulta) a realizar nas aulas TP: 12 ...
Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: Prova individual escrita com nota mínima de 8 valores (60%). Projecto ...
Education/CP0910 Web Preferences The following settings are web preferences of the Education/CP0910 web. These preferences overwrite the site level preferences ...
Bem vindo à página da edição de 2009/10 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 altamente 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 (Formal Methods for High-Assurance Software), 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.
Tratando-se de programas de computador, essa sugestão é da maior importância: os programas escritos sem se pensar antes têm normalmente erros subtis que os testes não detectam e que constituem não só um perigo (por exemplo, em software crítico) mas também um custo acrescido para as empresas que os desenvolvem.
Cada vez mais, a indústria pede às universidades que ensinem a programar a sério, isto é, de forma a evitar tais erros. 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.
Resultados da Aprendizagem
Quien sabe por Algebra, sabe scientificamente. Pedro Nunes(1502-1578) in Libro de Algebra, 1567, fol 270r.
Análise de programas: escrever programas funcionais com recurso a combinadores algébricos.
Transformação de programas: recurso à algebra da programação para se obterem programas mais eficientes a partir de outros.
Compreensão de programas: recurso à factorização em pares "fold" + "unfold" (hilomorfismos) como forma de se perceber o significado de um programa funcional.
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.
Classificações dos exames da época especial Listadas por ordem crescente de número. 36773 10 ; 38207 R ; 40514 R ; 43110 R ; 43201 10 ; 47021 10 ; 47023 ...
27 Set Classificações do exame da época especial: estão disponíveis na secção Alunos 13 Set Exame da época especial: 15 Set 2010, 14h00 17h00, sala 2303 ...
Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho, 2005. Livro em preparação: os 2, 3 ...
Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: Prova individual escrita com nota mínima de 8 valores (60%). Projecto ...
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 ...
Programa resumido Motivação. Teoria e método em programação. Cálculo e raciocínio sobre programas. Composicionalidade. Combinadores de programas. Modularidade ...
Regime de Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: 6 Fichas individuais (sem consulta) a realizar nas aulas TP: 12 ...
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2009/10 da disciplina de de Programas. O meu nome é José Nuno Oliveira e sou o responsável por esta ...
Education/CP0910 Web Preferences The following settings are web preferences of the Education/CP0910 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/CP0910 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.
Related topics:WebChangesAlert, TWikiUsers, TWikiRegistration
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.
Natural Skin configuration
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/CP0910.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/CP0910 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/CP0910
The Education/CP0910 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/CP0910
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910
/twiki/pub/Main/LocalLogos/um_eengP.jpgAlunos
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Alunos
Classificações dos exames da época especial Listadas por ordem crescente de número. 36773 10 ; 38207 R ; 40514 R ; 43110 R ; 43201 10 ; 47021 10 ; 47023 ... (last changed by JoseNunoOliveira)2018-10-05T08:28:57ZJoseNunoOliveiraMaterialPedagogico
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/MaterialPedagogico
Material Pedagógico Fichas das aulas práticas Ficha 1. Ficha 2. Ficha 3. Ficha 4. Ficha 5. Ficha 6. Ficha 7. Ficha 8. ... (last changed by JoseNunoOliveira)2011-06-14T12:37:57ZJoseNunoOliveiraWebSideBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebSideBar
Tópicos Apresentação Docentes Contacto principal Alunos Regime de Avaliação Horário Atendimento Sumários Programa ... (last changed by JoseNunoOliveira)2011-02-26T11:10:48ZJoseNunoOliveiraCalendario
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Calendario
Sumários da disciplina Formato PDF (última actualização: 2010.Jun.24) : calendar 2010 01 01 2010 12 31.pdf. Formato ICS (última actualização: 2010.Jul.12) : ... (last changed by JoseNunoOliveira)2011-02-19T16:59:48ZJoseNunoOliveiraEquipaDocente
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/EquipaDocente
Docentes Docente Código Aulas Licenciaturas Nuno Oliveira 406006 T TP LCC LEI Soares Barbosa 406023 TP LCC Pacheco ... (last changed by JoseNunoOliveira)2011-02-15T11:46:46ZJoseNunoOliveiraPrograma
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Programa
Programa resumido Motivação. Teoria e método em programação. Cálculo e raciocínio sobre programas. Composicionalidade. Combinadores de programas. Modularidade ... (last changed by JoseNunoOliveira)2011-01-12T17:45:20ZJoseNunoOliveiraWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebHome
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2009/10 da disciplina de de Programas. O meu nome é José Nuno Oliveira e sou o responsável por esta ... (last changed by JoseNunoOliveira)2011-01-12T17:40:08ZJoseNunoOliveiraBibliografia
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Bibliografia
Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho, 2005. Livro em preparação: os 2, 3 ... (last changed by JoseNunoOliveira)2011-01-11T15:00:56ZJoseNunoOliveiraAvisos
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Avisos
27 Set Classificações do exame da época especial: estão disponíveis na secção Alunos 13 Set Exame da época especial: 15 Set 2010, 14h00 17h00, sala 2303 ... (last changed by JoseNunoOliveira)2011-01-11T14:47:51ZJoseNunoOliveiraHorarioAtendimento
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/HorarioAtendimento
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)2010-08-02T22:40:46ZJoseNunoOliveiraHorarioSalasDocentes
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/HorarioSalasDocentes
Horário Ref Dia Hora Tipo /Método Sala Cursos Docente 1 2. feira 11h00 13h00 ... (last changed by JoseNunoOliveira)2010-03-09T09:29:56ZJoseNunoOliveiraRegimeAvaliacao
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/RegimeAvaliacao
Regime de Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: 6 Fichas individuais (sem consulta) a realizar nas aulas TP: 12 ... (last changed by JoseNunoOliveira)2010-02-23T13:10:47ZJoseNunoOliveiraFuncionamento
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Funcionamento
Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: Prova individual escrita com nota mínima de 8 valores (60%). Projecto ... (last changed by JoseNunoOliveira)2010-02-19T16:23:20ZJoseNunoOliveiraWebPreferences
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebPreferences
Education/CP0910 Web Preferences The following settings are web preferences of the Education/CP0910 web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)2010-02-01T11:02:05ZAlcinoCunhaWebTopicActions
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebTopicActions
(last changed by AlcinoCunha)2007-05-18T08:03:35ZAlcinoCunhaWebCss
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/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:59ZAlcinoCunha
27 Set - Classificações do exame da época especial: estão disponíveis na secção Alunos13 Set - Exame da época especial: 15-Set-2010, 14h00-17h00, sala 2303.
26 Jul - Classificações finais, após exame de recurso: estão disponíveis na secção Alunos11 Jul - No Material encontra-se uma nova versão do PDF do teste de 18-Jun com a resolução das questões que têm suscitado mais
dúvidas.
08 Jul - detalhes sobre exame de recurso: 12-Jul, das 14h00 às 16h30, salas 2201, 2202, 2203 e 2204. (Ver também calendário oficial)
05 Jul - atenção aos transparentes sobre monadificação que estão no material da disciplina (ficheiro EasyMonads.pdf)
02 Jul - as classificações à data do teste de 18-Jun serão afixadas amanhã (3-Jul) de manhã.
23 Jun - o exame de recurso terá lugar dia 12-Jul (detalhes a anunciar).
14 Jun - O docente das aulas teóricas estará disponível no Lab. 1.04 para tirar dúvidas para o teste nas tardes de
3ª-feira (16h30-18h30) e 4ª-feira (14h-16h).
14 Jun - o formato do teste de 18-Jun encontra-se
aqui. Ver as instruções relativas à diferença entre os métodos A e B.
11 Jun
- Notas (Método A): estão disponíveis em Alunos. Os alunos que não obtiveram a nota mínima devem apresentar-se a recurso.
11 Jun
- Teste individual: terá lugar a 18-Jun, das 11h00-13h30, nas salas
Salas 2111, 2201, 2202, 2203, 2204, 2205 e 2209.
07 Jun
- Questões (Método A): estão disponíveis no material pedagógico.
04 Jun
- Teste de CP: terá lugar de hoje a quinze dias, 18-Jun de manhã, em local/hora a anunciar aqui.
04 Jun
- Teóricas do dia 11-Jun: serão substituidas por aula prática de compensação, na mesma sala.
01 Jun
- Turno TP/LCC: a aula extra deste turno será dia 2-Jun, das 15 às 18, no anfiteatro DI-A1.
28 Mai
- Turno TP-4: haverá uma aula complementar da de hoje no dia
02-Jun, 15h-17h (na mesma sala).
20 Mai
- Turno TP(5)/B: não haverá aula amanhã dia
21-Mai, 16h-18h, devido a uma reunião do docente na Universidade do Porto. A aula será compensada na próxima 6ª-feira, dia 28-Mai,
das 18h-19h30.
19 Mai
- Turno de LCC: haverá uma aula extra no dia
02-Jun, 14h-17h.
07 Mai
- Turno TP-2: haverá uma aula de substituição da de ontem 4.a-feira dia
19-Mai, 15h-17h (na mesma sala).
07 Mai
- Método A: as QAIs nrs.5+6 terão lugar nos turnos dos dias 27-Mai, 28-Mai e
31-Mai.
07 Mai
- Método A: a QAI nr.4 terá lugar nos turnos dos dias 20-Mai, 21-Mai e
24-Mai.
30 Abr
- A aula teórica do dia
4-Maio será substituída por uma de SO.
18 Abr
- Ao contrário de que foi anunciado, os turnos de 5ª-feira (22-Abr) de LCC e o turno TP-05 de 23-Abr (LEI) funcionarão
regularmente. Nos de LCC haverá avaliação (alunos do Método A).
13 Abr
- Método A: a QAI nr.3 terá lugar nos turnos dos dias
22-Abr, 23-Abr e 26-Abr.
08 Abr
- Turno TP-2: haverá uma aula de substituição da de hoje na próxima 4.a-feira dia
14-Abr, 15h-17h (na mesma sala).
06 Abr
- Método A: a QAI nr.2 terá lugar nos turnos dos dias 15-Abr, 16-Abr e 19-Abr.
11 Mar
- Método A: primeira Questão para Avaliação Individual (QAI nr.1) terá lugar nos turnos da semana 22-Mar a 26-Mar.
04 Mar
- Já só há 4 vagas para o Método A, no turno TP-2.
01 Mar
- A aula de amanhã,
02-Mar, será (execpcionalmente) de 2 horas, das 9h00 às 11h00, no anfiteatro CP2 103.
26 Fev
- Há 10 vagas por preencher, ver Alunos24 Fev
- Anuncia-se que estão abertas mais 4 vagas em cada turno (LEI, TP-1 a TP-4).
Importante: os pedidos de troca serão considerados por ordem de chegada, mas só aqueles que seguirem as instruções que constam em Alunos. Todos os outros serão ignorados.
23 Fev - Estão já publicadas as inscrições nos turnos TP-1 a TP-4 (LEI)
23 Fev - As aulas práticas começam 2ª-feira, dia 29 (LEI) e dia 4 (LCC)
19 Fev
- As aulas teóricas começam 3ª-feira, dia 23 (LEI) e dia 26 (LCC)
J.N. Oliveira. Program Design by Calculation. Departamento de Informática, Universidade do Minho, 2005. Livro em preparação: os capítulos 2, 3 e 4 já estão disponíveis.
A. Cunha. Cálculo de Programas: notas teórico-práticas. Departamento de Informática, Universidade do Minho, 2005. Documento em preparação: versão actual.
Bibliografia complementar
R. Bird and O. de Moor. Algebra of Programming. Series in Computer Science. Prentice-Hall International, 1997. C. A. R. Hoare, series editor.
Os alunos devem escolher um dos seguintes métodos de avaliação:
Método A:
Prova individual escrita com nota mínima de 8 valores (60%).
Projecto prático desenvolvido em grupos de 2 alunos (30%).
Participação nas aulas práticas (10%).
Presença obrigatória nas aulas teórico-práticas.
Método B:
Prova individual escrita com nota mínima de 10 valores (100%).
O método de avaliação A só é válido para alunos de primeira inscrição e que não se encontrem enquadrados pelos regimes especiais de frequência referidos no artigo 19º do RIAPA; no entanto, abrimos uma execpção para qualquer outro aluno desde que prescinda do direito de não ter frequência que lhe confere o artigo 9º do RIAPA. O método A só poderá ser escolhido uma vez: quem optar por este método este ano e não obtiver aprovação terá necessariamente que optar pelo método B no próximo ano e seguintes. Os turnos práticos a frequentar são diferentes conforme o método de avaliação escolhido.
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, com um mínimo de uma semana de antecedência:
6 transparentes (PDF) mostrados na aula teórica de 13-Abril sobre cálculo da função sq.
12 transparentes (PDF) sobre o método de escrita de código monádico ensinado nas aulas teóricas.
Bibliotecas
Ficheiro zip (última actualização: 6-Jun) contendo bibliotecas em Haskell (Nat.hs, List.hs, LTree.hs, etc.) que definem os respectivos combinadores (eg. cata, for) e contêm os exemplos (eg. sq, fac) estudados nas aulas. O mesmo ficheiro contém também o módulo St.hs que anima uma versão simplificada do mónade de estado. Inclui ainda uma lista de demos (demos.hs) através do qual se pode a visualizar a estrutura de dados virtual (intermédia) dos hilomorfismos qSort, mSort, fib etc das bibliotecas BTree.hs e LTree.hs. Experimentar qSort_vtree [6,3,9,1,7,18], por exemplo. Encontrar-se-á a visualização da árvore intermédia no ficheiro _.html da directoria corrente.
Motivação. Teoria e método em programação. Cálculo e raciocínio sobre programas. Composicionalidade. Combinadores de programas. Modularidade e reutilização. «Pacotes» de programação.
Programação funcional: sua motivação e antecendentes históricos. Composição de funções. Noções de abstracção e de isomorfismo.
Iniciação à estruturação de dados. Combinadores básicos e suas propriedades estruturais (reflexão, fusão, absorção, cancelamento e de functorialidade). Álgebra de um tipo de dados. Lei da troca.
Introdução às estruturas de dados indutivas regulares. Álgebras de functores. A triologia «cata-ana-hilo». Recursividade polinomial. Caso de estudo: algoritmos de ordenação.
Regras para codificação de estruturas de dados funcionais na linguagem de programação C.
Parametrização e polimorfismo. Inferência de tipos polimórficos. Programação genérica. Functores de tipo. Introdução ao politipismo.
Programação modular.
Programação funcional com mónades. `Input/output'. Excepções.
Programa detalhado
1. Teoria e método em programação. Concepção composicional e reutilização. Combinadores de programas. Modelação funcional de problemas.
2. Introdução à Programação funcional. Conceito de função. A função como contrato. Diagramas de blocos. Domínio e codomínio de uma função. Igualdade extensional. Diagramas funcionais. Recurso a setas f : A -> B e diagramas. Notação funcional com ou sem variáveis.
3. Combinadores de programas funcionais. A composição f · g como combinador elementar de funções. Associatividade da composição: Função identidade id. O polimorfismo de id e a propriedade f ·id = id ·f = f e seu diagramas comutativo. O combinador <f,g> e o produto A × B (analogia com «struct» em C) e suas projecções. O combinador [f,g] e o coproduto A + B (analogia com «union» em C) e suas injecções. Os combinadores f × g e f + g . Noção de isomorfismo entre tipos de dados. Funções bijectivas ou isomorfismos. Função inversa. Predicados e guardas. Condicional de McCarthy.
4. Álgebra da programação funcional. Inferência de tipos polimórficos com recurso a diagramas. Propriedades naturais e propridades universais. Propriedades de reflexão. Propriedades de cancelamento e fusão. Lei da troca. Propriedades de absorção e propriedades functoriais. Leis de fusão do condicional de McCarthy.
5. Programação funcional em HASKELL. Costumização de produtos e coprodutos. Álgebras e coálgebras de tipos de dados. O conceito de «apontador» 1 + A (Maybe a em HASKELL). Funções parciais.
6. Programação com tipos de dados indutivos. Tipos de dados recursivos vistos como equações. Os número naturais e a equação N =1 + N. As listas ligadas e a equação L = 1 + A × L. Noção de combinadores recursivos. Exemplos: catamorfismos e anamorfismos. Hilomorfismos (anamorfismos seguidos de catamorfismos). Apresentação do módulo List.hs. Estudo da triologia cata-ana-hilo associada ao tipo List. O algoritmo de cálculo do quadrado de um número visto como hilomorfismo sobre a estrutura List a. O algoritmo de ordenação por inserção simples visto como hilomorfismo sobre a estrutura List a. Introdução ao tipo de dados árvores binárias simples, ou listas bi-lineares. Estudo da triologia cata-ana-hilo associada ao tipo BTree. Exemplo: o hilomorfismo qSort (`quick sort'). Estudo da triologia cata-ana-hilo associada ao tipo LTree. Exemplos: o hilomorfismo fib (série de Fibonacci) e o hilomorfismo mSort (`merge sort').
7. Definição genérica de um tipo indutivo de dados. Noção de functor de base. Operadores fmap vs catamorfismos: Politipismo da definição T a = B(a,T a) de um tipo indutivo genérico paramétrico. Noção de functor de tipo e sua formulação genérica como o catamorfismo T f =cata (in ·B(f,id)). Propriedade universal de um catamorfismo cata (f) do tipo genérico T a =B(a,t a) e suas derivadas: cancelamento-cata e reflexão-cata.
8. Classificação algorítmica. Quadro sinóptico dos principais algoritmos analisados e estudados ao longo da disciplina. Polimorfismo versus politipismo. Programação dita «genérica».
9. Programação funcional monádica. Motivação: funções parciais e sua composição. Manipulação de erros e mecanismos de excepção («exception handling»). Funções monádicas envolvendo listas. Mónadas versus functores. Noção de functor. Propriedades functoriais. Functores em HASKELL: a class Functor e o operador fmap. Regra geral para a composição monádica. Definição formal de mónade. Composição e sua unidade. Multiplicação e suas propriedades. Exemplos: listas e Maybe. Mónadas em HASKELL: a class Monad e os operadores return, (»=) e ». A notação do. Introdução à notação em compreensão. A definição fmap f x = do { a <- x ; return (f a) }. Regras para a monadificação de funções arbitrárias com recurso à notação "do".
TWiki's Education/CP0910 webThe Education/CP0910 web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910Copyright 2020 by contributing authors2020-10-30T14:39:00ZWebStatisticshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebStatistics2020-10-30T14:39:00ZStatistics for Education/CP0910 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/CP0910/Alunos2018-10-05T08:28:57ZClassificações dos exames da época especial Listadas por ordem crescente de número. 36773 10 ; 38207 R ; 40514 R ; 43110 R ; 43201 10 ; 47021 10 ; 47023 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraMaterialPedagogicohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/MaterialPedagogico2011-06-14T12:37:57ZMaterial Pedagógico Fichas das aulas práticas Ficha 1. Ficha 2. Ficha 3. Ficha 4. Ficha 5. Ficha 6. Ficha 7. Ficha 8. ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebSideBarhttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebSideBar2011-02-26T11:10:48ZTópicos Apresentação Docentes Contacto principal Alunos Regime de Avaliação Horário Atendimento Sumários Programa ... (last changed by JoseNunoOliveira)JoseNunoOliveiraCalendariohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Calendario2011-02-19T16:59:48ZSumários da disciplina Formato PDF (última actualização: 2010.Jun.24) : calendar 2010 01 01 2010 12 31.pdf. Formato ICS (última actualização: 2010.Jul.12) : ... (last changed by JoseNunoOliveira)JoseNunoOliveiraEquipaDocentehttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/EquipaDocente2011-02-15T11:46:46ZDocentes Docente Código Aulas Licenciaturas Nuno Oliveira 406006 T TP LCC LEI Soares Barbosa 406023 TP LCC Pacheco ... (last changed by JoseNunoOliveira)JoseNunoOliveiraProgramahttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Programa2011-01-12T17:45:20ZPrograma resumido Motivação. Teoria e método em programação. Cálculo e raciocínio sobre programas. Composicionalidade. Combinadores de programas. Modularidade ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebHomehttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebHome2011-01-12T17:40:08ZBenvindo a Cálculo de Programas Bem vindo à página da edição de 2009/10 da disciplina de de Programas. O meu nome é José Nuno Oliveira e sou o responsável por esta ... (last changed by JoseNunoOliveira)JoseNunoOliveiraBibliografiahttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Bibliografia2011-01-11T15:00:56ZBibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho, 2005. Livro em preparação: os 2, 3 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraAvisoshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Avisos2011-01-11T14:47:51Z27 Set Classificações do exame da época especial: estão disponíveis na secção Alunos 13 Set Exame da época especial: 15 Set 2010, 14h00 17h00, sala 2303 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraHorarioAtendimentohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/HorarioAtendimento2010-08-02T22:40:46ZHorá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)JoseNunoOliveiraHorarioSalasDocenteshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/HorarioSalasDocentes2010-03-09T09:29:56ZHorário Ref Dia Hora Tipo /Método Sala Cursos Docente 1 2. feira 11h00 13h00 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraRegimeAvaliacaohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/RegimeAvaliacao2010-02-23T13:10:47ZRegime de Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: 6 Fichas individuais (sem consulta) a realizar nas aulas TP: 12 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraFuncionamentohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Funcionamento2010-02-19T16:23:20ZAvaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: Prova individual escrita com nota mínima de 8 valores (60%). Projecto ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebPreferenceshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebPreferences2010-02-01T11:02:05ZEducation/CP0910 Web Preferences The following settings are web preferences of the Education/CP0910 web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)AlcinoCunhaWebTopicActionshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebTopicActions2007-05-18T08:03:35Z (last changed by AlcinoCunha)AlcinoCunha
Classificações dos exames da época especial Listadas por ordem crescente de número. 36773 10 ; 38207 R ; 40514 R ; 43110 R ; 43201 10 ; 47021 10 ; 47023 ...
Programa resumido Motivação. Teoria e método em programação. Cálculo e raciocínio sobre programas. Composicionalidade. Combinadores de programas. Modularidade ...
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2009/10 da disciplina de de Programas. O meu nome é José Nuno Oliveira e sou o responsável por esta ...
Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho, 2005. Livro em preparação: os 2, 3 ...
27 Set Classificações do exame da época especial: estão disponíveis na secção Alunos 13 Set Exame da época especial: 15 Set 2010, 14h00 17h00, sala 2303 ...
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 ...
Regime de Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: 6 Fichas individuais (sem consulta) a realizar nas aulas TP: 12 ...
Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: Prova individual escrita com nota mínima de 8 valores (60%). Projecto ...
Education/CP0910 Web Preferences The following settings are web preferences of the Education/CP0910 web. These preferences overwrite the site level preferences ...
Bem vindo à página da edição de 2009/10 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 altamente 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 (Formal Methods for High-Assurance Software), 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.
Tratando-se de programas de computador, essa sugestão é da maior importância: os programas escritos sem se pensar antes têm normalmente erros subtis que os testes não detectam e que constituem não só um perigo (por exemplo, em software crítico) mas também um custo acrescido para as empresas que os desenvolvem.
Cada vez mais, a indústria pede às universidades que ensinem a programar a sério, isto é, de forma a evitar tais erros. 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.
Resultados da Aprendizagem
Quien sabe por Algebra, sabe scientificamente. Pedro Nunes(1502-1578) in Libro de Algebra, 1567, fol 270r.
Análise de programas: escrever programas funcionais com recurso a combinadores algébricos.
Transformação de programas: recurso à algebra da programação para se obterem programas mais eficientes a partir de outros.
Compreensão de programas: recurso à factorização em pares "fold" + "unfold" (hilomorfismos) como forma de se perceber o significado de um programa funcional.
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.
Classificações dos exames da época especial Listadas por ordem crescente de número. 36773 10 ; 38207 R ; 40514 R ; 43110 R ; 43201 10 ; 47021 10 ; 47023 ...
27 Set Classificações do exame da época especial: estão disponíveis na secção Alunos 13 Set Exame da época especial: 15 Set 2010, 14h00 17h00, sala 2303 ...
Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho, 2005. Livro em preparação: os 2, 3 ...
Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: Prova individual escrita com nota mínima de 8 valores (60%). Projecto ...
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 ...
Programa resumido Motivação. Teoria e método em programação. Cálculo e raciocínio sobre programas. Composicionalidade. Combinadores de programas. Modularidade ...
Regime de Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: 6 Fichas individuais (sem consulta) a realizar nas aulas TP: 12 ...
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2009/10 da disciplina de de Programas. O meu nome é José Nuno Oliveira e sou o responsável por esta ...
Education/CP0910 Web Preferences The following settings are web preferences of the Education/CP0910 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/CP0910 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.
Related topics:WebChangesAlert, TWikiUsers, TWikiRegistration
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.
Natural Skin configuration
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/CP0910.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/CP0910 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/CP0910
The Education/CP0910 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/CP0910
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910
/twiki/pub/Main/LocalLogos/um_eengP.jpgAlunos
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Alunos
Classificações dos exames da época especial Listadas por ordem crescente de número. 36773 10 ; 38207 R ; 40514 R ; 43110 R ; 43201 10 ; 47021 10 ; 47023 ... (last changed by JoseNunoOliveira)2018-10-05T08:28:57ZJoseNunoOliveiraMaterialPedagogico
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/MaterialPedagogico
Material Pedagógico Fichas das aulas práticas Ficha 1. Ficha 2. Ficha 3. Ficha 4. Ficha 5. Ficha 6. Ficha 7. Ficha 8. ... (last changed by JoseNunoOliveira)2011-06-14T12:37:57ZJoseNunoOliveiraWebSideBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebSideBar
Tópicos Apresentação Docentes Contacto principal Alunos Regime de Avaliação Horário Atendimento Sumários Programa ... (last changed by JoseNunoOliveira)2011-02-26T11:10:48ZJoseNunoOliveiraCalendario
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Calendario
Sumários da disciplina Formato PDF (última actualização: 2010.Jun.24) : calendar 2010 01 01 2010 12 31.pdf. Formato ICS (última actualização: 2010.Jul.12) : ... (last changed by JoseNunoOliveira)2011-02-19T16:59:48ZJoseNunoOliveiraEquipaDocente
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/EquipaDocente
Docentes Docente Código Aulas Licenciaturas Nuno Oliveira 406006 T TP LCC LEI Soares Barbosa 406023 TP LCC Pacheco ... (last changed by JoseNunoOliveira)2011-02-15T11:46:46ZJoseNunoOliveiraPrograma
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Programa
Programa resumido Motivação. Teoria e método em programação. Cálculo e raciocínio sobre programas. Composicionalidade. Combinadores de programas. Modularidade ... (last changed by JoseNunoOliveira)2011-01-12T17:45:20ZJoseNunoOliveiraWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebHome
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2009/10 da disciplina de de Programas. O meu nome é José Nuno Oliveira e sou o responsável por esta ... (last changed by JoseNunoOliveira)2011-01-12T17:40:08ZJoseNunoOliveiraBibliografia
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Bibliografia
Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho, 2005. Livro em preparação: os 2, 3 ... (last changed by JoseNunoOliveira)2011-01-11T15:00:56ZJoseNunoOliveiraAvisos
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Avisos
27 Set Classificações do exame da época especial: estão disponíveis na secção Alunos 13 Set Exame da época especial: 15 Set 2010, 14h00 17h00, sala 2303 ... (last changed by JoseNunoOliveira)2011-01-11T14:47:51ZJoseNunoOliveiraHorarioAtendimento
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/HorarioAtendimento
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)2010-08-02T22:40:46ZJoseNunoOliveiraHorarioSalasDocentes
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/HorarioSalasDocentes
Horário Ref Dia Hora Tipo /Método Sala Cursos Docente 1 2. feira 11h00 13h00 ... (last changed by JoseNunoOliveira)2010-03-09T09:29:56ZJoseNunoOliveiraRegimeAvaliacao
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/RegimeAvaliacao
Regime de Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: 6 Fichas individuais (sem consulta) a realizar nas aulas TP: 12 ... (last changed by JoseNunoOliveira)2010-02-23T13:10:47ZJoseNunoOliveiraFuncionamento
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/Funcionamento
Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação: Método A: Prova individual escrita com nota mínima de 8 valores (60%). Projecto ... (last changed by JoseNunoOliveira)2010-02-19T16:23:20ZJoseNunoOliveiraWebPreferences
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebPreferences
Education/CP0910 Web Preferences The following settings are web preferences of the Education/CP0910 web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)2010-02-01T11:02:05ZAlcinoCunhaWebTopicActions
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/WebTopicActions
(last changed by AlcinoCunha)2007-05-18T08:03:35ZAlcinoCunhaWebCss
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP0910/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:59ZAlcinoCunha
27 Set - Classificações do exame da época especial: estão disponíveis na secção Alunos13 Set - Exame da época especial: 15-Set-2010, 14h00-17h00, sala 2303.
26 Jul - Classificações finais, após exame de recurso: estão disponíveis na secção Alunos11 Jul - No Material encontra-se uma nova versão do PDF do teste de 18-Jun com a resolução das questões que têm suscitado mais
dúvidas.
08 Jul - detalhes sobre exame de recurso: 12-Jul, das 14h00 às 16h30, salas 2201, 2202, 2203 e 2204. (Ver também calendário oficial)
05 Jul - atenção aos transparentes sobre monadificação que estão no material da disciplina (ficheiro EasyMonads.pdf)
02 Jul - as classificações à data do teste de 18-Jun serão afixadas amanhã (3-Jul) de manhã.
23 Jun - o exame de recurso terá lugar dia 12-Jul (detalhes a anunciar).
14 Jun - O docente das aulas teóricas estará disponível no Lab. 1.04 para tirar dúvidas para o teste nas tardes de
3ª-feira (16h30-18h30) e 4ª-feira (14h-16h).
14 Jun - o formato do teste de 18-Jun encontra-se
aqui. Ver as instruções relativas à diferença entre os métodos A e B.
11 Jun
- Notas (Método A): estão disponíveis em Alunos. Os alunos que não obtiveram a nota mínima devem apresentar-se a recurso.
11 Jun
- Teste individual: terá lugar a 18-Jun, das 11h00-13h30, nas salas
Salas 2111, 2201, 2202, 2203, 2204, 2205 e 2209.
07 Jun
- Questões (Método A): estão disponíveis no material pedagógico.
04 Jun
- Teste de CP: terá lugar de hoje a quinze dias, 18-Jun de manhã, em local/hora a anunciar aqui.
04 Jun
- Teóricas do dia 11-Jun: serão substituidas por aula prática de compensação, na mesma sala.
01 Jun
- Turno TP/LCC: a aula extra deste turno será dia 2-Jun, das 15 às 18, no anfiteatro DI-A1.
28 Mai
- Turno TP-4: haverá uma aula complementar da de hoje no dia
02-Jun, 15h-17h (na mesma sala).
20 Mai
- Turno TP(5)/B: não haverá aula amanhã dia
21-Mai, 16h-18h, devido a uma reunião do docente na Universidade do Porto. A aula será compensada na próxima 6ª-feira, dia 28-Mai,
das 18h-19h30.
19 Mai
- Turno de LCC: haverá uma aula extra no dia
02-Jun, 14h-17h.
07 Mai
- Turno TP-2: haverá uma aula de substituição da de ontem 4.a-feira dia
19-Mai, 15h-17h (na mesma sala).
07 Mai
- Método A: as QAIs nrs.5+6 terão lugar nos turnos dos dias 27-Mai, 28-Mai e
31-Mai.
07 Mai
- Método A: a QAI nr.4 terá lugar nos turnos dos dias 20-Mai, 21-Mai e
24-Mai.
30 Abr
- A aula teórica do dia
4-Maio será substituída por uma de SO.
18 Abr
- Ao contrário de que foi anunciado, os turnos de 5ª-feira (22-Abr) de LCC e o turno TP-05 de 23-Abr (LEI) funcionarão
regularmente. Nos de LCC haverá avaliação (alunos do Método A).
13 Abr
- Método A: a QAI nr.3 terá lugar nos turnos dos dias
22-Abr, 23-Abr e 26-Abr.
08 Abr
- Turno TP-2: haverá uma aula de substituição da de hoje na próxima 4.a-feira dia
14-Abr, 15h-17h (na mesma sala).
06 Abr
- Método A: a QAI nr.2 terá lugar nos turnos dos dias 15-Abr, 16-Abr e 19-Abr.
11 Mar
- Método A: primeira Questão para Avaliação Individual (QAI nr.1) terá lugar nos turnos da semana 22-Mar a 26-Mar.
04 Mar
- Já só há 4 vagas para o Método A, no turno TP-2.
01 Mar
- A aula de amanhã,
02-Mar, será (execpcionalmente) de 2 horas, das 9h00 às 11h00, no anfiteatro CP2 103.
26 Fev
- Há 10 vagas por preencher, ver Alunos24 Fev
- Anuncia-se que estão abertas mais 4 vagas em cada turno (LEI, TP-1 a TP-4).
Importante: os pedidos de troca serão considerados por ordem de chegada, mas só aqueles que seguirem as instruções que constam em Alunos. Todos os outros serão ignorados.
23 Fev - Estão já publicadas as inscrições nos turnos TP-1 a TP-4 (LEI)
23 Fev - As aulas práticas começam 2ª-feira, dia 29 (LEI) e dia 4 (LCC)
19 Fev
- As aulas teóricas começam 3ª-feira, dia 23 (LEI) e dia 26 (LCC)
27 Set - Classificações do exame da época especial: estão disponíveis na secção Alunos13 Set - Exame da época especial: 15-Set-2010, 14h00-17h00, sala 2303.
26 Jul - Classificações finais, após exame de recurso: estão disponíveis na secção Alunos11 Jul - No Material encontra-se uma nova versão do PDF do teste de 18-Jun com a resolução das questões que têm suscitado mais
dúvidas.
08 Jul - detalhes sobre exame de recurso: 12-Jul, das 14h00 às 16h30, salas 2201, 2202, 2203 e 2204. (Ver também calendário oficial)
05 Jul - atenção aos transparentes sobre monadificação que estão no material da disciplina (ficheiro EasyMonads.pdf)
02 Jul - as classificações à data do teste de 18-Jun serão afixadas amanhã (3-Jul) de manhã.
23 Jun - o exame de recurso terá lugar dia 12-Jul (detalhes a anunciar).
14 Jun - O docente das aulas teóricas estará disponível no Lab. 1.04 para tirar dúvidas para o teste nas tardes de
3ª-feira (16h30-18h30) e 4ª-feira (14h-16h).
14 Jun - o formato do teste de 18-Jun encontra-se
aqui. Ver as instruções relativas à diferença entre os métodos A e B.
11 Jun
- Notas (Método A): estão disponíveis em Alunos. Os alunos que não obtiveram a nota mínima devem apresentar-se a recurso.
11 Jun
- Teste individual: terá lugar a 18-Jun, das 11h00-13h30, nas salas
Salas 2111, 2201, 2202, 2203, 2204, 2205 e 2209.
07 Jun
- Questões (Método A): estão disponíveis no material pedagógico.
04 Jun
- Teste de CP: terá lugar de hoje a quinze dias, 18-Jun de manhã, em local/hora a anunciar aqui.
04 Jun
- Teóricas do dia 11-Jun: serão substituidas por aula prática de compensação, na mesma sala.
01 Jun
- Turno TP/LCC: a aula extra deste turno será dia 2-Jun, das 15 às 18, no anfiteatro DI-A1.
28 Mai
- Turno TP-4: haverá uma aula complementar da de hoje no dia
02-Jun, 15h-17h (na mesma sala).
20 Mai
- Turno TP(5)/B: não haverá aula amanhã dia
21-Mai, 16h-18h, devido a uma reunião do docente na Universidade do Porto. A aula será compensada na próxima 6ª-feira, dia 28-Mai,
das 18h-19h30.
19 Mai
- Turno de LCC: haverá uma aula extra no dia
02-Jun, 14h-17h.
07 Mai
- Turno TP-2: haverá uma aula de substituição da de ontem 4.a-feira dia
19-Mai, 15h-17h (na mesma sala).
07 Mai
- Método A: as QAIs nrs.5+6 terão lugar nos turnos dos dias 27-Mai, 28-Mai e
31-Mai.
07 Mai
- Método A: a QAI nr.4 terá lugar nos turnos dos dias 20-Mai, 21-Mai e
24-Mai.
30 Abr
- A aula teórica do dia
4-Maio será substituída por uma de SO.
18 Abr
- Ao contrário de que foi anunciado, os turnos de 5ª-feira (22-Abr) de LCC e o turno TP-05 de 23-Abr (LEI) funcionarão
regularmente. Nos de LCC haverá avaliação (alunos do Método A).
13 Abr
- Método A: a QAI nr.3 terá lugar nos turnos dos dias
22-Abr, 23-Abr e 26-Abr.
08 Abr
- Turno TP-2: haverá uma aula de substituição da de hoje na próxima 4.a-feira dia
14-Abr, 15h-17h (na mesma sala).
06 Abr
- Método A: a QAI nr.2 terá lugar nos turnos dos dias 15-Abr, 16-Abr e 19-Abr.
11 Mar
- Método A: primeira Questão para Avaliação Individual (QAI nr.1) terá lugar nos turnos da semana 22-Mar a 26-Mar.
04 Mar
- Já só há 4 vagas para o Método A, no turno TP-2.
01 Mar
- A aula de amanhã,
02-Mar, será (execpcionalmente) de 2 horas, das 9h00 às 11h00, no anfiteatro CP2 103.
26 Fev
- Há 10 vagas por preencher, ver Alunos24 Fev
- Anuncia-se que estão abertas mais 4 vagas em cada turno (LEI, TP-1 a TP-4).
Importante: os pedidos de troca serão considerados por ordem de chegada, mas só aqueles que seguirem as instruções que constam em Alunos. Todos os outros serão ignorados.
23 Fev - Estão já publicadas as inscrições nos turnos TP-1 a TP-4 (LEI)
23 Fev - As aulas práticas começam 2ª-feira, dia 29 (LEI) e dia 4 (LCC)
19 Fev
- As aulas teóricas começam 3ª-feira, dia 23 (LEI) e dia 26 (LCC)