Programação I

TeSP - Tecnologia e Programação em Sistemas de Informação
5 ECTS; 1º Ano, 1º Semestre, 67,50 TP

Docente(s)
- António Manuel Rodrigues Manso

Pré-requisitos
Não aplicável

Objetivos
1. Analisar os tipos de dados do problema e escolher as estruturas adequadas para o processamento computacional.
2. Projetar algoritmos e implementar programas para a resolução de problemas.
3. Analisar a complexidade temporal e espacial dos algoritmos.

Programa
1.Introdução aos algoritmos e à resolução de problemas.
2.Linguagens formais:
a.Linguagem algorítmica e fluxográfica.
b.Linguagens de programação.
3.Tipos de dados simples e expressões computacionais:
a.Definição de tipos de dados.
b.Operadores e funções.
4.Processamento sequencial:
a.Instruções para Ler, Calcular e Escrever
5.Decisão condicional:
a.Expressões e operadores lógicos.
b.Instruções para decisões simples e encadeadas.
6.Repetição de Instruções:
a.Repetição com condicional.
b.Iteração de um conjunto de valores.
7.Funções: iterativas e recursivas:
a.Modularização de programas.
b.Funções parametrizáveis e retorno de funções.
c.Recursividade.
8. Vetores e Matrizes:
a.Definição e manipulação de vetores.
b.Algoritmos de ordenação e pesquisa.
c.Definição e manipulação de matrizes.
d.Algoritmos sobre matrizes.
9.Introdução à linguagem Python:
a.Introdução à programação em python.
b.Estruturas de dados simples.
c.Funções e módulos.

Metodologia de avaliação
Avaliação Contínua:
1. Construção de um portfólio de exercícios: 70 % (mínimo de 10/20)
2. Prova escrita: 30% (mínimo de 7/20)

Avaliação por exame:
1. Prova escrita: 100%

Bibliografia
- Stein, C. e Rivest, R. e Leiserson, C. e Cormen, T. (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.