filmeu

Disciplina Algoritmia e Estruturas de Dados

  • Apresentação

    Apresentação

    Esta UC surge no 2º semestre do 1º ano, na continuação do trabalho iniciado em Fundamentos de Programação (FP). Em FP, os alunos deram os primeiros passos na programação e preocuparam-se principalmente em produzir programas correctos. Agora, em Algoritmia e Estruturas de Dados, irão continuar a produzir programas correctos mas com preocupações de desempenho, a nível de tempo de execução e consumo de memória. Esta é uma UC fundamental no currículo de um Engenheiro Informático, que na sua vida profissional encontrará inúmeras situações em que terá que resolver problemas causados por fraco desempenho das aplicações e que exigem um conhecimento sólido dos princípios subjacentes aos principais algoritmos e estruturas de dados. Não obstante a aprendizagem de conceitos e técnicas de algoritmia e estruturas de dados, os alunos trabalham outras competências fundamentais. Nomeadamente, o espírito crítico e a capacidade de avaliar várias alternativas para resolver os problemas.  
  • Conteúdos Programáticos

    Conteúdos Programáticos

    funções recursivas, algoritmos recursivos tipos de dados complexos eficiência e optimização (algorítmica e não-algorítmica) complexidade de algoritmos algoritmos de pesquisa algoritmos de ordenação - bubble sort, selection sort, merge sort, quick sort tipos de dados abstractos - pilhas e filas listas ligadas árvores binárias, árvores ordenadas, árvores AVL hashtables
  • Objetivos

    Objetivos

    O objectivo desta unidade curricular é introduzir os conceitos fundamentais de algoritmos e das estruturas de dados básicas, numa perspetiva de resolver problemas complexos de uma forma eficiente. O aluno deverá ser capaz de analisar e avaliar a eficiência de um algoritmo sem necessidade de o implementar ou testar. Deverá ser igualmente capaz de aplicar a estrutura de dados mais eficaz e eficiente para resolver um determinado problema. Concretamente, o aluno deverá conseguir criar programas em Java cuja eficiência seja um critério significativo de sucesso (ex: pesquisa, ordenação).
  • Metodologias de ensino

    Metodologias de ensino

    Na componente teórica, algumas aulas utilizam o modelo "flipped learning": os alunos visualizam vídeos que explicam certos conteúdos antes da aula teórica, e a aula teórica acaba por ser teórico-prática, com os alunos a resolverem exercícios relacionados com os vídeos. São também feitas sessões de live coding, em que o professor projeta o seu computador e desenvolve programas à frente dos alunos. Na componente prática, é utilizada uma ferramenta de validação automática de código (Drop Project), que permite que os alunos avancem nos exercícios de forma relativamente autónoma. O projeto também é realizado nesse modelo, sem limite de tentativas: o aluno pode submeter quantas vezes quiser até passar os testes automáticos. O uso de LLMs é autorizado e até incentivado, no sentido de complementar e não substituir - no entanto, para evitar comportamentos de "copy&prompting" pouco didáticos, os exercícios são apresentados de forma visual (seja com diagramas seja com vídeos).
  • Bibliografia principal

    Bibliografia principal

    Lafore, R. (2003) Data Structures and Algortihms in Java. 2nd edition.
  • Avaliação

    Avaliação

    Componente teórica (40% da nota final, nota mínima 9,5)  

    tem duas opções: avaliação contínua ou apenas uma frequência completa

    • Avaliação contínua
      • Frequência parte 2 (segunda metade da matéria) - 45% - nota mínima: 8 (apenas para quem passou na frequência parte 1)
      • Frequência parte 1 (primeira metade da matéria) - 45% - nota mínima: 8
      • 3 TPCs - 10%
    • Frequência completa (toda a matéria) - 100% - nota mínima: 9,5

    Componente prática (60% da nota final, nota mínima 9,5)

    • 2 mini-fichas presenciais - 25%, feitas durante a aula prática, usando o Drop Project (ferramenta de validação automática de código)

    • Participação - 10%, calculada a partir do número de fichas práticas submetidas dentro do prazo
    • Projeto em grupos de 2, com defesa presencial - 65% (apenas serão aceites grupos de 1 aluno em situações excepcionais, devidamente justificadas)
      • A defesa presencial inclui alterações no código da aplicação que cada aluno terá que fazer individualmente assim como perguntas colocadas individualmente.
      • A nota da defesa presencial pode ir de 0 a 100% e é aplicada à nota do projecto

    Nota: Se tiver nota mínima numa componente, essa nota é transferida para época de recurso e época especial do mesmo ano letivo.

    Em época de recurso e especial, mantém-se a obrigatoriedade de aprovar na componente teórica e prática (nota mínima em cada uma é 9,5). A componente teórica é avaliada através de um exame e a componente prática é avaliada através de um projeto e respetiva defesa individual.

INSCRIÇÃO AVULSO
Lisboa 2020 Portugal 2020 Small financiado eu 2024 prr 2024 republica portuguesa 2024 Logo UE Financed Provedor do Estudante Livro de reclamaões Elogios