20 Set - Classificações da época especial - ver Alunos.
10 Set - Teste de Junho com a maior parte das questões resolvidas: ver Material.
10 Set - Exame da Época especial (LCC+LEI): Sala CP1-104, 11-Set das 9h00 às 11h30.
07 Set - Acaba de ser marcada a data do exame da Época especial - ver Sumários. A hora e a sala serão entretanto confirmadas e anunciadas aqui.
25 Jul - Acabam de ser lançadas em Alunos as classificações apuradas após o exame de recurso. Amanhã terei (JNO) disponibilidade para mostrar exames na parte da manhã.
21 Jul - Fotografias: avisa-se uma vez mais que os alunos que não tem fotografia no portal académico (logo também não no BB) dificilmente poderão beneficiar da sua avaliação contínua na classificação final da disciplina.
10 Jul - Chama-se a atenção dos alunos para a hora de início do exame de recurso de 11-Jul: 11h00, nas salas CPII-201 a 204. Os alunos poderão ter como (único) elemento de consulta o formulário da disciplina.
28 Jun - Classificações à data da época normal - ver Alunos. Os alunos sem nota positiva estão admitidos a exame de recurso, que terá lugar no dia 11 de Julho.
17 Jun - Chama-se de novo a atenção dos alunos para a hora de início do teste de 18-Jun : 13h00, nas salas CP2 201, 202, 203 e 204. Os alunos poderão ter como (único) elemento de consulta o formulário da disciplina.
12 Jun - Alunos do Método A : as classificações dos mini-testes estão afixadas na secção Alunos10 Jun - Confirma-se que o teste de 18-Jun se inicia às 13h00, pois as salas têm que estar livres antes das 16h00 para outros testes.
As salas são as seguintes: CP2 201, 202, 203 e 204.
28 Mai - Publicada no Material Pedagógico a Ficha nr. 11 destinada às aulas práticas da semana de 28-Mai a 1-Jun.
27 Mai - Alunos do Método A : a matéria a avaliar no miniteste de 30-Mai (às 16h) é toda a que é coberta pelas fichas 1 a 9, inclusivé.
22 Mai - Alunos do Método A : Devido a dificuldades de calendarização das aulas práticas, informa-se que a segunda ficha de avaliação será feita, para todos os turnos (LCC+LEI) no dia 30-Mai às 16h, salas CP2-201 e 202. Ver sumários da disciplina.
22 Mai - Chama-se a atenção dos alunos para as aulas suplementares que estão anunciadas nos sumários da disciplina.
22 Mai - Publicada no Material Pedagógico a Ficha nr. 10 destinada às aulas práticas da semana de 22-Mai a 25-Mai.
05 Mai - Publicada no Material Pedagógico a Ficha nr. 9 destinada às aulas práticas da semana de 07-Mai a 11-Mai.
01 Mai - Última hora: Avisam-se os alunos o turno de 4 feira, 9-11h, que a aula do dia 2 de Maio não se poderá realizar (participação do docente na sessão comemorativa dos 25 anos de LCC). A aula será substituida por uma sessão na próxima 2feira, dia 7 de Maio, das 18-20h, no DI-A2.
01 Mai - Publicada no Material Pedagógico a Ficha nr.8 destinada às aulas práticas da semana de 30-Abr a 04-Mai.
21 Abr - Publicada no Material Pedagógico a Ficha nr.7 destinada às aulas práticas da semana de 23-Abr a 27-Abr.
11 Abr - A listagem dos alunos admitidos no corrente ano lectivo ao método A desta disciplina, de acordo com as condições de frequência que constam do Regime de Avaliação, encontra-se em Alunos.
09 Abr - Alunos do método A: 1ª ficha de avaliação terá lugar nas aulas TP da semana de 16-20 Abr - ver sumários.
09 Abr - Chama-se a atenção dos alunos para a troca entre as aulas T/TP de LCC na semana de 16-20 Abr - ver sumários.
09 Abr - Publicada no Material Pedagógico a Ficha nr.6 destinada às aulas práticas da semana de 26-Mar a 30-Mar.
24 Mar - Publicada no Material Pedagógico a Ficha nr.5 destinada às aulas práticas da semana de 26-Mar a 30-Mar.
16 Mar - Publicada no Material Pedagógico a Ficha nr.4 destinada às aulas práticas da semana de 19-Mar a 23-Mar.
09 Mar - Publicada no Material Pedagógico a Ficha nr.3 destinada às aulas práticas da semana de 12-Mar a 16-Mar.
09 Mar - Insiste-se para que os alunos mantenham a sua caixa de correio institucional operacional, pois continua a haver mensagens devolvidas impossibilitando assim a boa comunicação entre alunos e equipa docente.
08 Mar - Publicada no Material Pedagógico a biblioteca Cp.hs de combinadores básicos do Cálculo de Programas.
03 Mar - Publicada no Material Pedagógico a Ficha nr.2 destinada às aulas práticas da semana de 05-Mar a 09-Mar.
27 Fev - Publicada a Bibliografia e, no Material Pedagógico, o formulário da disciplina.
25 Fev - Publicada no Material Pedagógico a ficha nr.1, destinada às aulas práticas da semana que começa a 27-Fev.
23 Fev - LCC: as inscrições dos alunos no método A (ver regime de avaliação) serão feitas de forma electrónica via Blackboard na próxima 2a-feira, dia 27-Fev.
20 Fev - LEI: as inscrições nos turnos do método A (ver horário) serão feitas de forma electrónica via Blackboard na próxima 4a-feira, dia 22-Fev, a partir das 14h00, até à mesma hora do dia seguinte.
20 Fev - LEI: chama-se a atenção dos alunos para a mudança de horário das aulas teóricas - ver horário. A primeira aula teórica com leccionação de matéria terá lugar dia 28-Fev. Prestar atenção ao que vai sendo anunciado no calendário.
20 Fev - LCC: a aula de apresentação terá lugar dia 23-Fev - prestar atenção aos que vai sendo anunciado no calendário.
18 Fev - A aulas iniciam-se na semana de 20-Fev, ver Sumários.
13 Fev - Criada esta página de avisos.
J.N. Oliveira. Program Design by Calculation. Departamento de Informática, Universidade do Minho. Livro em preparação: os capítulos relevantes para esta disciplina são o segundo, o terceiro e o quarto .
Bibliografia complementar
A. Cunha. Cálculo de Programas: notas teórico-práticas. Departamento de Informática, Universidade do Minho, 2005. Documento em preparação: (PDF).
R. Bird and O. de Moor. Algebra of Programming. Series in Computer Science. Prentice-Hall International, 1997. C. A. R. Hoare, series editor.
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 com um mínimo de uma semana de antecedência.
Atendimento electrónico (FAQs)
FAQ1 - Como mostro a igualdade entre (f . id) x (g + id).i1 e f x (g + id) . ( id x i1)?
R: O problema é a falta de uns parênteses: para f x (g + id) . ( id x i1) tipar bem é preciso colocar parênteses à esquerda da composição: (f x (g + id)) . ( id x i1). Depois é só aplicar a lei functor-x. NB: na nossa
notação a composição tem prioridade sobre qualquer outro combinador.
FAQ2 - Gostaria de saber se a função (A x C + B x D) -- [pi2,pi2] --> C + D está bem tipada.
R: Para estar era preciso que as duas instâncias de pi2 tivessem o mesmo tipo de saída. Ora isso não acontece: tem-se A x C -- pi2 --> C num caso e B x D -- pi2 --> D no outro, ambos diferentes de C + D.
Isto explica o que se deve fazer: escrever pi2 + pi2 em vez de [pi2,pi2].
FAQ3 - Como devo abordar a questão 6 do Teste de LEI do ano de 2009?.
R: O tipo From a é definido por data From a = First a | Next (From a) na questão 4.
Logo tem-se From a isomorfo a F(From a), para F X = a + X e F f = id + f. Tem-se ainda in = [First,Next] e
out(First a) = i1 aout(Next x) = i2 x
Para converter rev num hilo deste tipo teremos que encontar os seus dois genes divide e conquer
tais que aux = conquer . (F aux) . divide. Pelo tipo _aux :: ([a], [a]) -> [a]: vê-se que os tipos têm de ser
divide : [a] x [a]->([a] x [a])
e
conquer : F [a] -> [a]
Das cláusulas
aux([],l) =laux(h:t,l) = aux (t,h:l)
infere-se
divide([],l) = i1 ldivide (h:t,l) = i2(t,h:l)
Como nada acontece após a chamada recursiva nessas mesmas cláusulas, ter-se-á
conquer = [id,id]
Para ver isto a funcionar implemente-se em Haskell:
data From a = First a | Next (From a) deriving ShowinF = either First NextoutF(First a) = i1 aoutF(Next x) = i2 xcataF h = h . recF (cataF h) . outFrecF f = id -|- fanaF g = inF . (recF (anaF g) ) . ghyloF g h = cataF g . anaF hdivide([],l) = i1 ldivide (h:t,l) = i2(t,h:l)conquer = either id id
Ver-se-á que, por exemplo,
hyloF conquer divide ([1,2,3],[4,5]) == aux([1,2,3],[4,5]) etc
FAQ4 - Tenho uma dúvida na última propriedade do exercício 2 (Ficha nr 4): pegando na primeira parte da igualdade e usando duas vezes a propriedade (53) do formulário, obtenho
[[a,b].p?,[c,d].p?].p? Posso neste momento posso usar a propriedade (20), absorçao-+? Assim obtinha [[a,b],[c,d]].(p?+p?).p? de onde prossigo usando (3) da mesma ficha.
R: Claro que sim, esse é o caminho a seguir. De um modo geral, sempre que tiver uma alternativa de (quaisquer) composições a lei é aplicável, dando uma composição de uma alternativa com uma soma.
FAQ5 - Gostaria de perceber melhor a razão para haver uma notação funcional com variáveis ("pointfree") e outra sem elas ("pointwise") e qual se deve escolher e em que circunstâncias.
Sem variáveis os programas ficam reduzidos a expressões algébricas sobre as quais se pode raciocinar usando o Cálculo de Programas. Após os cálculos (eg. conversão da função de Fibonacci - recursiva e ineficiente -- num ciclo -- não recursivo, eficiente ) converte-se o resultado final de novo para Haskell com variáveis e... "entrega-se ao cliente". Se tentar fazer o mesmo sempre com variáveis os cálculos terão que usar provas por indução matemática e serão mais longos e (para muitos) difíceis de perceber.
-- JoseNunoOliveira - Página criada em 14 Feb 2012
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.
LTree.hs - biblioteca contendo os cata/ana/hilomorfismos do tipo de dados árvores binárias de folhas - LTree a = Leaf a | Split (LTree a, LTree a) e aplicações suas (e.g. duplo factorial, `merge-sort', Fibonacci etc).
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).
List.hs - biblioteca geral para listas em Haskell, contendo a respectiva bateria de combinadores ana+cata+hilo e exemplos de utilização, que incluem os dados nas aulas.
Nat.hs - biblioteca de naturais (ciclos-for, etc).
Cp.hs - contendo os combinadores de base da notação adoptada, e.g. split, ><, -|- etc.
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.
Parametrização e polimorfismo. Inferência de tipos polimórficos. Programação genérica. Functores de tipo. Introdução ao politipismo.
Programação funcional com efeitos. Mónades e sua teoria. Construção de programas monádicos. Exemplos: excepções, processamento de listas, computações com estado. Breve referência ao `input/output'.
Programa detalhado
A apresentar no final do semestre.
-- JoseNunoOliveira - 13 Feb 2012
Os alunos devem escolher um dos seguintes métodos de avaliação (época normal):
Método A:
2 Fichas individuais (3 questões cada, sem consulta) a realizar nas aulas TP: 12 valores (total de 6 questões), com nota mínima de 8 valores
Prova individual escrita (sem consulta e só para alunos com nota mínima): 8 valores - a realizar no dia 18-Junho, conforme consta do calendário da disciplina.
A opção pelo Método A faz-se no momento de inscrição e é uma opção individual e irreversível durante o semestre.
Método B:
Prova individual escrita (sem consulta): 20 valores, com nota mínima de 10 valores - a realizar no dia 18-Junho, conforme consta do calendário da disciplina.
IMPORTANTE: Condições de frequência/avaliação:
Alunos de 1ª inscrição: podem escolher entre os métodos de A ou B.
Outros alunos: quem frequentou o método de avaliação A em (quaisquer) anos anteriores só pode escolher o método B. (A sua inscrição no método A será liminarmente rejeitada.)
TWiki's Education/CP1112 webThe Education/CP1112 web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112Copyright 2020 by contributing authors2020-10-30T14:39:04ZWebStatisticshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebStatistics2020-10-30T14:39:04ZStatistics for Education/CP1112 Web Month: Topic views: Topic saves: File uploads: Most popular topic views: Top contributors for topic ... (last changed by TWikiGuest)TWikiGuestWebSideBarhttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebSideBar2018-10-05T08:18:00ZTópicos Apresentação Docentes Contacto (1112.8204N5) pública Alunos Regime de Avaliação Horário Atendimento Sumários ... (last changed by JoseNunoOliveira)JoseNunoOliveiraMaterialPedagogicohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/MaterialPedagogico2013-06-17T00:21:07ZMaterial Pedagógico Fichas das aulas práticas Ficha 1 Ficha 2 Ficha 3 Ficha 4 Ficha 5 Ficha 6 Ficha 7 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraAvisoshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Avisos2013-03-27T06:50:07Z20 Set Classificações da época especial ver Alunos. 10 Set Teste de Junho com a maior parte das questões resolvidas: ver Material. 10 Set Exame da ... (last changed by JoseNunoOliveira)JoseNunoOliveiraAlunoshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Alunos2012-09-20T17:15:10ZClassificações finais Época normal: Foram lançadas no livro de termos. Época especial: Nr Curso Class 30205 LEI 15 38176 LEI R 38207 LEI ... (last changed by JoseNunoOliveira)JoseNunoOliveiraCalendariohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Calendario2012-09-11T17:21:24ZSumários da disciplina Formato ICS (última actualização: 2012.Set.11) : CP10 12.ics.zip. Actualização contínua no calendário: (last changed by JoseNunoOliveira)JoseNunoOliveiraHorarioAtendimentohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/HorarioAtendimento2012-06-16T13:27:24ZHorá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)JoseNunoOliveiraBibliografiahttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Bibliografia2012-05-10T12:37:29ZBibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Livro em preparação: ... (last changed by JoseNunoOliveira)JoseNunoOliveiraHorarioSalasDocenteshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/HorarioSalasDocentes2012-04-16T08:59:05ZHorário Atenção à mudança de horário das teóricas em LEI: Ref Dia Hora Tipo / Método Sala Cursos Docente 1 2. feira 16h00 18h00 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraEquipaDocentehttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/EquipaDocente2012-02-22T16:12:16ZDocentes Docente Código Aulas Licenciaturas Soares Barbosa 406023 TP LEI Nuno Oliveira 406006 T LCC, LEI Pacheco ... (last changed by JoseNunoOliveira)JoseNunoOliveiraRegimeAvaliacaohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/RegimeAvaliacao2012-02-20T16:28:52ZRegime de Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação (época normal): Método A: 2 Fichas individuais (3 questões cada, sem consulta ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebPreferenceshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebPreferences2012-02-17T12:05:39ZEducation/CP1112 Web Preferences The following settings are web preferences of the Education/CP1112 web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)AlcinoCunhaWebHomehttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebHome2012-02-14T13:28:47ZBenvindo a Cálculo de Programas Bem vindo à página da edição de 2011/12 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ... (last changed by JoseNunoOliveira)JoseNunoOliveiraProgramahttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Programa2012-02-13T12:50:41ZPrograma 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)JoseNunoOliveiraDocenteshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Docentes2012-02-13T12:33:01Z13 Fev Criada esta página. JoseNunoOliveira 13 Feb 2012 (last changed by JoseNunoOliveira)JoseNunoOliveiraWebTopicActionshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebTopicActions2007-05-18T08:03:35Z (last changed by AlcinoCunha)AlcinoCunha
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 ...
Bibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Livro em preparação: ...
Regime de Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação (época normal): Método A: 2 Fichas individuais (3 questões cada, sem consulta ...
Education/CP1112 Web Preferences The following settings are web preferences of the Education/CP1112 web. These preferences overwrite the site level preferences ...
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2011/12 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ...
Programa resumido Motivação. Teoria e método em programação. Cálculo e raciocínio sobre programas. Composicionalidade. Combinadores de programas. Modularidade ...
Bem vindo à página da edição de 2011/12 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.
Cada vez mais, a indústria pede às universidades que ensinem a programar a sério, isto é, de forma reflectida, 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.
Resultados da Aprendizagem
Quien sabe por Algebra, sabe scientificamente. Pedro Nunes(1502-1578) in Libro de Algebra, 1567, fol 270r.
Construção de programas: escrever programas funcionais de forma composicional, com recurso a combinadores algébricos.
Transformação de programas: recurso à algebra da programação para se obterem programas mais eficientes sem comprometer as sua correcção.
Análise e compreensão de programas: recurso à factorização em pares "fold" + "unfold" (hilomorfismos) como forma de se perceber a arquitectura dos algoritmos e sua catalogação.
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.
Bibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Livro em preparação: ...
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 (época normal): Método A: 2 Fichas individuais (3 questões cada, sem consulta ...
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2011/12 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ...
Education/CP1112 Web Preferences The following settings are web preferences of the Education/CP1112 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/CP1112 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/CP1112.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/CP1112 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/CP1112
The Education/CP1112 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/CP1112
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112
/twiki/pub/Main/LocalLogos/um_eengP.jpgWebSideBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebSideBar
Tópicos Apresentação Docentes Contacto (1112.8204N5) pública Alunos Regime de Avaliação Horário Atendimento Sumários ... (last changed by JoseNunoOliveira)2018-10-05T08:18:00ZJoseNunoOliveiraMaterialPedagogico
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/MaterialPedagogico
Material Pedagógico Fichas das aulas práticas Ficha 1 Ficha 2 Ficha 3 Ficha 4 Ficha 5 Ficha 6 Ficha 7 ... (last changed by JoseNunoOliveira)2013-06-17T00:21:07ZJoseNunoOliveiraAvisos
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Avisos
20 Set Classificações da época especial ver Alunos. 10 Set Teste de Junho com a maior parte das questões resolvidas: ver Material. 10 Set Exame da ... (last changed by JoseNunoOliveira)2013-03-27T06:50:07ZJoseNunoOliveiraAlunos
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Alunos
Classificações finais Época normal: Foram lançadas no livro de termos. Época especial: Nr Curso Class 30205 LEI 15 38176 LEI R 38207 LEI ... (last changed by JoseNunoOliveira)2012-09-20T17:15:10ZJoseNunoOliveiraCalendario
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Calendario
Sumários da disciplina Formato ICS (última actualização: 2012.Set.11) : CP10 12.ics.zip. Actualização contínua no calendário: (last changed by JoseNunoOliveira)2012-09-11T17:21:24ZJoseNunoOliveiraHorarioAtendimento
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/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)2012-06-16T13:27:24ZJoseNunoOliveiraBibliografia
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Bibliografia
Bibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Livro em preparação: ... (last changed by JoseNunoOliveira)2012-05-10T12:37:29ZJoseNunoOliveiraHorarioSalasDocentes
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/HorarioSalasDocentes
Horário Atenção à mudança de horário das teóricas em LEI: Ref Dia Hora Tipo / Método Sala Cursos Docente 1 2. feira 16h00 18h00 ... (last changed by JoseNunoOliveira)2012-04-16T08:59:05ZJoseNunoOliveiraEquipaDocente
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/EquipaDocente
Docentes Docente Código Aulas Licenciaturas Soares Barbosa 406023 TP LEI Nuno Oliveira 406006 T LCC, LEI Pacheco ... (last changed by JoseNunoOliveira)2012-02-22T16:12:16ZJoseNunoOliveiraRegimeAvaliacao
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/RegimeAvaliacao
Regime de Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação (época normal): Método A: 2 Fichas individuais (3 questões cada, sem consulta ... (last changed by JoseNunoOliveira)2012-02-20T16:28:52ZJoseNunoOliveiraWebPreferences
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebPreferences
Education/CP1112 Web Preferences The following settings are web preferences of the Education/CP1112 web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)2012-02-17T12:05:39ZAlcinoCunhaWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebHome
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2011/12 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ... (last changed by JoseNunoOliveira)2012-02-14T13:28:47ZJoseNunoOliveiraPrograma
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/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)2012-02-13T12:50:41ZJoseNunoOliveiraDocentes
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Docentes
13 Fev Criada esta página. JoseNunoOliveira 13 Feb 2012 (last changed by JoseNunoOliveira)2012-02-13T12:33:01ZJoseNunoOliveiraWebTopicActions
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebTopicActions
(last changed by AlcinoCunha)2007-05-18T08:03:35ZAlcinoCunhaWebCss
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/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
20 Set - Classificações da época especial - ver Alunos.
10 Set - Teste de Junho com a maior parte das questões resolvidas: ver Material.
10 Set - Exame da Época especial (LCC+LEI): Sala CP1-104, 11-Set das 9h00 às 11h30.
07 Set - Acaba de ser marcada a data do exame da Época especial - ver Sumários. A hora e a sala serão entretanto confirmadas e anunciadas aqui.
25 Jul - Acabam de ser lançadas em Alunos as classificações apuradas após o exame de recurso. Amanhã terei (JNO) disponibilidade para mostrar exames na parte da manhã.
21 Jul - Fotografias: avisa-se uma vez mais que os alunos que não tem fotografia no portal académico (logo também não no BB) dificilmente poderão beneficiar da sua avaliação contínua na classificação final da disciplina.
10 Jul - Chama-se a atenção dos alunos para a hora de início do exame de recurso de 11-Jul: 11h00, nas salas CPII-201 a 204. Os alunos poderão ter como (único) elemento de consulta o formulário da disciplina.
28 Jun - Classificações à data da época normal - ver Alunos. Os alunos sem nota positiva estão admitidos a exame de recurso, que terá lugar no dia 11 de Julho.
17 Jun - Chama-se de novo a atenção dos alunos para a hora de início do teste de 18-Jun : 13h00, nas salas CP2 201, 202, 203 e 204. Os alunos poderão ter como (único) elemento de consulta o formulário da disciplina.
12 Jun - Alunos do Método A : as classificações dos mini-testes estão afixadas na secção Alunos10 Jun - Confirma-se que o teste de 18-Jun se inicia às 13h00, pois as salas têm que estar livres antes das 16h00 para outros testes.
As salas são as seguintes: CP2 201, 202, 203 e 204.
28 Mai - Publicada no Material Pedagógico a Ficha nr. 11 destinada às aulas práticas da semana de 28-Mai a 1-Jun.
27 Mai - Alunos do Método A : a matéria a avaliar no miniteste de 30-Mai (às 16h) é toda a que é coberta pelas fichas 1 a 9, inclusivé.
22 Mai - Alunos do Método A : Devido a dificuldades de calendarização das aulas práticas, informa-se que a segunda ficha de avaliação será feita, para todos os turnos (LCC+LEI) no dia 30-Mai às 16h, salas CP2-201 e 202. Ver sumários da disciplina.
22 Mai - Chama-se a atenção dos alunos para as aulas suplementares que estão anunciadas nos sumários da disciplina.
22 Mai - Publicada no Material Pedagógico a Ficha nr. 10 destinada às aulas práticas da semana de 22-Mai a 25-Mai.
05 Mai - Publicada no Material Pedagógico a Ficha nr. 9 destinada às aulas práticas da semana de 07-Mai a 11-Mai.
01 Mai - Última hora: Avisam-se os alunos o turno de 4 feira, 9-11h, que a aula do dia 2 de Maio não se poderá realizar (participação do docente na sessão comemorativa dos 25 anos de LCC). A aula será substituida por uma sessão na próxima 2feira, dia 7 de Maio, das 18-20h, no DI-A2.
01 Mai - Publicada no Material Pedagógico a Ficha nr.8 destinada às aulas práticas da semana de 30-Abr a 04-Mai.
21 Abr - Publicada no Material Pedagógico a Ficha nr.7 destinada às aulas práticas da semana de 23-Abr a 27-Abr.
11 Abr - A listagem dos alunos admitidos no corrente ano lectivo ao método A desta disciplina, de acordo com as condições de frequência que constam do Regime de Avaliação, encontra-se em Alunos.
09 Abr - Alunos do método A: 1ª ficha de avaliação terá lugar nas aulas TP da semana de 16-20 Abr - ver sumários.
09 Abr - Chama-se a atenção dos alunos para a troca entre as aulas T/TP de LCC na semana de 16-20 Abr - ver sumários.
09 Abr - Publicada no Material Pedagógico a Ficha nr.6 destinada às aulas práticas da semana de 26-Mar a 30-Mar.
24 Mar - Publicada no Material Pedagógico a Ficha nr.5 destinada às aulas práticas da semana de 26-Mar a 30-Mar.
16 Mar - Publicada no Material Pedagógico a Ficha nr.4 destinada às aulas práticas da semana de 19-Mar a 23-Mar.
09 Mar - Publicada no Material Pedagógico a Ficha nr.3 destinada às aulas práticas da semana de 12-Mar a 16-Mar.
09 Mar - Insiste-se para que os alunos mantenham a sua caixa de correio institucional operacional, pois continua a haver mensagens devolvidas impossibilitando assim a boa comunicação entre alunos e equipa docente.
08 Mar - Publicada no Material Pedagógico a biblioteca Cp.hs de combinadores básicos do Cálculo de Programas.
03 Mar - Publicada no Material Pedagógico a Ficha nr.2 destinada às aulas práticas da semana de 05-Mar a 09-Mar.
27 Fev - Publicada a Bibliografia e, no Material Pedagógico, o formulário da disciplina.
25 Fev - Publicada no Material Pedagógico a ficha nr.1, destinada às aulas práticas da semana que começa a 27-Fev.
23 Fev - LCC: as inscrições dos alunos no método A (ver regime de avaliação) serão feitas de forma electrónica via Blackboard na próxima 2a-feira, dia 27-Fev.
20 Fev - LEI: as inscrições nos turnos do método A (ver horário) serão feitas de forma electrónica via Blackboard na próxima 4a-feira, dia 22-Fev, a partir das 14h00, até à mesma hora do dia seguinte.
20 Fev - LEI: chama-se a atenção dos alunos para a mudança de horário das aulas teóricas - ver horário. A primeira aula teórica com leccionação de matéria terá lugar dia 28-Fev. Prestar atenção ao que vai sendo anunciado no calendário.
20 Fev - LCC: a aula de apresentação terá lugar dia 23-Fev - prestar atenção aos que vai sendo anunciado no calendário.
18 Fev - A aulas iniciam-se na semana de 20-Fev, ver Sumários.
13 Fev - Criada esta página de avisos.
J.N. Oliveira. Program Design by Calculation. Departamento de Informática, Universidade do Minho. Livro em preparação: os capítulos relevantes para esta disciplina são o segundo, o terceiro e o quarto .
Bibliografia complementar
A. Cunha. Cálculo de Programas: notas teórico-práticas. Departamento de Informática, Universidade do Minho, 2005. Documento em preparação: (PDF).
R. Bird and O. de Moor. Algebra of Programming. Series in Computer Science. Prentice-Hall International, 1997. C. A. R. Hoare, series editor.
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 com um mínimo de uma semana de antecedência.
Atendimento electrónico (FAQs)
FAQ1 - Como mostro a igualdade entre (f . id) x (g + id).i1 e f x (g + id) . ( id x i1)?
R: O problema é a falta de uns parênteses: para f x (g + id) . ( id x i1) tipar bem é preciso colocar parênteses à esquerda da composição: (f x (g + id)) . ( id x i1). Depois é só aplicar a lei functor-x. NB: na nossa
notação a composição tem prioridade sobre qualquer outro combinador.
FAQ2 - Gostaria de saber se a função (A x C + B x D) -- [pi2,pi2] --> C + D está bem tipada.
R: Para estar era preciso que as duas instâncias de pi2 tivessem o mesmo tipo de saída. Ora isso não acontece: tem-se A x C -- pi2 --> C num caso e B x D -- pi2 --> D no outro, ambos diferentes de C + D.
Isto explica o que se deve fazer: escrever pi2 + pi2 em vez de [pi2,pi2].
FAQ3 - Como devo abordar a questão 6 do Teste de LEI do ano de 2009?.
R: O tipo From a é definido por data From a = First a | Next (From a) na questão 4.
Logo tem-se From a isomorfo a F(From a), para F X = a + X e F f = id + f. Tem-se ainda in = [First,Next] e
out(First a) = i1 aout(Next x) = i2 x
Para converter rev num hilo deste tipo teremos que encontar os seus dois genes divide e conquer
tais que aux = conquer . (F aux) . divide. Pelo tipo _aux :: ([a], [a]) -> [a]: vê-se que os tipos têm de ser
divide : [a] x [a]->([a] x [a])
e
conquer : F [a] -> [a]
Das cláusulas
aux([],l) =laux(h:t,l) = aux (t,h:l)
infere-se
divide([],l) = i1 ldivide (h:t,l) = i2(t,h:l)
Como nada acontece após a chamada recursiva nessas mesmas cláusulas, ter-se-á
conquer = [id,id]
Para ver isto a funcionar implemente-se em Haskell:
data From a = First a | Next (From a) deriving ShowinF = either First NextoutF(First a) = i1 aoutF(Next x) = i2 xcataF h = h . recF (cataF h) . outFrecF f = id -|- fanaF g = inF . (recF (anaF g) ) . ghyloF g h = cataF g . anaF hdivide([],l) = i1 ldivide (h:t,l) = i2(t,h:l)conquer = either id id
Ver-se-á que, por exemplo,
hyloF conquer divide ([1,2,3],[4,5]) == aux([1,2,3],[4,5]) etc
FAQ4 - Tenho uma dúvida na última propriedade do exercício 2 (Ficha nr 4): pegando na primeira parte da igualdade e usando duas vezes a propriedade (53) do formulário, obtenho
[[a,b].p?,[c,d].p?].p? Posso neste momento posso usar a propriedade (20), absorçao-+? Assim obtinha [[a,b],[c,d]].(p?+p?).p? de onde prossigo usando (3) da mesma ficha.
R: Claro que sim, esse é o caminho a seguir. De um modo geral, sempre que tiver uma alternativa de (quaisquer) composições a lei é aplicável, dando uma composição de uma alternativa com uma soma.
FAQ5 - Gostaria de perceber melhor a razão para haver uma notação funcional com variáveis ("pointfree") e outra sem elas ("pointwise") e qual se deve escolher e em que circunstâncias.
Sem variáveis os programas ficam reduzidos a expressões algébricas sobre as quais se pode raciocinar usando o Cálculo de Programas. Após os cálculos (eg. conversão da função de Fibonacci - recursiva e ineficiente -- num ciclo -- não recursivo, eficiente ) converte-se o resultado final de novo para Haskell com variáveis e... "entrega-se ao cliente". Se tentar fazer o mesmo sempre com variáveis os cálculos terão que usar provas por indução matemática e serão mais longos e (para muitos) difíceis de perceber.
-- JoseNunoOliveira - Página criada em 14 Feb 2012
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.
LTree.hs - biblioteca contendo os cata/ana/hilomorfismos do tipo de dados árvores binárias de folhas - LTree a = Leaf a | Split (LTree a, LTree a) e aplicações suas (e.g. duplo factorial, `merge-sort', Fibonacci etc).
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).
List.hs - biblioteca geral para listas em Haskell, contendo a respectiva bateria de combinadores ana+cata+hilo e exemplos de utilização, que incluem os dados nas aulas.
Nat.hs - biblioteca de naturais (ciclos-for, etc).
Cp.hs - contendo os combinadores de base da notação adoptada, e.g. split, ><, -|- etc.
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.
Parametrização e polimorfismo. Inferência de tipos polimórficos. Programação genérica. Functores de tipo. Introdução ao politipismo.
Programação funcional com efeitos. Mónades e sua teoria. Construção de programas monádicos. Exemplos: excepções, processamento de listas, computações com estado. Breve referência ao `input/output'.
Programa detalhado
A apresentar no final do semestre.
-- JoseNunoOliveira - 13 Feb 2012
Os alunos devem escolher um dos seguintes métodos de avaliação (época normal):
Método A:
2 Fichas individuais (3 questões cada, sem consulta) a realizar nas aulas TP: 12 valores (total de 6 questões), com nota mínima de 8 valores
Prova individual escrita (sem consulta e só para alunos com nota mínima): 8 valores - a realizar no dia 18-Junho, conforme consta do calendário da disciplina.
A opção pelo Método A faz-se no momento de inscrição e é uma opção individual e irreversível durante o semestre.
Método B:
Prova individual escrita (sem consulta): 20 valores, com nota mínima de 10 valores - a realizar no dia 18-Junho, conforme consta do calendário da disciplina.
IMPORTANTE: Condições de frequência/avaliação:
Alunos de 1ª inscrição: podem escolher entre os métodos de A ou B.
Outros alunos: quem frequentou o método de avaliação A em (quaisquer) anos anteriores só pode escolher o método B. (A sua inscrição no método A será liminarmente rejeitada.)
TWiki's Education/CP1112 webThe Education/CP1112 web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112Copyright 2020 by contributing authors2020-10-30T14:39:04ZWebStatisticshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebStatistics2020-10-30T14:39:04ZStatistics for Education/CP1112 Web Month: Topic views: Topic saves: File uploads: Most popular topic views: Top contributors for topic ... (last changed by TWikiGuest)TWikiGuestWebSideBarhttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebSideBar2018-10-05T08:18:00ZTópicos Apresentação Docentes Contacto (1112.8204N5) pública Alunos Regime de Avaliação Horário Atendimento Sumários ... (last changed by JoseNunoOliveira)JoseNunoOliveiraMaterialPedagogicohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/MaterialPedagogico2013-06-17T00:21:07ZMaterial Pedagógico Fichas das aulas práticas Ficha 1 Ficha 2 Ficha 3 Ficha 4 Ficha 5 Ficha 6 Ficha 7 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraAvisoshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Avisos2013-03-27T06:50:07Z20 Set Classificações da época especial ver Alunos. 10 Set Teste de Junho com a maior parte das questões resolvidas: ver Material. 10 Set Exame da ... (last changed by JoseNunoOliveira)JoseNunoOliveiraAlunoshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Alunos2012-09-20T17:15:10ZClassificações finais Época normal: Foram lançadas no livro de termos. Época especial: Nr Curso Class 30205 LEI 15 38176 LEI R 38207 LEI ... (last changed by JoseNunoOliveira)JoseNunoOliveiraCalendariohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Calendario2012-09-11T17:21:24ZSumários da disciplina Formato ICS (última actualização: 2012.Set.11) : CP10 12.ics.zip. Actualização contínua no calendário: (last changed by JoseNunoOliveira)JoseNunoOliveiraHorarioAtendimentohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/HorarioAtendimento2012-06-16T13:27:24ZHorá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)JoseNunoOliveiraBibliografiahttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Bibliografia2012-05-10T12:37:29ZBibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Livro em preparação: ... (last changed by JoseNunoOliveira)JoseNunoOliveiraHorarioSalasDocenteshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/HorarioSalasDocentes2012-04-16T08:59:05ZHorário Atenção à mudança de horário das teóricas em LEI: Ref Dia Hora Tipo / Método Sala Cursos Docente 1 2. feira 16h00 18h00 ... (last changed by JoseNunoOliveira)JoseNunoOliveiraEquipaDocentehttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/EquipaDocente2012-02-22T16:12:16ZDocentes Docente Código Aulas Licenciaturas Soares Barbosa 406023 TP LEI Nuno Oliveira 406006 T LCC, LEI Pacheco ... (last changed by JoseNunoOliveira)JoseNunoOliveiraRegimeAvaliacaohttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/RegimeAvaliacao2012-02-20T16:28:52ZRegime de Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação (época normal): Método A: 2 Fichas individuais (3 questões cada, sem consulta ... (last changed by JoseNunoOliveira)JoseNunoOliveiraWebPreferenceshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebPreferences2012-02-17T12:05:39ZEducation/CP1112 Web Preferences The following settings are web preferences of the Education/CP1112 web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)AlcinoCunhaWebHomehttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebHome2012-02-14T13:28:47ZBenvindo a Cálculo de Programas Bem vindo à página da edição de 2011/12 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ... (last changed by JoseNunoOliveira)JoseNunoOliveiraProgramahttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Programa2012-02-13T12:50:41ZPrograma 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)JoseNunoOliveiraDocenteshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Docentes2012-02-13T12:33:01Z13 Fev Criada esta página. JoseNunoOliveira 13 Feb 2012 (last changed by JoseNunoOliveira)JoseNunoOliveiraWebTopicActionshttp://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebTopicActions2007-05-18T08:03:35Z (last changed by AlcinoCunha)AlcinoCunha
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 ...
Bibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Livro em preparação: ...
Regime de Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação (época normal): Método A: 2 Fichas individuais (3 questões cada, sem consulta ...
Education/CP1112 Web Preferences The following settings are web preferences of the Education/CP1112 web. These preferences overwrite the site level preferences ...
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2011/12 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ...
Programa resumido Motivação. Teoria e método em programação. Cálculo e raciocínio sobre programas. Composicionalidade. Combinadores de programas. Modularidade ...
Bem vindo à página da edição de 2011/12 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.
Cada vez mais, a indústria pede às universidades que ensinem a programar a sério, isto é, de forma reflectida, 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.
Resultados da Aprendizagem
Quien sabe por Algebra, sabe scientificamente. Pedro Nunes(1502-1578) in Libro de Algebra, 1567, fol 270r.
Construção de programas: escrever programas funcionais de forma composicional, com recurso a combinadores algébricos.
Transformação de programas: recurso à algebra da programação para se obterem programas mais eficientes sem comprometer as sua correcção.
Análise e compreensão de programas: recurso à factorização em pares "fold" + "unfold" (hilomorfismos) como forma de se perceber a arquitectura dos algoritmos e sua catalogação.
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.
Bibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Livro em preparação: ...
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 (época normal): Método A: 2 Fichas individuais (3 questões cada, sem consulta ...
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2011/12 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ...
Education/CP1112 Web Preferences The following settings are web preferences of the Education/CP1112 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/CP1112 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/CP1112.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/CP1112 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/CP1112
The Education/CP1112 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/CP1112
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112
/twiki/pub/Main/LocalLogos/um_eengP.jpgWebSideBar
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebSideBar
Tópicos Apresentação Docentes Contacto (1112.8204N5) pública Alunos Regime de Avaliação Horário Atendimento Sumários ... (last changed by JoseNunoOliveira)2018-10-05T08:18:00ZJoseNunoOliveiraMaterialPedagogico
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/MaterialPedagogico
Material Pedagógico Fichas das aulas práticas Ficha 1 Ficha 2 Ficha 3 Ficha 4 Ficha 5 Ficha 6 Ficha 7 ... (last changed by JoseNunoOliveira)2013-06-17T00:21:07ZJoseNunoOliveiraAvisos
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Avisos
20 Set Classificações da época especial ver Alunos. 10 Set Teste de Junho com a maior parte das questões resolvidas: ver Material. 10 Set Exame da ... (last changed by JoseNunoOliveira)2013-03-27T06:50:07ZJoseNunoOliveiraAlunos
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Alunos
Classificações finais Época normal: Foram lançadas no livro de termos. Época especial: Nr Curso Class 30205 LEI 15 38176 LEI R 38207 LEI ... (last changed by JoseNunoOliveira)2012-09-20T17:15:10ZJoseNunoOliveiraCalendario
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Calendario
Sumários da disciplina Formato ICS (última actualização: 2012.Set.11) : CP10 12.ics.zip. Actualização contínua no calendário: (last changed by JoseNunoOliveira)2012-09-11T17:21:24ZJoseNunoOliveiraHorarioAtendimento
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/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)2012-06-16T13:27:24ZJoseNunoOliveiraBibliografia
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Bibliografia
Bibliografia Bibliografia essencial J.N. Oliveira. Program Design by Calculation . Departamento de Informática, Universidade do Minho. Livro em preparação: ... (last changed by JoseNunoOliveira)2012-05-10T12:37:29ZJoseNunoOliveiraHorarioSalasDocentes
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/HorarioSalasDocentes
Horário Atenção à mudança de horário das teóricas em LEI: Ref Dia Hora Tipo / Método Sala Cursos Docente 1 2. feira 16h00 18h00 ... (last changed by JoseNunoOliveira)2012-04-16T08:59:05ZJoseNunoOliveiraEquipaDocente
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/EquipaDocente
Docentes Docente Código Aulas Licenciaturas Soares Barbosa 406023 TP LEI Nuno Oliveira 406006 T LCC, LEI Pacheco ... (last changed by JoseNunoOliveira)2012-02-22T16:12:16ZJoseNunoOliveiraRegimeAvaliacao
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/RegimeAvaliacao
Regime de Avaliação Os alunos devem escolher um dos seguintes métodos de avaliação (época normal): Método A: 2 Fichas individuais (3 questões cada, sem consulta ... (last changed by JoseNunoOliveira)2012-02-20T16:28:52ZJoseNunoOliveiraWebPreferences
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebPreferences
Education/CP1112 Web Preferences The following settings are web preferences of the Education/CP1112 web. These preferences overwrite the site level preferences ... (last changed by AlcinoCunha)2012-02-17T12:05:39ZAlcinoCunhaWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebHome
Benvindo a Cálculo de Programas Bem vindo à página da edição de 2011/12 da disciplina de de Programas. O meu nome é Nuno Oliveira e sou o responsável por esta disciplina ... (last changed by JoseNunoOliveira)2012-02-14T13:28:47ZJoseNunoOliveiraPrograma
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/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)2012-02-13T12:50:41ZJoseNunoOliveiraDocentes
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/Docentes
13 Fev Criada esta página. JoseNunoOliveira 13 Feb 2012 (last changed by JoseNunoOliveira)2012-02-13T12:33:01ZJoseNunoOliveiraWebTopicActions
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/WebTopicActions
(last changed by AlcinoCunha)2007-05-18T08:03:35ZAlcinoCunhaWebCss
http://wiki.di.uminho.pt/twiki/bin/view/Education/CP1112/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
20 Set - Classificações da época especial - ver Alunos.
10 Set - Teste de Junho com a maior parte das questões resolvidas: ver Material.
10 Set - Exame da Época especial (LCC+LEI): Sala CP1-104, 11-Set das 9h00 às 11h30.
07 Set - Acaba de ser marcada a data do exame da Época especial - ver Sumários. A hora e a sala serão entretanto confirmadas e anunciadas aqui.
25 Jul - Acabam de ser lançadas em Alunos as classificações apuradas após o exame de recurso. Amanhã terei (JNO) disponibilidade para mostrar exames na parte da manhã.
21 Jul - Fotografias: avisa-se uma vez mais que os alunos que não tem fotografia no portal académico (logo também não no BB) dificilmente poderão beneficiar da sua avaliação contínua na classificação final da disciplina.
10 Jul - Chama-se a atenção dos alunos para a hora de início do exame de recurso de 11-Jul: 11h00, nas salas CPII-201 a 204. Os alunos poderão ter como (único) elemento de consulta o formulário da disciplina.
28 Jun - Classificações à data da época normal - ver Alunos. Os alunos sem nota positiva estão admitidos a exame de recurso, que terá lugar no dia 11 de Julho.
17 Jun - Chama-se de novo a atenção dos alunos para a hora de início do teste de 18-Jun : 13h00, nas salas CP2 201, 202, 203 e 204. Os alunos poderão ter como (único) elemento de consulta o formulário da disciplina.
12 Jun - Alunos do Método A : as classificações dos mini-testes estão afixadas na secção Alunos10 Jun - Confirma-se que o teste de 18-Jun se inicia às 13h00, pois as salas têm que estar livres antes das 16h00 para outros testes.
As salas são as seguintes: CP2 201, 202, 203 e 204.
28 Mai - Publicada no Material Pedagógico a Ficha nr. 11 destinada às aulas práticas da semana de 28-Mai a 1-Jun.
27 Mai - Alunos do Método A : a matéria a avaliar no miniteste de 30-Mai (às 16h) é toda a que é coberta pelas fichas 1 a 9, inclusivé.
22 Mai - Alunos do Método A : Devido a dificuldades de calendarização das aulas práticas, informa-se que a segunda ficha de avaliação será feita, para todos os turnos (LCC+LEI) no dia 30-Mai às 16h, salas CP2-201 e 202. Ver sumários da disciplina.
22 Mai - Chama-se a atenção dos alunos para as aulas suplementares que estão anunciadas nos sumários da disciplina.
22 Mai - Publicada no Material Pedagógico a Ficha nr. 10 destinada às aulas práticas da semana de 22-Mai a 25-Mai.
05 Mai - Publicada no Material Pedagógico a Ficha nr. 9 destinada às aulas práticas da semana de 07-Mai a 11-Mai.
01 Mai - Última hora: Avisam-se os alunos o turno de 4 feira, 9-11h, que a aula do dia 2 de Maio não se poderá realizar (participação do docente na sessão comemorativa dos 25 anos de LCC). A aula será substituida por uma sessão na próxima 2feira, dia 7 de Maio, das 18-20h, no DI-A2.
01 Mai - Publicada no Material Pedagógico a Ficha nr.8 destinada às aulas práticas da semana de 30-Abr a 04-Mai.
21 Abr - Publicada no Material Pedagógico a Ficha nr.7 destinada às aulas práticas da semana de 23-Abr a 27-Abr.
11 Abr - A listagem dos alunos admitidos no corrente ano lectivo ao método A desta disciplina, de acordo com as condições de frequência que constam do Regime de Avaliação, encontra-se em Alunos.
09 Abr - Alunos do método A: 1ª ficha de avaliação terá lugar nas aulas TP da semana de 16-20 Abr - ver sumários.
09 Abr - Chama-se a atenção dos alunos para a troca entre as aulas T/TP de LCC na semana de 16-20 Abr - ver sumários.
09 Abr - Publicada no Material Pedagógico a Ficha nr.6 destinada às aulas práticas da semana de 26-Mar a 30-Mar.
24 Mar - Publicada no Material Pedagógico a Ficha nr.5 destinada às aulas práticas da semana de 26-Mar a 30-Mar.
16 Mar - Publicada no Material Pedagógico a Ficha nr.4 destinada às aulas práticas da semana de 19-Mar a 23-Mar.
09 Mar - Publicada no Material Pedagógico a Ficha nr.3 destinada às aulas práticas da semana de 12-Mar a 16-Mar.
09 Mar - Insiste-se para que os alunos mantenham a sua caixa de correio institucional operacional, pois continua a haver mensagens devolvidas impossibilitando assim a boa comunicação entre alunos e equipa docente.
08 Mar - Publicada no Material Pedagógico a biblioteca Cp.hs de combinadores básicos do Cálculo de Programas.
03 Mar - Publicada no Material Pedagógico a Ficha nr.2 destinada às aulas práticas da semana de 05-Mar a 09-Mar.
27 Fev - Publicada a Bibliografia e, no Material Pedagógico, o formulário da disciplina.
25 Fev - Publicada no Material Pedagógico a ficha nr.1, destinada às aulas práticas da semana que começa a 27-Fev.
23 Fev - LCC: as inscrições dos alunos no método A (ver regime de avaliação) serão feitas de forma electrónica via Blackboard na próxima 2a-feira, dia 27-Fev.
20 Fev - LEI: as inscrições nos turnos do método A (ver horário) serão feitas de forma electrónica via Blackboard na próxima 4a-feira, dia 22-Fev, a partir das 14h00, até à mesma hora do dia seguinte.
20 Fev - LEI: chama-se a atenção dos alunos para a mudança de horário das aulas teóricas - ver horário. A primeira aula teórica com leccionação de matéria terá lugar dia 28-Fev. Prestar atenção ao que vai sendo anunciado no calendário.
20 Fev - LCC: a aula de apresentação terá lugar dia 23-Fev - prestar atenção aos que vai sendo anunciado no calendário.
18 Fev - A aulas iniciam-se na semana de 20-Fev, ver Sumários.
13 Fev - Criada esta página de avisos.
20 Set - Classificações da época especial - ver Alunos.
10 Set - Teste de Junho com a maior parte das questões resolvidas: ver Material.
10 Set - Exame da Época especial (LCC+LEI): Sala CP1-104, 11-Set das 9h00 às 11h30.
07 Set - Acaba de ser marcada a data do exame da Época especial - ver Sumários. A hora e a sala serão entretanto confirmadas e anunciadas aqui.
25 Jul - Acabam de ser lançadas em Alunos as classificações apuradas após o exame de recurso. Amanhã terei (JNO) disponibilidade para mostrar exames na parte da manhã.
21 Jul - Fotografias: avisa-se uma vez mais que os alunos que não tem fotografia no portal académico (logo também não no BB) dificilmente poderão beneficiar da sua avaliação contínua na classificação final da disciplina.
10 Jul - Chama-se a atenção dos alunos para a hora de início do exame de recurso de 11-Jul: 11h00, nas salas CPII-201 a 204. Os alunos poderão ter como (único) elemento de consulta o formulário da disciplina.
28 Jun - Classificações à data da época normal - ver Alunos. Os alunos sem nota positiva estão admitidos a exame de recurso, que terá lugar no dia 11 de Julho.
17 Jun - Chama-se de novo a atenção dos alunos para a hora de início do teste de 18-Jun : 13h00, nas salas CP2 201, 202, 203 e 204. Os alunos poderão ter como (único) elemento de consulta o formulário da disciplina.
12 Jun - Alunos do Método A : as classificações dos mini-testes estão afixadas na secção Alunos10 Jun - Confirma-se que o teste de 18-Jun se inicia às 13h00, pois as salas têm que estar livres antes das 16h00 para outros testes.
As salas são as seguintes: CP2 201, 202, 203 e 204.
28 Mai - Publicada no Material Pedagógico a Ficha nr. 11 destinada às aulas práticas da semana de 28-Mai a 1-Jun.
27 Mai - Alunos do Método A : a matéria a avaliar no miniteste de 30-Mai (às 16h) é toda a que é coberta pelas fichas 1 a 9, inclusivé.
22 Mai - Alunos do Método A : Devido a dificuldades de calendarização das aulas práticas, informa-se que a segunda ficha de avaliação será feita, para todos os turnos (LCC+LEI) no dia 30-Mai às 16h, salas CP2-201 e 202. Ver sumários da disciplina.
22 Mai - Chama-se a atenção dos alunos para as aulas suplementares que estão anunciadas nos sumários da disciplina.
22 Mai - Publicada no Material Pedagógico a Ficha nr. 10 destinada às aulas práticas da semana de 22-Mai a 25-Mai.
05 Mai - Publicada no Material Pedagógico a Ficha nr. 9 destinada às aulas práticas da semana de 07-Mai a 11-Mai.
01 Mai - Última hora: Avisam-se os alunos o turno de 4 feira, 9-11h, que a aula do dia 2 de Maio não se poderá realizar (participação do docente na sessão comemorativa dos 25 anos de LCC). A aula será substituida por uma sessão na próxima 2feira, dia 7 de Maio, das 18-20h, no DI-A2.
01 Mai - Publicada no Material Pedagógico a Ficha nr.8 destinada às aulas práticas da semana de 30-Abr a 04-Mai.
21 Abr - Publicada no Material Pedagógico a Ficha nr.7 destinada às aulas práticas da semana de 23-Abr a 27-Abr.
11 Abr - A listagem dos alunos admitidos no corrente ano lectivo ao método A desta disciplina, de acordo com as condições de frequência que constam do Regime de Avaliação, encontra-se em Alunos.
09 Abr - Alunos do método A: 1ª ficha de avaliação terá lugar nas aulas TP da semana de 16-20 Abr - ver sumários.
09 Abr - Chama-se a atenção dos alunos para a troca entre as aulas T/TP de LCC na semana de 16-20 Abr - ver sumários.
09 Abr - Publicada no Material Pedagógico a Ficha nr.6 destinada às aulas práticas da semana de 26-Mar a 30-Mar.
24 Mar - Publicada no Material Pedagógico a Ficha nr.5 destinada às aulas práticas da semana de 26-Mar a 30-Mar.
16 Mar - Publicada no Material Pedagógico a Ficha nr.4 destinada às aulas práticas da semana de 19-Mar a 23-Mar.
09 Mar - Publicada no Material Pedagógico a Ficha nr.3 destinada às aulas práticas da semana de 12-Mar a 16-Mar.
09 Mar - Insiste-se para que os alunos mantenham a sua caixa de correio institucional operacional, pois continua a haver mensagens devolvidas impossibilitando assim a boa comunicação entre alunos e equipa docente.
08 Mar - Publicada no Material Pedagógico a biblioteca Cp.hs de combinadores básicos do Cálculo de Programas.
03 Mar - Publicada no Material Pedagógico a Ficha nr.2 destinada às aulas práticas da semana de 05-Mar a 09-Mar.
27 Fev - Publicada a Bibliografia e, no Material Pedagógico, o formulário da disciplina.
25 Fev - Publicada no Material Pedagógico a ficha nr.1, destinada às aulas práticas da semana que começa a 27-Fev.
23 Fev - LCC: as inscrições dos alunos no método A (ver regime de avaliação) serão feitas de forma electrónica via Blackboard na próxima 2a-feira, dia 27-Fev.
20 Fev - LEI: as inscrições nos turnos do método A (ver horário) serão feitas de forma electrónica via Blackboard na próxima 4a-feira, dia 22-Fev, a partir das 14h00, até à mesma hora do dia seguinte.
20 Fev - LEI: chama-se a atenção dos alunos para a mudança de horário das aulas teóricas - ver horário. A primeira aula teórica com leccionação de matéria terá lugar dia 28-Fev. Prestar atenção ao que vai sendo anunciado no calendário.
20 Fev - LCC: a aula de apresentação terá lugar dia 23-Fev - prestar atenção aos que vai sendo anunciado no calendário.
18 Fev - A aulas iniciam-se na semana de 20-Fev, ver Sumários.
13 Fev - Criada esta página de avisos.