Técnicas de Programação

 

Engenharia Electrotécnica e de Computadores, Publicação em Diário da República - Despacho n.º 7795/2021 - 09/08/2021

6 ECTS; 1º Ano, 2º Semestre, 42,0 PL + 28,0 TP

Docente(s)
- Pedro Daniel Frazão Correia

Pré-requisitos
Conceitos de programação e algoritmia. Conhecimentos elementares de C.

Objetivos
1. Adquirir conhecimentos sobre aspetos avançados da linguagem de programação C, tais como: apontadores; funções e passagem de parâmetros; estruturas; memória dinâmica.
2. Aprender a implementar e consumir estruturas de dados elementares, utilizando a linguagem de programação C e Tipos de Dados Abstratos (ADTs-Abstract Data Types).
3. Aprender técnicas de análise e desenho de algoritmos e como classificar algoritmos segundo a estimativa do seu tempo de execução.
4. Aprender a implementar algoritmos de ordenação.
5. Aprender a implementar e consumir estruturas de dados hierárquicas, utilizando a linguagem de programação C e Tipos de Dados Abstratos (ADTs-Abstract Data Types).

Programa
1. Aspetos avançados da linguagem C
1.1. Apontadores
1.1.1. Apontadores e tabelas
1.1.2. Aritmética de apontadores
1.1.3. Apontadores de apontadores

1.2. Passagem de parâmetros para funções
1.2.1. Passagem por valor
1.2.2. Passagem por referência
1.2.3. Passagem de tabelas
1.2.4. Passagem de parâmetros na linha de comando

1.3.vEstruturas
1.3.1. Acesso aos membros de uma estrutura
1.3.2. Estruturas aninhadas
1.3.3. Passagem de estruturas para funções
1.3.4. Operações sobre estruturas

1.4. Memória Dinâmica
1.4.1.vAlocação de memória
1.4.2. Libertação de memória
1.4.3. Estruturas de dados dinâmicas

2. Estruturas Elementares de Dados
2.1. Listas ligadas
2.2. Listas duplamente ligadas
2.3. Filas
2.4. Pilhas

3. Análise e desenho de algoritmos
3.1. Técnicas de análise e desenho de algoritmos
3.2. Notação Big-O

4. Algoritmos de ordenação
4.1. Selection Sort
4.2. Bubble Sort
4.3. Insertion Sort

5. Estruturas de dados hierárquicas
5.1. Árvores binárias
5.2. Operações sobre árvores binárias
5.3. Travessias

Metodologia de avaliação
Avaliação em Época de Frequência:
- Exercícios Práticos (20%)
- Teste escrito (30%)
- Trabalho Prático (50%).

Outras Épocas de Exame:
- Exame escrito (40%)
- Trabalho Prático (60%).

Todas as épocas de avaliação:
- Notas mínimas: Testes e Exames, 7 valores; Trabalhos Práticos, 10 valores

Bibliografia
- Damas, L. (1999). Linguagem C. Portugal: FCA
- Rivest, R. e Stein, C. e Leiserson, C. e Cormen, T. (2009). Introduction to Algorithms, Third Edition. USA: MIT Press
- Sedgewick, R. (1997). Algorithms in C, Parts 1-4 Fundamentals,Data Structures, Sorting, Searching. USA: Addison-Wesley
- Adrego da Rocha, A. (2014). Estruturas de Dados e Algoritmos em C. PT: FCA
- W. Kernighan, B. e Ritchie, D. (1988). The C Programming Language. USA: Pearson

Método de interação
Aulas expositivas para apresentação dos conteúdos teóricos do programa; Aulas práticas laboratoriais para resolução de problemas e consolidação de conhecimentos utilizando o computador; Apoio tutorial para esclarecimento de dúvidas.

Software utilizado nas aulas
Code Blocks; MinGW / GCC / GDB

 

Objetivos de Desenvolvimento Sustentável