Contacto WhatsApp 961135355

Universidade Lusófona do Porto

Algoritmos e Estruturas de Dados

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.

Curso

Engenharia Informática (ULP)

Grau|Semestres|ECTS

| Semestral | 6

Ano | Tipo de unidade curricular | Lingua

1 |Obrigatório |Português

Código

ULP452-18752

Disciplinas complementares recomendadas

Fundamentos de Programação

Estágio profissional

Não

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

  • 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

Metodologia de ensino:
As aulas teóricas de exposição da matéria recorrendo ao método expositivo, interrogativo e interativo, sendo complementadas com aplicação prática de imediato através de exercícios e trabalhos.
Assim, cada tópico estudado é reforçado através de exercícios práticos. Portanto, será usada a metodologia de Aprendizagem Baseada em Resolução de Problemas.
Metodologia de avaliação:
Os estudantes escolhem entre Avaliação Contínua (1) ou Avaliação Final (2).
1. Avaliação Contínua:
- Trabalhos práticos (projetos e exercícios/algoritmos); 30%;
- Teste final prático; 70%;
2. Avaliação Final:
-Teste escrito de avaliação
Todos os estudantes que não tenham concluído com sucesso a avaliação podem realizar um exame final prático na época de avaliação definida pela instituição.

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

Nome do docente  

Horário de atendimento

Sala

José Braga de Vasconcelos