Cálculo de Programas

Licenciaturas em Engenharia Informática e Ciências da Computação

Tópicos

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.

26 Jul - Classificações finais, após exame de recurso: estão disponíveis na secção Alunos

11 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 Alunos

24 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)

Benvindo a Cálculo de Programas

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. TFM09.jpg 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.

Página principal

Entrar aqui.

r28 - 12 Jan 2011 - 17:40:08 - JoseNunoOliveira
This site is powered by the TWiki collaboration platform Copyright © by the contributing authors. Ideas, requests, problems? Send feedback.
Syndicate this site RSSATOM