Benvindo a Cálculo de Programas 
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.
 
 
 Página principal 
Entrar 
aqui.