Objetivos de aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, 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]
Metodologias de ensino e de aprendizagem específicas da unidade curricular articuladas com o modelo pedagógico
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 e avaliação 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.