• EN
  • Facebook
  • Instagram
  • Youtube
  • Linkedin
Você está em: Início > Ensino > Unidades Curriculares > LIB10142
Autenticação
ATENÇÃO: Este site utiliza cookies. Ao navegar no site estará a consentir a sua utilização.

Algoritmos e Estrutura de Dados

Código: LIB10142    Sigla: AED
Área Científica: Informática

Ocorrência: 2023/24 - 1S

Área de Ensino: Informática

Cursos

Sigla Nº de Estudantes Plano de Estudos Ano Curricular Créditos Horas Contacto Horas Totais
LIB1 60 Despacho n.º 9236/2020, de 28 de setembro 7 75 175

Horas Efetivamente Lecionadas

LI-2-TA

Teórico-Práticas: 62,50

Docência - Horas Semanais

Teórico-Práticas: 5,00

Tipo Docente Turmas Horas
Teórico-Práticas Totais 1 5,00
Pedro Miguel da Fonseca Marques Ferreira - ESGTS   5,00

Docência - Responsabilidades

Docente Responsabilidade
Pedro Miguel da Fonseca Marques Ferreira - ESGTS Responsável

Objetivos de Aprendizagem (conhecimento, aptidões e competências a desenvolver pelos estudantes)

O1. Aplica os princípios da programação orientada a objetos no desenvolvimento de soluções.
O2. Conhece os conceitos fundamentais do padrão de desenvolvimento MVC.
O3. Implementa estruturas de dados e algoritmos recursivos.
O4. Implementa tipos de dados abstratos com base em tipos de dados estáticos e dinâmicos.
O5. Analisa e crítica a complexidade de um algoritmo.
O6. Conhece e aplica, de forma crítica, diversos métodos de pesquisa, seleção e ordenação.
O7. Usa streams para importar e exportar dados numa aplicação.

Conteúdos programáticos

C1) Breve revisão dos princípios da Programação Orientada a Objetos.
C2) Conceitos fundamentais sobre o padrão de desenvolvimento MVC (Model, View, Controller).
C3) Recursão: conceitos relevantes; algoritmos e estruturas de dados recursivos; quando usar e quando evitar.
C4) Tipos de dados abstractos: listas, árvores, pilhas e filas; implementações estáticas e dinâmicas; implementações recursivas e não recursivas.
C5) Análise da complexidade de algoritmos: notação Big-O simplificada; comportamento dum algoritmo (melhor e pior caso); comparação de algoritmos.
C6) Algoritmos de pesquisa, seleção e ordenação.
C7) Armazenamento e recuperação de dados usando streams.

Demonstração da Coerência dos Conteúdos Programáticos com os Objetivos de Aprendizagem da Unidade Curricular

Os conteúdos programáticos [C] contribuem para a realização dos objetivos [O] da unidade curricular da seguinte forma:

O1. Aplica os princípios da programação orientada a objetos no desenvolvimento de soluções - [C1].
O2. Conhece os conceitos fundamentais do padrão de desenvolvimento MVC - [C2].
O3. Faz uso de estratégias recursivas - [C3, C4, C6]
O4. Implementa tipos de dados abstratos com base em tipos de dados estáticos e dinâmicos - [C3, C4]
O5. Analisa e crítica a complexidade de um algoritmo - [C5, C6]
O6. Conhece e aplica, de forma crítica, diversos métodos de pesquisa, seleção e ordenação - [C3, C5, C6]
O7. Usa streams para importar e exportar dados numa aplicação - [C7]

Metodologia de Ensino (Avaliação incluída)

ENSINO PRESENCIAL

M1. Aulas teóricas/práticas: apresentação de conceitos e experimentação de casos ilustrativos.
M2. Aulas práticas/experimentais: resolução de casos, relacionando os diferentes conteúdos programáticos e promovendo a análise crítica de resultados.
M3. Horas de atendimento: apoio ao estudante de acordo com o horário oficialmente estabelecido.

ESTUDO EM AUTONOMIA

M4. Bibliografia recomendada.
M5. Fichas de exercícios publicadas.
M6. Outros materiais de estudo disponíveis na plataforma MOODLE.

AVALIAÇÃO CONTÍNUA

Instrumentos de avaliação: frequência F1; frequência F2; projectos P.

Nota final = 40% F1 + 40% F2 + P * 20%

Condições de aprovação: F1 >= 7.5 E F2 >= 7.5 E Média(F1,F2) >= 9.5 E P >= 9.5

EXAME

Os exames não incluem prova oral.

INFRACÇÕES ACADÉMICAS
Aplica-se o Regulamento de Avaliação de Conhecimentos e Competências, artº 10º, nº 2.


Demonstração da Coerência das Metodologias de Ensino com os Objetivos de Aprendizagem da Unidade Curricular

As metodologias de ensino [M] contribuem para a realização dos objetivos [O] da unidade curricular da seguinte forma:

O1. Aplica os princípios da programação orientada a objetos no desenvolvimento de soluções - [M1,M3,M6]
O2. Conhece os conceitos fundamentais do padrão de desenvolvimento MVC - [M1,M3,M4,M6]
O3. Faz uso de estratégias recursivas - [M1,M2,M3,M4,M5]
O4. Implementa tipos de dados abstratos com base em tipos de dados estáticos e dinâmicos - [M1,M2,M3,M4,M5]
O5. Analisa e crítica a complexidade de um algoritmo [M1,M3,M4,M5]
O6. Conhece e aplica, de forma crítica, diversos métodos de pesquisa, seleção e ordenação - [M2,M3,M4]
O7. Usa streams para importar e exportar dados numa aplicação - - [M1,M2,M3,M4,M5]

Bibliografia de consulta (existência obrigatória)

Ascencio, A. (2011). Estruturas de Dados. São Paulo: Pearson.

Drozdek, A. (2013). Data Structures and Algorithms in Java (4th Ed.). Cengage Learning Asia.

Horstmann, C. (2015). Java Concepts: Early Objects (8th Ed.). Chichester, England: Wiley.

Oracle, (n.d) The Java Language Specifications, disponível em https://docs.oracle.com/javase/specs/jls/se7/jls7.pdf.

Rocha, A. (2014). Análise da Complexidade de Algoritmos. Lisboa: FCA.

Rocha, A. (2011). Estruturas de Dados e Algoritmos em JAVA. Lisboa: FCA.

Observações

Nada a referir.