Departamento de Informática (UM)

Página de Unidade Curricular

DesignaçãoCódigoCursoRegimeRegente

Programação e Algoritmia

14325 [L201N6]

Licenciatura em Engenharia Aeroespacial [ENGAERO]

S1

Luís Manuel Dias Coelho Soares Barbosa

Objetivos

A UC pretende desenvolver as capacidades dos estudantes: (1) na resolução de problemas de diversos tipos inerentes à execução das tarefas de programação imperativa, a nível algorítmico e do ponto de vista das estruturas de dados a utilizar; e (2) na codificação daquelas mesmas tarefas recorrendo a uma linguagem de programação imperativa.

Programa

1. Ciclo de vida do desenvolvimento de software:
1.1 Análise e especificação de problemas
1.2 Modelação (escrita de algoritmos)
1.3 Codificação
1.4 Execução e testes
2. Introdução à algoritmia:
2.1 Tipos de dados
2.2 Constantes
2.3 Variáveis e conteúdo de variáveis
2.4 Operações sequenciais
2.5 Estruturas condicionais (e.g., Se … e Caso …)
2.6 Estruturas de repetição (e.g., Enquanto…, Repetir … e Para …)
2.7 Arrays (vetores e matrizes)
2.8 Resolução algorítmica de problemas
2.9 Modularização de programas – Procedimentos e Funções
3. Linguagem de programação
3.1 Tipos de dados elementares
3.2 Estruturas de controlo de fluxo
3.3 Operadores e operações elementares
3.4 Estruturas de dados
3.5 Funções
3.6 Variáveis locais e globais
3.7 Passagem de parâmetros

Bibliografia

Harel, D., & Feldman, Y. (2012). Algorithmics, the Spirit of Computing. Springer.

Guttag, J. (2013). Introduction to Computation and Programming Using Python (Spring 2013 edition). MIT Press.

Kochan, S. (2014). Programming in C (4th edition). Pearson Books.

Margab, E., Azarm, S., Balachandran, B., Duncan, J., Herold, K., & Walsh, G. (2011). An Engineer’s Guide to MATLAB with Applications Form Mechanical, Aerospace, Electrical, Civil and Biological Systems Engineering. New Jersey: Prentice-Hall.

Resultados da aprendizagem

Os estudantes que completarem a UC com sucesso terão demonstrado capacidade para:
- Explicar o papel dos algoritmos na resolução estruturada de problemas, na modelação de programas de computador e na obtenção dos mesmos;
- Explicar os conceitos estruturas de dados e estruturas de controlo básicos da algoritmia e da programação;
- Modificar algoritmos diversos;
- Utilizar algoritmos na resolução de problemas diversos;
- Utilizar uma linguagem de programação imperativa para codificar algoritmos;
- Usar estruturas modulares na criação de programas de computador.

Método de avaliação

Elementos de avaliação periódica:
- Trabalho de Grupo (TG);
- Duas provas individuais (A e B) sumativas.
Classificação Final (CF) = [(0–10)%×TG]+[(25–40)%× A] + [(40 – 55)% × B]; Os pesos relativos de cada elemento de avaliação serão determinados, em função da experiência e das caraterísticas da turma.

Funcionamento

Turno: T 1; Docente: Carlos Eduardo Teixeira Tavares; Dep.: DI; Horas: 30.
Turno: PL 1; Docente: Carlos Eduardo Teixeira Tavares; Dep.: DI; Horas: 30.

[ Outras UCs do Departamento ]