Verificação Dedutiva de Programas – 2017.1


MENU: [ Avisos | Informações Gerais | Regras | Bibliografia | Plano de Atividades | Aulas e Exercícios ]


Avisos


Informações Gerais

Nesta disciplina nós aprendemos a demonstrar matematicamente a corretude de algoritmos estruturados, incluindo manipulação de ponteiros. A regulamentação oficial contém informações importantes como justificativa, objetivos, ementa e bibliografia; algumas dessas informações estão também no PPC do curso (página 139).

O conteúdo da disciplina está detalhadamente descrito no plano de atividades, que também contém as datas estimadas de cada uma delas.

As fontes de estudo da disciplina estão todas online, e elas estão listadas na bibliografia.

As atividades práticas da disciplina serão feitas na ferramenta Dafny, que pode ser executada diretamente pelo navegador.

Se precisar, você também pode me contactar fora do horário de aula.


Regras


Bibliografia

Na disciplina nós estudaremos estes artigos

e 2 capítulos deste livro:

Estes outros textos também podem ser úteis:

Veja também a bibliografia da regulamentação da disciplina.

Plano de Atividades

Esta disciplina possui 33 encontros: 29 para aulas teóricas e práticas, e 4 para avaliações. Essas cores são utilizadas na tabela abaixo, onde as atividades da disciplina estão discriminadas e datadas.
Aula Data Descrição
01 - P01 13/03 Introdução e Prática em Dafny: Pré- e Pós-condições, Asserções, etc.
15/03 Aula Cancelada pelo Professor
02 - P02 20/03 Dafny: Laços, Vetores, Funções Puras, Predicados.
03 - T01 22/03 Floyd: Assigning Meanings to Programs – Parte 1 / 2
04 - P03 27/03 Dafny: Conjuntos, Sequências, Multiconjuntos, Mapeamentos.
29/03 Encontros Universitários 2016
05 - P04 03/04 Dafny: Provas via Lemas e Indução
06 - T02 05/04 Floyd: Assigning Meanings to Programs – Parte 2 / 2
07 - P05 10/04 Dafny: Algoritmos de Ordenação – Parte 1 / 2
08 - T03 12/04 Hoare: An Axiomatic Basis for Computer Programming – Teoria
09 - P06 17/04 Dafny: Algoritmos de Ordenação – Parte 2 / 2
10 - T04 19/04 Hoare: An Axiomatic Basis for Computer Programming – Exercícios
* 24/04 Avaliação Prática 1
11 - T05 26/04 Dijkstra: Guarded commands, nondeterminacy etc. – Parte 1 / 2
01/05 Feriado: Dia do Trabalho
12 - T06 03/05 Dijkstra: Guarded commands, nondeterminacy etc. – Parte 2 / 2
13 - P07 08/05 Dafny: Pilha via Vetor, Versão Explícita – Parte 1 / 3.
14 - T07 10/05 Revisão sobre os artigos de Floyd, Hoare e Dijkstra.
15 - P08 15/05 Dafny: Pilha via Vetor, Versão Explícita – Parte 2 / 3.
* 17/05 Avaliação Teórica 1
16 - P09 22/05 Dafny: Pilha via Vetor, Versão Explícita – Parte 3 / 3.
17 - P10 24/05 Dafny: Pilha via Vetor, Versão com Interface – Parte 1 / 3.
18 - T08 29/05 Memória na Lógica de Hoare – Parte 1 / 3
19 - T09 31/05 Memória na Lógica de Hoare – Parte 2 / 3
20 - P11 05/06 Dafny: Pilha via Vetor, Versão com Interface – Parte 2 / 3.
21 - T10 07/06 Memória na Lógica de Hoare – Parte 3 / 3
22 - P12 12/06 Dafny: Pilha via Vetor, Versão com Interface – Parte 3 / 3.
23 - P13 14/06 Dafny: Pilha via Lista Encadeada – Parte 1 / 2.
24 - P14 19/06 Dafny: Pilha via Lista Encadeada – Parte 2 / 2.
25 - P15 21/06 Dafny: Pilha Extensível via Vetor.
26 - P16 26/06 Dafny: Pilha Extensível via Lista Encadeada.
* 28/06 Avaliação Prática 2: Apresentação das Tarefas de Verificação.
27 - T11 03/07 Embutimentos de Linguagens
28 - T12 05/07 Lógica de Separação – Parte 1 / 2
29 - T13 10/07 Lógica de Separação – Parte 2 / 2
* 12/07 Avaliação Teórica 2
* 17/07 AF
19/07 Notas Finais da Disciplina

Você pode comparar o plano acima com o plano anterior.


Aulas: Conteúdos e Exercícios