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.