filmeu

Disciplina Algoritmia e Estrutura de Dados

  • Apresentação

    Apresentação

    Muitos 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.

  • Conteúdos Programáticos

    Conteúdos Programáticos

    CP1: 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: Funções de dispersão: aberta e fechada;

    CP10: Tabelas de hash (prática de utilização de Dicionários e Conjuntos);

    CP11: Árvore binária, árvores AVL e árvore preta e vermelha;

    CP12: Árvore binária (programação de árvore binária);

    CP13: Noções básicas de grafos: grafo orientado, não orientado e etiquetado, caminho e comprimento;

    CP14: Caminho mais curto entre dois vértices - Algoritmo de Dijkstra;

    CP15: Algoritmo de Dijkstra (programação).

  • Objetivos

    Objetivos

    OA1: Analisar e comparar a complexidade de algoritmos;

    OA2: Aplicar a recursividade na resolução de problemas;

    OA3: Explicar e usar alguns dos principais algoritmos de pesquisa, seleção e ordenação;

    OA4: programar algoritmos de ordenação [aplicar o conhecimento (AC)];

    OA5: Explicar e usar os tipos abstratos de dados: Pilha e Fila;

    OA6: Programar uma Pilha e / ou Fila utilizando arrays ou listas (AC);

    OA7: Explicar as funções de dispersão;

    OA8: Usar as estruturas de dados Dicionários e Conjuntos na resolução de problemas (AC);

    OA9: Explicar e usar as estruturas de dados: árvore binária, AVL e preta e vermelha;

    OA10: Programar uma árvore binária (AC);

    OA11: Explicar e dar exemplos da utilização de grafos na resolução de problemas;

    OA12: Programar o algoritmo de Dijkstra (AC).

  • Metodologias de ensino e avaliação

    Metodologias de ensino e avaliação

    M1: Ensino expositivo: A apresentação de conceitos teóricos é feita de forma expositiva através de slides. Disponibilizam-se num canal Educast da FCCN video-tutoriais curtos desenvolvidos sobre os conceitos chave da disciplina.

    M2: Ensino ativo: os conceitos teóricos são demonstrados recorrendo a "live coding" pelo docente.

    M3: Aprendizagem experimental: São usadas fichas em Jupyter Notebook que permitem a experimentação imediata dos conceitos lecionados.

    M4: Aprendizagem participativa: Durante as aulas é estimulada a discussão em grupo dos exercícios e projetos semanais.

    M5: Auto-avaliação: foi desenvolvida uma plataforma que permite realizar quizzes para avaliação de todos os conhecimentos, cuja solução submetida é validada de forma automática.

    M6: Aprendizagem orientada a projeto: são realizados de forma autónoma exercícios e projetos semanais com desafios exploratórios de aspectos complementares.

    M7: Avaliação contínua: fichas semanais, quizzes, projetos, minitestes e frequencias.

  • Bibliografia principal

    Bibliografia principal

    • Tamassia, Roberto, Goldwasser, Michael H., Goodrich, Michael  T. - Data Structures and Algorithms in Python. First Edition. USA: Wiley, 2013
    • Cormen, Leiserson, Rivest e Stein - Algoritmos, Teoria e Prática, tradução da 3ª edição EUA, Elsevier Editora Ltd., 2012
    • Cormen, Thomas H. - Algorithms Unlocked. Cambridge, Massachusetts: MIT Press, 2013.

     

INSCRIÇÃO AVULSO
Lisboa 2020 Portugal 2020 Small Logo EU small Logo PRR republica 150x50 Logo UE Financed Provedor do Estudante Livro de reclamaões Elogios