Algorithms and Abstract Data Types
Á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
Portuguese
Obs.: Português
Objetivos
Students have to acquire and consolidates knowledge,
skills and competences in:
- interpretation, analysis, specification and
implementation of trivial computing algorithms,
e.g., selection algorithms, research, ordering;
iterative and recursive algorithms; in the analysis
component, emphasis will be given to the temporal
complexity of the algorithms;
- specification and manipulation of linear data
structures (static and dynamic) and scatter tables;
- understanding, use and implementation of the most
common abstract data types (collection type), e.g.,
Stack, Queue, List, Map;
- specification of new TADs, choice of an appropriate data structure and its implementation and use;
- (in parallel) acquisition of skills in object-oriented
programming and use of generic types and exceptions in
the implementation of TADs.
Resultados de aprendizagem e competências
Students should be able to analyze a problem and
choose appropriate algorithms for its solution in
order to minimize, mainly, the costs of processing
time and memory, using the resources of the programming
language proposed for the work.
Modo de trabalho
Presencial
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
Initial knowledge of JAVA programming.
Programa
- Algorithms, algorithmic complexity and formalization of algorithms in pseudo-code;
- Search and selection algorithms;
- Simple sorting algorithms O(n²) - Bubble Sort and Selection Sort;
- Recursive versus iterative algorithms;
- Complexity of sorting algorithm, e.g., O(n log n) - Quick Sort;
- Referenced data types, generic types, and conceptual recap of interfaces and exceptions.
- Use of a TAD given its interface; creation of test units for validation of TAD implementations;
- Definition and manipulation of a static linear data structure, e.g. arraylist;
- Specification and implementation of the most common abstract data types (collection type),
e.g. Stack, Queue, List and Map, using a static data structure;
- Implementation and manipulation of dynamic linear data structures, e.g. linked lists;
- Implementation of the previous abstract data types, using a dynamic data structure;
- Hash tables and use of this data structure in a TAD Map implementation (=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
websites such as w3schools.
Métodos de ensino e atividades de aprendizagem
Teoric and practical classes with proposed exercises
and practical project.
Palavras Chave
Technological sciences > Technology > Computer technology > Software technology
Tipo de avaliação
Distributed evaluation with final exam
Componentes de Avaliação
Designation |
Peso (%) |
Teste |
50,00 |
Trabalho laboratorial |
50,00 |
Total: |
100,00 |
Componentes de Ocupação
Designation |
Tempo (Horas) |
Estudo autónomo |
50,00 |
Trabalho laboratorial |
50,00 |
Total: |
100,00 |
Obtenção de frequência
Presential.
Fórmula de cálculo da classificação final
Minimum average of 9.5 points for APPROVAL AT THE Curricular Unit.
Restrictions:
- In each test there is a minimum score of 8.0 and 9.5
on average.
- The Project has a minimum score of 8.0.
- There is a minimum score of 9.5 in the Exams
(Regular Season and/or Appeal).
The final grade (NF) is calculated according to the
following formula:
NF1 = (Theoretical1*25% + Theoretical2*25%)+ (Project * 50%)
For the Exams of the Period of Appeal or Special Period,
the calculation of the final note is calculated directly
from the value of the exam grade, which cannot be less than 9.5.
Provas e trabalhos especiais
Does not exist.
Trabalho de estágio/projeto
Does not exist.
Avaliação especial (TE, DA, ...)
Does not exist.
Melhoria de classificação
Does not exist.
Observações
Initial knowledge of JAVA language.