ISLA Santarém 13397
Algoritmia e Estruturas de Dados
-
ApresentaçãoPresentationEsta unidade curricular aborda os fundamentos da resolução de problemas através de algoritmos e da organização eficiente de informação. Explora conceitos como análise e construção de algoritmos, estruturas de dados, listas, filas, pilhas, árvores, pesquisa e ordenação. Pretende desenvolver competências de pensamento computacional e programação, permitindo aos estudantes criar soluções eficientes e estruturadas para problemas informáticos em diferentes contextos.
-
ProgramaProgramme1. Conceitos de Algoritmos e Estruturas de Dados: Análise 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.
-
ObjectivosObjectivesO1. Compreender e aplicar estratégias algorítmicas fundamentais para resolver problemas computacionais. O2. Avaliar o desempenho de algoritmos iterativos e recursivos através da análise da sua complexidade. O3. Desenvolver e testar algoritmos e estruturas de dados de forma sistemática, utilizando boas práticas de depuração, correção e robustez. C1. Ser capaz de implementar e utilizar estruturas de dados essenciais, como arrays, matrizes, listas, pilhas, filas e árvores. C2. Aplicar técnicas de pesquisa e ordenação em diferentes contextos de programação. C3. Conceber e implementar soluções baseadas em programação recursiva. C4. Utilizar a linguagem Java para desenvolver algoritmos e estruturas de dados de forma eficiente e estruturada.
-
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, 2011 Wengrow, J. (2020). A Common-Sense Guide to Data Structures and Algorithms. Pragmatic Bookshelf.
-
MetodologiaMethodologySíncrona a distância: 1. Utilização de metodologias centradas no estudante nomeadamente através da resolução de problemas e desafios utilizando-se estratégias de gamificação. Presencial: 2. Nas sessões presenciais o docente combinará as estratégias metodológicas da aula invertida (através da qual disponibilizará previamente documentos/vídeos com os conteúdos a abordar na sessão) com a gamificação (nas aulas os estudantes são desafiados a aplicação prática para resolver exercícios propostas. Autónoma: 3. Resolução de exercícios adicionais propostos pelo docente (estas atividades serão articuladas de modo a integrarem as estratégias baseadas em gamificação. O docente dá feedback (Orientação Tutorial - OT) 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
-
ECTS6
-
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,2*A1+0,4*A2+ 0,4* 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.
A classificação mínima na avaliação curricular (continua) a aplicar é a seguinte:- Portfólio/trabalhos e exercícios de aula: 10 valores- Trabalho prático (relatório e projeto): 10 valores.- Teste final prático (realizado no final da UC): 8 valores
A avaliação dos trabalhos práticos em grupo, inclui a avaliação individual dos estudantes que terá uma ponderação de 40% na
classificação do estudante nessa componente.


