-
Apresentação
Apresentação
Analisar a complexidade das principais estruturas de dados dinâmicas: vetores (arrays), matrizes,, pilhas e filas. Estudar os principais algoritmos de pesquisa e ordenação. Implementar as estruturas e os algoritmos em C. Pretende-se trabalhar no aluno a capacidade abstração e resolução de problemas através da especificação de algoritmos e estruturas de dados. Desenvolver a capacidade de compreender um problema, de desenhar a solução na forma de um algoritmo e de compreender os aspetos relevantes para a sua conversão numa linguagem de programação.
-
Disciplina do curso
Disciplina do curso
-
Grau | Semestres | ECTS
Grau | Semestres | ECTS
Licenciado | Semestral | 6
-
Ano | Natureza | Lingua
Ano | Natureza | Lingua
1 | Obrigatório | Português
-
Código
Código
ULP452-18752
-
Pré-requisitos e co-requisitos
Pré-requisitos e co-requisitos
Não aplicável
-
Estágio Profissional
Estágio Profissional
Não
-
Conteúdos Programáticos
Conteúdos Programáticos
1. Conceitos de Algoritmos e Estruturas de Dados Algoritmia e modelação de problemas Representação e notação algorítmica Tipos e Estruturas de Dados Analise da eficiência de algoritmos 2. Estruturas de dados dinâmicas Vetores e Matrizes Pilhas e Filas 3. Ordenação e Pesquisa Algoritmos de ordenação e pesquisa Pesquisa: sequencial, binária, hashing Comparação dos algoritmos 4. Recursividade Conceitos base Função Fatorial, Fibonacci Problemas clássicos de funções recursivas 5. Implementação em C Algoritmia e programação Linguagens de programação Implementação de algoritmos Introdução à programação em C
-
Objetivos
Objetivos
Saber definir e especificar um algoritmo; 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, pilhas e filas; Uso técnicas algorítmicas, como seja pesquisa, ordenação; Compreender e implementar técnicas de programação recursivas; Saber identificar os problemas típicos da programação imperativa e procedimental e enunciar os princípios fundamentais da engenharia de software.
-
Metodologias de ensino e avaliação
Metodologias de ensino e avaliação
Incluir também as metodologias inovadoras de suporte ao processo de ensino-aprendizagem utilizadas Utilização de ambientes integrados de programação de modo a implementar os algoritmos e problemas (exercícios) analisados em sala de aula.
-
Bibliografia principal
Bibliografia principal
Vasconcelos, J.B. Python: Algoritmia e Programação Web , Editora FCA Informática, Grupo Lidel, 2015. Vol. 1. 328 p. ISBN: 978-972-722-813-3. Cormen,T.; Leiserson, C.; Rivest, R.; Stein,C.; Introduction to Algorithms .The MIT Press. 3rd Ed. 2009. ISBN 0262033844. Vasconcelos, J.B.; Carvalho, J.V.; Algoritmia e Estruturas de Dados . Centro Atlântico. 1ª Ed. 2005. ISBN 9896150125.
-
Horário de Atendimento
Horário de Atendimento
-
Mobilidade
Mobilidade
Não