Objetivos de aprendizagem e a sua compatibilidade com o método de ensino (conhecimentos, aptidões e competências a desenvolver pelos estudantes)
O1. Aplicar os conceitos fundamentais de algoritmia. O2. Conhecer o padrão de projeto MVC. O3. Implementar estruturas de dados e algoritmos recursivos. O4. Implementar tipos de dados abstratos com base em tipos de dados estáticos e dinâmicos. O5. Analisar e criticar a complexidade de um algoritmo. O6. Conhecer e aplicar, de forma crítica, diversos métodos de pesquisa, seleção e ordenação.
Conteúdos programáticos
C1) Algoritmos, pseudocódigo e linguagens de programação. C2) Padrão de desenvolvimento MVC (Model, View, Controller). C3) Recursão: algoritmos e estruturas de dados recursivos; uso e não uso crítico da recursão. C4) Tipos de dados abstratos: listas, árvores, pilhas e filas; implementações estáticas e dinâmicas; implementações recursivas e não recursivas; árvores de decisão. 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.
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. Conhecer os conceitos fundamentais de algoritmia [C1]. O2. Aplicar o padrão de projeto MVC [C2]. O3. Implementar estruturas de dados e algoritmos recursivos [C1, C3]. O4. Implementar tipos de dados abstratos com base em tipos de dados estáticos e dinâmicos C1, C3, C4[]. O5. Analisar e criticar a complexidade de um algoritmo [C3, C5]. O6. Conhecer e aplicar, de forma crítica, diversos métodos de pesquisa, seleção e ordenação [C3, C4, C6].
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
AVALIAÇÃO CONTÍNUA
Instrumentos de avaliação: frequência F1; frequência ou projeto em grupo F2; mini trabalhos P. Nota final = 45% F1 + 45% F2 + 10% P Condições de aprovação: F1 >= 7.0 E F2 >= 7.0 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 do Desempenho Académico dos Estudantes da ESGTS, artº 10º.
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. Aplicar os conceitos fundamentais de algoritmia [M1, M3, M4, M5]. O2. Conhecer o padrão de projeto MVC [M1, M2, M3, M4, M5]. O3. Implementar estruturas de dados e algoritmos recursivos [M1, M2, M3, M4, M5, M6]. O4. Implementar tipos de dados abstratos com base em tipos de dados estáticos e dinâmicos [M1, M2, M3, M4, M5, M6]. O5. Analisar e criticar a complexidade de um algoritmo [M1, M3, M4, M6]. O6. Conhecer e aplicar, de forma crítica, diversos métodos de pesquisa, seleção e ordenação [M1, M2, M3, M4, M5, M6].
O modelo de avaliação contribui para a realização dos objetivos [O] da unidade curricular porquanto afere o conhecimento teórico adquirido pelo aluno e a sua capacidade de o aplicar na resolução de problemas práticos. Para tal, coloca o aluno:
- Em contexto individual, aferindo nomeadamente a retenção e a compreensão dos tópicos programáticos; - Contextos coletivos, aferindo a sua capacidade de apresentar e de discutir diferentes pontos de vista na resolução de problemas
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.