Aviso: Se está a ler esta mensagem, provavelmente, o browser que utiliza não é compatível com os "standards" recomendados pela W3C. Sugerimos vivamente que actualize o seu browser para ter uma melhor experiência de utilização deste "website". Mais informações em webstandards.org.

Warning: If you are reading this message, probably, your browser is not compliant with the standards recommended by the W3C. We suggest that you upgrade your browser to enjoy a better user experience of this website. More informations on webstandards.org.

Sub Menu
ISCTE-IUL  >  Ensino  >  LETI , LEI , LEI-PL , LIGE , LIGE-PL

Algoritmos e Estruturas de Dados (2 º Sem 2019/2020)

Código: L5097
Acrónimo: L5097
Nível: 1º Ciclo
Estruturante: Não
Língua(s) de Ensino: Português
Língua(s) amigável(is):
Ser English-friendly ou qualquer outra língua-friendly, significa que a UC é leccionada numa língua mas que se pode verificar qualquer uma das seguintes condições:
1. Existem materiais de apoio em língua inglesa/outra língua;
2. Existem exercícios, testes e exames em língua inglesa/outra língua;
3. Existe a possibilidade de se apresentar trabalhos escritos ou orais em língua inglesa/outra língua.
1 6.0 0.0 h/sem 54.0 h/sem 0.0 h/sem 0.0 h/sem 0.0 h/sem 0.0 h/sem 1.0 h/sem 55.0 h/sem 95.0 h/sem 0.0 h/sem 150.0 h/sem
Em vigor desde o ano letivo 2015/2016
Pré-requisitos Nenhum
Objectivos Dotar os alunos de formação avançada em programação centrada em objectos, com recurso a conceitos e técnicas oriundas da Ciência da Computação, com ênfase nos princípios de abstracção, encapsulação e modularização. Proporcionar uma introdução às técnicas de estruturação de dados e análise de algoritmos no contexto da metodologia de programação centrada em objectos.
Programa I  Análise da correção de programas
1.Introdução à lógica proposicional e de predicados; 2.Cálculo de Hoare e especificação formal de comandos; 3.Prova da correcção de comandos. Metodologia de Dijkstra.

II Especificação e implementação de tipos de dados abstratos (TDA)
1.Especificação equacional de TDA; 2.Exemplos de especificação de TDA; 3.Desenvolvimento de comandos abstratos; 4.Implementações estáticas e dinâmicas de TDA; 5.Utilização de TDA no âmbito da programação em larga escala.

III Estudo de algumas formas de organização dos dados particularmente úteis e respectivos algoritmos associados (versões iterativas e recursivas)
1.Árvores, árvores n-áreas, arvores binárias, árvores de pesquisa, árvores de pesquisa equilibradas, árvores de Bayer; 2.Grafos; 3.Organização dos dados por dispersão; 4.Algoritmos de ordenação (elementares e avançados); 5.Técnicas de avaliação de algoritmos e introdução à problemática da complexidade.
Processo de avaliação I Avaliação periódica: 10 mini avaliações semanais online (10%) e duas frequências (90 %). Na avaliação periódica é obrigatório efetuar no mínimo 7 mini avaliações online. A presença nas aulas não é obrigatória.

ou

II Exame final.
Processo de ensino-aprendizagem Aulas teorico-práticas
Observações Nenhum
Bibliografia básica F. Santos, Algoritmos e Estruturas de Dados - Folhas de Apoio, ISCTE-IUL, 2013.

F. Santos, Algoritmos e Estruturas de Dados - Exercícios, ISCTE-IUL, 2010.

M. Weiss, Data Structures and Algorithm Analysis in Java (3ª edição), Addison-Wesley, 2011.
Bibliografia complementar R. Sedgewick, Algorithms in Java - Parts 1-4: Fundamentals, Data Structures, Sorting, Searching (3ª edição), Addison-Wesley, 2003.

R. Sedgewick, Algorithms in Java - Parts 5: Graph Algorithms (3ª edição), Addison-Wesley, 2004.

D. Harel, Algorithmics: the Spirit of Computing (3ªedição), Addison-Wesley, 2004.

P. Helman, R. Veroff e F. Carrano, Intermediate Problem Solving and Data Structures - Walls and Mirrors (2ªedição), Benjamin/Cummings, 1991.

S. Base e A. Gelder, Computer Algorithms: Introduction to Design and Analysis (2ª edição), Addison-Wesley, 2000. Pearson, 2002.

N. Wirth, Algorithms & data Structures, Prentice-Hall, 1986.

A. Hamilton, Logic for Mathematicians, Cambridge University Press, 1988.