Programação Imperativa
Informação geral
Código: 14301
Área científica predominante: Informática
Regime: Semestral
ECTS: 5
Tipo de ensino: Presencial
Carga Horária
Trabalho autónomo: 80 horas
Aulas:
30 horas - Teóricas
30 horas - Teórico-práticas
Objetivos de ensino
Esta UC apresenta o paradigma imperativo da programação de computadores a alunos que já tiveram uma primeira abordagem (declarativa) à programação de computadores.
Desta forma, muitos dos conceitos que são aqui abordados são-no com um maior ênfase nas características específicas de linguagens imperativas, dando particular importância ao modelo de memória subjacente.
Resultados de aprendizagem
No fim da disciplina, o aluno deverá ser capaz de:
- Decompor um problema em sub-problemas com vista à sua resolução;
- Definir tipos de dados para a representação dos dados e resultados de um dado problema;
- Escrever funções e procedimentos (na linguagem C) para ordenar e pesquisar num vetor;
- Implementar estruturas de dados dinâmicas para organizar e aceder à informação de uma forma eficiente.
Programa sucinto
- Introdução ao paradigma imperativo da programação: estado e modelo de memória.
- Memória automática: definição de funções e passagem de argumentos.
- Definição de funções recursivas e iterativas envolvendo vetores (ordenação e procura).
- Uso de memória dinâmica na definição de estruturas de dados recursivas.
- Memória persistente: uso de ficheiros de acesso sequencial e não sequencial para garantir a persistência de dados.
Bibliografia essencial
- Kernigham, B. W., Ritchie, D. M. (1988). The C programming language (2nd ed.). Prentice Hall Software Series.
- Donald E. Knuth. The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition. Addison-Wesley, 1973. *Robert Sedgewick. Algorithms in C: parts 1-4, Fundamentals, Data Structures, Sorting, and Searching, third edition. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1997.
Métodos de ensino
A escolaridade da UC é utilizada da seguinte forma:
- Duas horas teóricas por semana, onde os conceitos teóricos são apresentados.
- Duas horas teórico práticas por semana, onde são propostos exercícios e problemas de programação. Disponibilização um conjunto de desafios de programação, usando como suporte um sistema de “online coding”.
Métodos de avaliação
A avaliação é feita por um teste final escrito e/ou exame de recurso.
O acesso ao teste final é feito através da resposta a uma questão escolhida aleatoriamente de um conjunto de 50 questões que os alunos conhecem antecipadamente.
Essas questões são uma parte do repositório de desafios de programação que estão disponibilizados no sistema de “online coding” referido acima.