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 , Cód. 911240.
Docente(s)
- Pedro Daniel Frazão Correia (1)(2)
(1) Docente Responsável
(2) Docente que lecciona
Pré-requisitos
Não aplicável.
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
Metodologia de avaliação
Avaliação em Época de Frequência:
- Trabalhos Práticos (20% - 4 Valores)
- Projeto Final (30% - 6 Valores)
- Teste escrito (50% - 10 Valores)
Outras Épocas de Exame:
- Trabalhos Práticos (20% - 4 Valores)
- Projeto Final (30% - 6 Valores)
- Teste escrito (50% - 10 Valores)
Todas as épocas de avaliação:
- Notas mínimas: Exame Escrito, 7/20 valores; Componente Prática (Trabalhos Práticos + Projeto Final), 10/20 valores.
Bibliografia
(1988). The C Programming Language. USA: Pearson
(1988). The C Programming Language. USA: Pearson
(1997). Algorithms in C, Parts 1-4 Fundamentals,Data Structures, Sorting, Searching. USA: Addison-Wesley
(1997). Algorithms in C, Parts 1-4 Fundamentals,Data Structures, Sorting, Searching. USA: Addison-Wesley
(1999). Linguagem C. Portugal: FCA
(1999). Linguagem C. Portugal: FCA
(2009). Introduction to Algorithms, Third Edition. USA: MIT Press
(2009). Introduction to Algorithms, Third Edition. USA: MIT Press
(2014). Estruturas de Dados e Algoritmos em C. PT: FCA
(2014). Estruturas de Dados e Algoritmos em C. PT: FCA
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: Aprovada na Ata nº 18/2024 de 17/04
Download da Ficha da Unidade Curricular (FUC)