ISLA Santarém 13558
Algoritmia e Estrutura de Dados
-
ApresentaçãoPresentationA unidade curricular destina-se a analisar a complexidade das principais estruturas de dados dinâmicas: vetores (arrays), matrizes, listas, pilhas, filas. Estudar os principais algoritmos de pesquisa e ordenação.
-
ProgramaProgramme1. Conceitos de Algoritmos e Estruturas de Dados: Analise da eficiência de algoritmos. Notações assintóticas. 2. Estruturas de dados dinâmicas: Vetores e Matrizes. Pilhas, Filas, Listas, Arvores e Grafos. Operações com as estruturas (Inserir, alterar, eliminar e ordenar). 3. Ordenação e Pesquisa: Ordenação: Bubble Sort, Quick Sort, Selection Sort, Insertion Sort, Shell Sort, Merge Sort. Pesquisa: sequencial, binária, hashing; Comparação dos algoritmos. 4. Recursividade: Conceitos base. Função Fatorial, Fibonacci, Tail Recursion, outras funções. Problemas clássicos de funções recursivas. 5. Implementação em JAVA: Modelo de camadas. Ficheiros, streams e serialização. Aplicações com base de dados. Tratamento de erros.
-
ObjectivosObjectivesObjetivos: O1. Introduzir e desenvolver estratégias algorítmicas fundamentais. O2. Analisar o desempenho de algoritmos iterativos e recursivos em termos da sua complexidade algorítmica. O3. Aplicar estratégias sistemáticas de depuração, gestão de falhas e implementação de algoritmos e estruturas de dados com correção e robustez. Competências: C1. Implementar as estruturas de dados mais relevantes, nomeadamente arrays, matrizes, listas, pilhas, filas e arvores. C2. Usar técnicas algorítmicas, como seja a pesquisa e a ordenação. C3. Implementar técnicas de programação recursivas. C4. Utilizar a linguagem JAVA para implementar as estruturas e os algoritmos.
-
BibliografiaBibliographyCampesato, O. (2023). Data Structures in Java. Stylus Publishing, LLC. Malhotra, D., & Malhotra, N. (2020). Data Structures and Program Design Using Java: A Self-Teaching Introduction. Mercury Learning and Information. La Rocca, M. (2021). Advanced Algorithms and Data Structures. Manning Publications. Rocha, A. M. A. (2014). ESTRUTURAS DE DADOS E ALGORITMOS EM JAVA, FCA, Wengrow, J. (2020). A Common-Sense Guide to Data Structures and Algorithms. Pragmatic Bookshelf.
-
MetodologiaMethodologyPresencial: 1. Aulas teóricas de exposição dos conteúdos recorrendo ao método expositivo, complementado como os métodos interrogativo e interativo para consolidar os conhecimentos adquiridos através do questionamento e realização de pequenos exercícios. 2. Aplicação prática dos conteúdos através de exercícios e trabalhos. Assim, cada tópico estudado é reforçado através de exercícios práticos. Autónoma: 3. Resolução de exercícios adicionais propostos pelo docente. O docente dá feedback sobre os resultados obtidos pelo estudante na resolução dos problemas propostos, presencialmente em contexto de sala de aula ou a distância em modo assíncrono através da plataforma Moodle.
-
LínguaLanguagePortuguês
-
TipoTypeSemestral
-
ECTS7
-
NaturezaNatureObrigatório
-
EstágioInternshipNão
-
AvaliaçãoEvaluation
Avaliação Curricular (contínua):
A1. Portfólio de trabalhos/exercícios de aula.
A2. Trabalho prático (relatório e projeto).
A3. Teste final prático.
A classificação final é calculada através da fórmula Classificação Final = 0,1*A1+0,45*A2+ 0,45* A3.
O estudante é aprovado se obtiver classificação igual ou superior a 9,5 valores.
Avaliação Final ou em Época de Recurso ou Época Especial (A):
Hipótese 1:
A1. Portfólio de trabalhos/exercícios de aula. O estudante realizou os exercícios e obteve classificação positiva: mantêm a nota que será considerada nestas épocas de avaliação.
A2. Trabalho prático (grupo). O estudante participou no trabalho de grupo e obteve classificação positiva na componente individual:
mantém a nota que será considerada nestas épocas de avaliação.
A3. Teste teórico/prático (individual). O estudante realiza este Teste em qualquer das épocas em que se submeta a avaliação.
A classificação final é calculada através da formula prevista na avaliação Curricular (contínua).
Hipótese 2:
O estudante não realizou trabalhos/exercícios de aula ou realizando obteve classificação negativa e/ou não participou no trabalho de grupo ou participando obteve classificação negativa na componente de avaliação individual.
Avaliação Final, Avaliação em Época de Recurso/Especial (A): O estudante realiza o exame teórico-prático (A=100%) e é aprovado se obtiver uma classificação igual ou superior a 9,5 valores em 20.


