Prev Up Next
Go backward to A Disciplina
Go up to Top
Go forward to References

Programa previsto

O programa que é descrito em baixo não corresponde a uma apresentação sequencial.
  1. Metodologia da aprendizagem da programação,
    1. Fases da construção de um programa: compreender o enunciado, análise, implementação do programa, testes. "Olhar para trás".
    2. Análise: decomposição, utilização de funções conceitos ou métodos já conhecidos, estudo e discussão de alternativas.
    3. Começar por caracterizar a estrutura e a estruturação dos dados e, para cada função, o seu tipo e o seu objectivo (informalmente).
    4. Métodos de construção dos algoritmos.
    5. Estruturação dos programas: divisão dos programas em partes ("módulos", funções, objectos...).
    6. Tipos abstractos de dados: partes públicas e privadas, interface.
    7. Bons princípios de programação em C: tamanho das funções, número de variáveis globais, comentários...
  2. Representações de objectos matemáticos em linguagem C (com referência a outras linguagens de programação)
    1. (Essencialmente revisão) Valores lógicos, caracteres, inteiros de precisão limitada, inteiros de precisão arbitrária, valores em vírgula flutuante.
    2. Pares e "tuplos".
    3. Sequências ordenadas: vectores e listas ligadas. Representação canónica dos "strings" em C.
    4. Conjuntos: uso de vectores ordenados, vectores não necessariamente ordedados, vectores de presença ("bit arrays"). Operações de pesquisa, inserção, eliminação, união (chamada "merge" no caso dos vectores ordenados) e intersecção.
    5. Árvores binárias ordenadas utilizadas para a representação de conjuntos: pesquisa, inserção, eliminação, reunião e intersecão.
    6. [Pilhas, filas e "deques"].
    7. [Métodos de "hashing"].
    8. [Grafos e algoritmos em grafos].
    9. Breve referência à eficiência relativa das diversas implementações utilizadas.
  3. Definições indutivas, recursão e propriedades dos programas, ["Design" de algoritmos].
    1. Definição matemática (indutiva).
    2. Implementação recursiva.
    3. Introdução à verificação de programas.
    4. Exemplos: máximo entre 2 valores, máximo entre e valores, bijecção entre N2N, bijecção entre N3N, factorial, números de Stirling, número e geração de todas as combinações de n objectos tomados mm, geração de todas as permutações dos inteiros entre 1 e n, pesquisa numa árvore binária não ordenada, "quicksort", problema da celebridade e outros problemas recreativos.
  4. Complementos de programação em linguagem C.
    1. O pré-processador e os macros.
    2. typedef.
    3. Variáveis globais e locais (âambito)
    4. Memória estática e automática.
    5. Obtenção e libertação de espaço dinâmico.
    6. Recursão, utilização em casos como: cálculo do factorial, pesquisa binária, "quicksort".
    7. Notas sobre a implementação da recursão. A pilha de execução. Exercícios simples sobre o comportamento dos programas recursivos.
    8. Apontadores e seu uso em casos simples não envolvendo memória dinâmica: "arrays", parâmetros de funções...
    9. Estruturas com apontadores e utilização de memória dinâmica:
      1. Pilhas
      2. Árvores de pesquisa: pesquisa, inserção e eliminação
      3. Árvores que representam a estrutura sintática de expressões.
    10. Uso de ficheiros ("streams")
    11. Parâmetros da linha de comando Unix.
    12. Um pouco de C++ permitindo a definição o encapsulamento das estruturas: classes, objectos, definição da interface utilizaçao-implementaçao, métodos e variáveis públicas e privadas, constructores.
    13. Algumas particularidades normalmente associadas ao C++: comentários na linha, grandezas const, funções inline, "inputøutput" com utilização do "cin" e "cout".
    14. Notas sobre a instalação e portabilidade de "software".
    15. o utilitário "make".

Prev Up Next