Programação I

TeSP - Tecnologia e Programação em Sistemas de Informação, Publicação em Diário da República - Despacho n.º 6191/2020

5 ECTS; 1º Ano, Anual, 68,0 TP

Docente(s)
- António Manuel Rodrigues Manso

Pré-requisitos
NA

Objetivos
1) Conhecer e compreender os princípios da programação estruturada.
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) Cálculo computacional e tipos de dados simples:
a- Definição de tipos de dados.
b- Operadores e funções.
c- Expressões computacionais.

3) 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.

4) 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.

5) 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.

6) 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.

7) 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.

8) 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 Contínua:
1.Construção de um portfólio de algoritmos: 70 % (mínimo de 10/20)
2.Prova escrita: 30% (mínimo de 7/20)

Avaliação por exame:
1.Prova escrita: 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 interação
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
Plataforma de eLearning