Publicação em Diário da República: Aviso nº 909/2016 - 27/01/2016
5 ECTS; 1º Ano, 1º Semestre, 67,50 TP , Cód. 60244.
Docente(s)
            - António Manuel Rodrigues Manso (1)
(1) Docente Responsável
(2) Docente que lecciona
Pré-requisitos
          Não aplicável
Objetivos
          1) Conhecer e compreender os princípios da programação estruturada na resolução de problemas.
2) Projetar e analisar algoritmos para a resolução de problemas utilizando pseudocódigos e fluxogramas.
3) Implementar e testar algoritmos em linguagens de programação de alto nível.
Programa
          1) Introdução aos algoritmos e à resolução de problemas.
2) Linguagens naturais e formais:
    a- Linguagens naturais e linguagens formais
    b- Pseudocódigos e fluxogramas. 
    c- Linguagens de programação.
3) Cálculo computacional e tipos de dados simples:
    a- Definição de tipos de dados.
    b- Operadores e funções.
    c- Expressões computacionais. 
4) Processamento sequencial:
    a- Definição de variáveis.
    b- Instruções de leitura de dados.
    c- Instruções de cálculo computacional.
    d- Instruções de escrita de informação.
5) Decisão condicional:
    a- Operadores relacionais e operadores lógicos.
    b- Instruções para decisões simples.
    c- Instruções para decisões múltiplas.
6) Repetição e iteração:
    a- Iteração de um conjunto de valores.
    b- Repetição com condições iniciais.
    c- Repetição com condições finais.
    d- Instruções para alterar o fluxo de ciclos.
7) Modularização de programas:
    a- Abordagem top-down para a resolução de problemas.
    b- Funções e procedimentos. 
    c- Parâmetros e retorno de funções.
    d- Recursividade.
8) Vetores e matrizes:
    a- Definição e manipulação de conjuntos de dados.
    b- Algoritmos de ordenação e pesquisa.
    c- Definição e manipulação de matrizes.
    d- Algoritmos sobre matrizes.
9) Programação numa linguagem de alto nível:
    a- Introdução à programação em python.
    b- Processamento de estruturas de dados simples.
    c- Exploração de módulos e pacotes da linguagem.
    
Metodologia de avaliação
          Avaliação prática: 70%
  1. Construção de um portofólio de algoritmos: 75 %
  2. Resolução de exercícios práticos: 25 %
Avaliação teórica: 30%
  Uma frequência ou um exame (100%)
  
Bibliografia
          - Cormen, T.  e Leiserson, C.  e Rivest, R.  e Stein, C. (2009). Introduction to Algorithms, 3rd edition. (pp. 1-1000).  MIT Press:   MIT Press
Método de Ensino
          Aulas expositivas para apresentação e demonstração dos conteúdos programáticos. Aulas práticas para implementação e validação dos conceitos teóricos através da resolução de pequenos exercícios.
Software utilizado nas aulas
          Algorithmi - Sistema de ensino e aprendizagem de algoritmos
Python - Linguagem de programação.
Aprovado em Conselho Técnico Cientifico: 09 de junho de 2021
Download da Ficha da Unidade Curricular (FUC)

















