Aulas Teóricas

Os "slides" utilizados nas aulas teóricas, assim como outros materiais de apoio relacionados, serão publicados nesta página.

Slides

  • Semana 1
    • Apresentação. Ambiente de desenvolvimento [pdf]
    • Computadores, algoritmos e Programas. Sintaxe e semântica [pdf]
    • Leituras recomendada: Capítulo 1 do livro principal da UC
  • Semana 2
    •  Elementos básicos da programação: Expressões. Tipos elementares de informação. Nomes e atribuição. Predicados e condições. Comunicação com o exterior. Programas, instruções e sequenciação. Seleção. Repetição. [notebook] [pdf]
    • Leituras recomendada: Capítulo 2 do livro principal da UC
  • Semana 3
    • Definição de funções. Aplicação de funções. Abstração procedimental. Erros. Exemplos. Módulos. Visualização e execução de programas. Depuração. Mais exemplos. [notebook] [pdf] 
    • Leituras recomendada: Capítulo 3 do livro principal da UC
  • Semana 4
    • Tuplos. Ciclos contados. Exemplos. Cadeias de caracteres revisitadas. Formatação. Mais exemplos. [notebook] [pdf]
    • Leituras recomendada: Capítulo 4 do livro principal da UC
  • Semana 5
    • Listas. Método de passagem de parâmetros. Exemplos. O crivo de Eratóstenes. Algoritmos de procura e de ordenação. [notebook] [pdf]
    • Leituras recomendada: Capítulo 5 do livro principal da UC
  • Semana 6
    • O tipo dicionário. Exemplos. Frequência de letras num texto. Dicionários de dicionários. [notebook] [pdf]
    • Funções revisitadas. Programação funcional. Estruturação de funções. Funções internas. Scope [notebook] [pdf]  
    • Leituras recomendadas: Capítulos "Dicionários" e "Funções Revisitadas"
    • Links: Sobre dicionários
  • Semana 7:
    • Funções revisitadas. Recursão [notebook] [pdf]
    • Leituras recomendadas: Capítulo "Funções Revisitadas" (seção "Recursão")
  • Semana 8:
    • Recursão e iteração. Recursão de cauda. Recursão em árvore. Considerações sobre eficiência. Exercícios e exemplos. [notebook] [pdf]
    • Leituras recomendadas: Capítulo "Recursão e Iteração"

  • Semana 9:
    • Funções de ordem superior. Funções como parâmetros. Funções Lambda. Funções como valor. Funcionais sobre listas [notebook] [pdf]
      • Leituras recomendadas: Capítulo "Funções Revisitadas" (seções "Funções como parâmetros" e "Funções como valor")
      • Código funcionais: code
    • Semana 10:
      • Abstração em programação. Números complexos. Essência da abstração de dados. Complexos como dicionários. Tipos abstratos de dados. [notebook] [pdf]
        • Leituras recomendadas: Capítulo "Abstração de dados"
      • Semana 11:
        • O tipo ficheiro. Leitura de ficheiros. Escrita de ficheiros. [notebook] [pdf]

        • O desenvolvimento de programas. Solução Projeto 1. Discussão enunciado projeto. Boas práticas. [pdf]
        • Leituras recomendadas: Capítulo "Ficheiros" e "Desenvolvimento de programas" 
      • Semana 12:
        • Programação com objetos: Classes e objetos. Encapsulação. Exemplo complexos. Anonimato. Polimorfismo. Herança. Composição. Exemplos [notebook] [pdf]
        • Leituras recomendadas: Capítulo "Programação com objetos"
      • Semana 13:
        • Estruturas lineares. Pilhas e Filas. Pilhas. Operações básicas, axiomatização e representação de pilhas/filas. Exemplos [notebook] [pdf]
        • Leituras recomendadas: Capítulo "Estruturas lineares"
      • Semana 14:
        • Discussão projeto 2. Testes de execução e testes de abstração. Exemplos representação gráfica. Tópicos avançados. Epílogo. 

      Notas e comentários:
      • Recomenda-se que o livro "Programação em Python", da bibliografia principal da UC, seja lido.
      • A versão PDF dos slides esta altamente desformatada. Recomenda-se a utilização dos notebooks.
      • Os slides deste ano estão baseados nos slides do Professor Rui Maranhão utilizados em 2017/2018.
      • Notas de aulas escritas pelo Professor Alexandre Francisco em 2015/16.

      Outro Material de Apoio

      [Verifique alterações nesta página ao longo do semestre]

      Abaixo pode encontrar links para recursos na web que podem ajudar no estudo de Python.

      NOTA IMPORTANTE: Os recursos indicados bem como outros que os alunos encontrem na web devem ser utilizados com as devidas precauções, uma vez que podem usar versões de Python diferentes da usada na cadeira.