Planeamento

Aulas Teóricas

1. Computadores Algoritmos e Programas (Cap. 1)

Apresentação. Método de avaliação, Bibliografia, Funcionamento da disciplina.

Computadores, Algoritmos e Programas:

  • Características de um computador (1.1)
  • Algoritmos: definição e características (1.2)
  • Programas e processos computacionais (1.3)
  • Exemplo de algoritmo e programa.

2. Elementos básicos de programação (Cap. 2)

Computadores, algoritmos e programas:

  • Sintaxe e semântica (1.4)

Elementos básicos de programação:

  • Expressões (2.1)
  • Tipos elementares de informação (2.2)
  • Nomes e atribuição (2.3)

3. Elementos básicos de programação

Elementos básicos de programação:

  • Predicados e condições (2.4)
  • Comunicação com o exterior (2.5)
  • Programas, instruções e sequenciação (2.6)
  • Selecção (2.7)

4. Elementos básicos de programação

Elementos básicos de programação:

  • Selecção (2.7)
  • Repetição (2.8)

5. Funções (Cap. 3)

Funções:

  • Definição de funções em Python (3.1)
  • Aplicação de funções em Python (3.2)
  • Abstracção procedimental (3.3)
  • Exemplos: factorial e m.d.c. (3.4)

6. Tuplos e ciclos contados (Cap. 4)

Funções:

  • Exemplos: Raiz quadrada (3.4)

Tuplos e ciclos contados:

  • Tuplos (4.1)

7. Tuplos e ciclos contados

Tuplos e ciclos contados:

  • Tuplos (4.1)
  • Ciclos contados (4.2)
  • Cadeias de caracteres revisitadas (4.3)

8. Listas (Cap. 5)

Listas:

  • Listas em Python (5.1)
  • Métodos de passagem de parâmetros (5.2)
  • O crivo de Eratóstenes (5.3)

9. Listas

Listas:

  • Procura sequencial e binária (5.4)
  • Ordenação por bubblesort (5.5)
  • Considerações sobre eficiência (5.7)

10. Revisões

Revisões dos capítulos 1-5.

Resolução de exercícios.

11. Dicionários (Cap. 7)

Dicionários:

  • O tipo dicionário (7.1)
  • Contagem de letras (7.2)

12. Abstracção de dados (Cap. 8)

Dicionários:

  • Dicionários de dicionários (7.3)

Abstracção de dados:

  • Abstracção em programação (8.1)
  • Motivação: números complexos (8.2)
  • Tipos abstractos de informação (8.3)

13. Abstracção de dados

Abstracção de dados:

  • Tipos abstractos de informação (8.3)
  • Barreiras de abstracção (8.4)
  • Objectos (8.5)

14. Abstracção de dados

Abstracção de dados:

  • Exemplo: o tipo carta

15. Funções revisitadas (Cap. 9)

Funções revisitadas:

  • Estruturação de funções (9.1)
  • Funções recursivas (9.2)
  • Programação funcional (9.3)

16. Funções revisitadas

Funções revisitadas:

  • Funções como parâmetros (9.4)
    • Funcionais sobre listas

17. Funções revisitadas

Funções revisitadas:

  • Funções como parâmetros (9.4)
    • Funções como métodos gerais
  • Funções como valor de funções (9.5) 
    • Cálculo de derivadas
    • Raízes pelo Método de Newton.

18. Ficheiros (Cap. 6)

Ficheiros:

  • O tipo ficheiro (6.1)
  • Leitura de ficheiros (6.2)
  • Escrita em ficheiros (6.3)

19. Recursão e iteração (Cap. 10)

Recursão e iteração:

  • Recursão linear (10.1)
  • Iteração linear (10.2)
  • Recursão em árvore (10.3) 
    • Números de Fibonacci

20. O desenvolvimento de programas (Cap. 11)

Recursão e iteração:

  • Recursão em árvore (10.3)
    • Torre de Hanói
  • Considerações sobre eficiência (10.4)

O desenvolvimento de programas

21. Programação com objectos (Cap. 12)

Programação com objectos:

  • O tipo conta bancária (12.1)
  • Classes, subclasses e herança (12.2)
  • Número arbitrário de argumentos (12.3)
  • Polimorfismo (12.5)

22. Programação com objectos

Programação com objectos:

  • Objectos em Python (12.4)
  • Exemplos: 
    • Função de Ackermann 
    • Factorial

23. Estruturas lineares (Cap. 13)

Estruturas lineares:

  • Filas (13.4)
    • Operações básicas
    • Axiomatização
    • Representação interna 
    • A classe fila
  • Simulação de um supermercado (13.5)

24. Estruturas Lineares

Estruturas lineares:

  • Representação gráfica (13.6)
  • Pilhas (13.1)

25. Estruturas lineares

Estruturas lineares:

  • Balanceamento de parênteses (13.2) 
  • Expressões em notação pós-fixa (13.3)

26. Árvores (Cap. 14)

Árvores:

  • Operações básicas (14.1)
  • Axiomatização (14.2)
  • Representação (14.3)
  • Realização das operações básicas (14.4)
  • Ordenação por árvore (14.5)

27. Ponteiros

Ponteiros:

  • A noção de ponteiro
  • Manipulação de ponteiros
  • Estruturas com ponteiros: listas ligadas

28. Matéria concluída

Toda a matéria foi já leccionada.