IPT Logotipo do IPT

Ano Letivo: 2021/22

Licenciatura em Engenharia Electrotécnica e de Computadores

Técnicas de Programação

<< voltar ao Plano Curricular

Publicação em Diário da República: Despacho nº 10766/2011 - 30/08/2011

5 ECTS; 1º Ano, 2º Semestre, 28,0 T + 28,0 PL + 5,0 OT

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:
- Testes Práticos (20% - 4 Valores)
- Trabalho Prático (30% - 6 Valores)
- Teste escrito (50% - 10 Valores)

Outras Épocas de Exame:
- Teste Prático (20% - 4 Valores)
- Exame escrito (30% - 6 Valores)
- Trabalho Prático (50% - 10 Valores)

Todas as épocas de avaliação:
- Notas mínimas: Testes Escritos, 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 Ensino
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

 

Aprovado em Conselho Técnico Cientifico: 06 de maio de 2022

Download da Ficha da Unidade Curricular (FUC)

 

 


<< voltar ao Plano Curricular
Elemento gráfico

Notícias | Agenda

NP4552
Financiamento
b-on
santander
erasmus
catedra
Financiamentos