Algoritmos e Tipos Abstratos de Dados
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Ciências Informáticas |
Ocorrência: 2023/2024 - 1S
Ciclos de Estudo/Cursos
Sigla |
Nº de Estudantes |
Plano de Estudos |
Anos Curriculares |
Créditos UCN |
Créditos ECTS |
Horas de Contacto |
Horas Totais |
TINFT |
33 |
Plano Estudos_2018_19 |
1 |
- |
6 |
60 |
162 |
Docência - Responsabilidades
Língua de trabalho
Português
Obs.: Português
Objetivos
O aluno deve adquirir e consolidar conhecimentos, aptidões e competências na:
- interpretação, análise, especificação e implementação de algoritmos triviais de computação, e.g., algoritmos de seleção, pesquisa, ordenação; algoritmos iterativos e recursivos; na componente de análise será dado destaque à complexidade temporal dos algoritmos;
- especificação e manipulação de estuturas de dados lineares (estáticas e dinâmicas) e tabelas de dispersão;
- comprensão, uso e implementação dos tipos abstratos de dados (do género coleção) mais comuns, e.g., Stack, Queue, List, Map;
- especificação de novos TAD, escolha de uma estrutura de dados apropriada e sua implementação e uso;
- (paralelamente) aquisição de competências em programação orientada a objetos e uso de tipos genéricos e exceções na implementação de TADs.
Resultados de aprendizagem e competências
Os alunos devem ser capazes de analisar um problema e escolher algortimos apropriados para sua solução de forma a minimizar, principalmente, os custos de tempo de processamento e memória utilizando para tanto os recursos da linguagem de programação proposta para o trabalho.
Modo de trabalho
Presencial
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
Conhecimentos iniciais da linguagem de programação JAVA.
Programa
- Algoritmos, complexidade algorítmica e formalização de algoritmos em pseudo-código;
- Algoritmos de pesquisa e seleção;
- Algoritmos de ordenação simples O(n²) - Bubble Sort e Selection Sort;
- Algoritmos recursivos versus iterativos;
- Algoritmo de ordenação complexa, e.g., O(n log n) - Quick Sort;
- Tipos de dados referenciados, tipos genéricos e recapitulação de conceitos de interfaces e exceções.
- Utilização de um TAD dada a sua interface; criação de unidades de teste para validação de implementações de TAD;
- Definição e manipulação de uma estrutura de dados linear estática, e.g. arraylist;
- Especificação e implementação dos tipos abstratos de dados (do género coleção) mais comuns, e.g. Stack, Queue, List e Map, recorrendo a uma estrutura de dados estática;
- Implementação e manipulação de estruturas de dados lineares dinâmicas, e.g. listas ligadas;
- Implementação dos tipos abstratos de dados anteriores, recorrendo a uma estrutura de dados dinâmica;
- Tabelas de dispersão e uso desta estrutura de dados numa implementação do TAD Map (=Hash tables).
Bibliografia Obrigatória
António Adegro da Rocha; ESTRUTURAS DE DADOS E ALGORITMOS EM JAVA
Bibliografia Complementar
António Adrego da Rocha; ANÁLISE DA COMPLEXIDADE DE ALGORITMOS
Observações Bibliográficas
Outros recursos importantes são alguns sites na web como o W3SCHOOLS.
Métodos de ensino e atividades de aprendizagem
Aulas teórico-práticas com proposição de exercícios e projeto prático.
Palavras Chave
Ciências Tecnológicas > Tecnologia > Tecnologia de computadores > Tecnologia de software
Tipo de avaliação
Avaliação distribuída com exame final
Componentes de Avaliação
Designação |
Peso (%) |
Teste |
50,00 |
Trabalho laboratorial |
50,00 |
Total: |
100,00 |
Componentes de Ocupação
Designação |
Tempo (Horas) |
Estudo autónomo |
50,00 |
Trabalho laboratorial |
50,00 |
Total: |
100,00 |
Obtenção de frequência
Presencial.
Fórmula de cálculo da classificação final
Média mínima de 9.5 valores para APROVAÇÃO NA UC.
Restrições:
- Em cada teste há nota mínima de 8.0 e de 9.5 na média.
- No Projeto há nota mínima de 8.0.
- Há nota mínima de 9.5 nos Exames (Época normal e/ou Recurso).
A nota final (NF) é calculada segundo a seguintes fórmulas e condição: NF1 = (Teórica1*25% + Teórica2*25%)+ (Projeto * 50%)
Para os Exames de Época de Recurso ou Época Especial o cálculo da NF é apurado diretamente do valor da nota do exame, não podendo esta ser menor que 9,5.
Provas e trabalhos especiais
Não há.
Trabalho de estágio/projeto
Não há.
Avaliação especial (TE, DA, ...)
Não há.
Melhoria de classificação
Não há.
Observações
Conhecimento incial de JAVA.