IPLUSO 18752
Algoritmos e Estruturas de Dados
Aplicações Informáticas para Ciências de Dados (T) (IPLUSO)
-
ApresentaçãoPresentationMuitos projetos na área da programação envolvem a resolução de problemas computacionais complexos, para os quais soluções rápidas e simplistas podem não ser suficientemente eficientes. Esta UC foca-se na problemática da conceção de bons algoritmos e de como analisar a sua correção e a sua eficiência. Estas são questões particularmente importantes, numa altura a qualidade do software se vem tornado, progressivamente, numa questão central. Trata-se portanto de uma UC particularmente relevante para o ciclo de estudos.
-
ProgramaProgrammeCP1: Complexidade, classes, funções típicas e análise de algoritmos; CP2: Complexidade e recursividade (conjunto de problemas recursivos); CP3: Algoritmos de pesquisa e seleção; CP4: Algoritmos de ordenação: Insertion Sort, Heap Sort, Merge Sort e Quicksort; CP5: Comparação dos algoritmos de ordenação quanto à sua complexidade (programação do Quicksort); CP6: Tipos abstratos de dados: Pilha e Fila; CP7: Array circular, listas simples e duplamente ligadas; CP8: Implementação de Pilha e Fila (programação em array e / ou listas); CP9: Utilização de Dicionários e Conjuntos; CP10: Árvores binárias; CP11: Programação de árvores binárias; CP12: Noções básicas de grafos.
-
ObjectivosObjectivesOs estudantes que terminam com sucesso esta unidade curricular serão capazes de: OA1. Conhecer, compreender e utilizar os algoritmos e as estruturas de dados fundamentais; OA2: Analisar e conceber algoritmos recursivos; OA3. Analisar a correção a complexidade e o desempenho de algoritmos simples; OA4. Escolher de forma fundamentada as estruturas de dados adequadas a cada problema e aplicá-las na sua resolução; OA5. Desenhar estruturas de dados ligadas e algoritmos para a sua manipulação
-
BibliografiaBibliographyCormen, Thomas H. - Algorithms Unlocked. Cambridge, Massachusetts: MIT Press, 2013. Tamassia, Roberto, Goldwasser, Michael H., Goodrich, Michael T. - Data Structures and Algorithms in Python. First Edition. USA: Wiley, 2013
-
MetodologiaMethodologyUtilização da metodologia de aprendizagem baseada em exercícios, através da qual os alunos são estimulados a desenvolver autonomamente soluções para problemas que lhes são colocados e que abordam a generalidade dos tópicos lecionados.
-
LínguaLanguagePortuguês
-
TipoTypeSemestral
-
ECTS5
-
NaturezaNatureObrigatório
-
EstágioInternshipNão