Algoritmos e Estruturas de Dados
0
2019-2020
01000197
Área Científica do Menor
Português
Presencial
Semestral
6.0
Opcional
1º Ciclo - Licenciatura
Conhecimentos de Base Recomendados
Algoritmia e resolução de problemas, programação procedimental, programação orientada a objetos (muito importante), estruturas discretas, análise de complexidade (muito importante).
Métodos de Ensino
O processo de ensino/aprendizagem é suportado em: aulas Teóricas; aulas Teórico-Práticas e Prática de laboratório; Demonstradores e Plataforma Mooshak.
As aulas Teóricas incorporam atenção aos Trabalhos Práticos, no sentido de os conhecimentos adquiridos serem percebidos como necessários ao desenvolvimento dos trabalhos práticos.
As aulas Teórico-Práticas e Práticas de Laboratório estão dirigidas ao acompanhamento dos Trabalhos Práticos e apoio à plataforma Mooshak.
Resultados de Aprendizagem
Após a conclusão da unidade curricular deve demonstrar conhecimento e capacidade de compreensão nos seguintes aspetos: análise de complexidade; técnicas gerais de projeto de algoritmos; estruturas de dados e algoritmos de ordenamento (características, memória ocupada, velocidade de execução).
Aplicação de conhecimentos e compreensão: aplicação dos conhecimentos sobre análise de complexidade; reconhecimento e compreensão do caráter recursivo das várias estruturas de dados e algoritmos estudados; capacidade de análise comparativa.
Realização de julgamento/tomada de decisão: capacidade de decisão sobre as estruturas de dados e algoritmos; capacidade de decisão sobre técnicas de programação avançada.
Comunicação: reforço de competências de comunicação escrita; reforço de competências de comunicação oral na expressão de julgamento/tomada de decisão em situações concretas.
Competências de autoaprendizagem: aprendizagem autónoma e auto-orientada na área.
Estágio(s)
NãoPrograma
- Análise de complexidade.
- Técnicas gerais de projeto de algoritmos.
- Árvores. Árvores AVL, VP, amontoados, listas de saltos, árvores B.
- Grafos.
- Algoritmos de ordenamento: shell sort, merge sort, quick sort, radix sort, MSD, LSD.
- Tabelas de dispersão.
- Tópico selecionado (ex. mapeamento de cadeias de carateres)
Docente(s) responsável(eis)
Carlos Manuel Robalo Lisboa Bento
Métodos de Avaliação
Avaliação
Trabalhos Práticos: 40.0%
Prova Escrita: 60.0%
Bibliografia
** WEISS, Mark Allen. Data Structures and Problem Solving Using Java, 3nd Edition. Pearson, Addison Wesley, 2006.
** DROZDEK, Adam. Data Structures and Algorithms in C++. Thomson Learning Inc., 2005.
** SEDGEWICK, Robert. Algorithms in C: Parts 1-4, Fundamentals, Data Structures, Sorting, Searching. Addison Wesley, 1998.
** SEDGEWICK, Robert. Algorithms in C: Part 5, Graph Algorithms. Addison Wesley, 2002.
** CORMEN, Thomas H., Leiserson, Charles E., Rivest, Ronald L., Stein, Clifford. Introduction to Algorithms, 2nd Edition. The MIT Press, 2001.