Skip to main content

ISLA IPGT 6291

Algoritmos e Estrutura de Dados

Multimédia (L) (ISLA GAIA)
  • ApresentaçãoPresentation
    Esta UC é essencial para a formação de qualquer profissional da área de Informática, pois apresenta os Algoritmos e Estruturas de Dados, que servem como base para diversas matérias futuras, como Linguagens de Programação I e II, entre outras. O foco vai além da simples aprendizagem de uma linguagem de programação: o/a aluno/a desenvolve capacidades de pensamento lógico, analisar problemas e criar conhecimentos fundamentais sobre a forma como os dados são organizados, armazenados e manipulados de forma eficiente, bem como sobre os algoritmos que operam sobre essas estruturas. A aprendizagem de algoritmos e estruturas de dados é uma base imprescindível para o desenvolvimento de software robusto, eficiente e escalável.
  • ProgramaProgramme
    1.  Conceitos de algoritmos e Estruturas de Dados Analise 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 C# Modelo de camadas Ficheiros, streams e serialização Aplicações com base de dados Tratamento de erros
  • ObjectivosObjectives
    Analisar a complexidade das principais estruturas de dados dinâmicas: vetores (arrays), matrizes, listas, pilhas, filas. Estudar os principais algoritmos de pesquisa e ordenação. Implementar as estruturas e os algoritmos em C#. -Ser capaz de analisar a complexidade e eficiência dos algoritmos mais relevantes; -Ser capaz de implementar as estruturas de dados mais relevantes, nomeadamente arrays, matrizes, listas, pilhas, filas e arvores; -Uso técnicas algorítmicas, como seja pesquisa, ordenação; -Compreender e implementar técnicas de programação recursivas; -Dominar a linguagem C#.
  • BibliografiaBibliography
    Packt Publishing. (2023). C# Data Structures and Algorithms. Packt Publishing. Edet, T. (2023). Algorithms and Data Structures for OOP with C#. Independently published. Wengrow, J. (2020). A Common-Sense Guide to Data Structures and Algorithms: Level Up Your Core Programming Skills. Pragmatic Bookshelf.  
  • MetodologiaMethodology
    As aulas desta UC assumem um carácter teórico-prático e são lecionadas num contexto baseado em resolução de problemas, complementadas com demonstração da aplicação prática com recurso a exercícios, bem como orientação e mentoria em projetos.
  • LínguaLanguage
    Português
  • TipoType
    Semestral
  • ECTS
    6
  • NaturezaNature
    Obrigatório
  • EstágioInternship
    Não