Programação Avançada
-
Conhecimentos de Base Recomendados
O aluno deverá dominar o paradigma de programação orientada por objectos
O aluno deverá dominar os aspetos basicos do paradigma de programação em JAVA
O aluno deverá dominar os principios basicos de algoritmia
O aluno deverá dominar o conceito de TAD, e conhecer a implementação de coleções do tipo linear (List,Stack, Queue) -
Objetivos
Desenvolver no aluno competencias avançadas de programação orientada a objectos, mais especificamente:
- Especificação e Manipulação de Tipos Abstratos de Dados de coleções não lineares
- Identificação, seleção e implementação de Padrões de Software
- Aplicação de Tecnicas de Refatoring
Ao fim da UC o aluno deve ser capaz de:
1- implementar Tipos Abstratos de Dados (TADs) não lineares: Arvores e Grafos
2 - utilizar Tipos Abstratos de Dados (TADs) não lineares: Arvores e Grafos, na resolução de problemas concretos.
3 - reconhecer a existência de Padrões de Software, no desenho das aplicações
4 - selecionar o Padrão de Software mais adequado a um determinado problema.
5 - implementar em JAVA os Padrões de Software, partindo da sua especificação.
6 - identificar “Bad smells “ no código.
7 - aplicar de técnicas de Refactoring, para melhoria da estrutura interna do código.
8 - utilizar a API JUnit para construção de testes unitários.
9 - aplicar e utilizar os TADs, os Padrões de Software e as tecnicas de refatoring para construir aplicações de software robustas e escaláveis em JAVA -
Métodos de Ensino
Aulas TP: As aulas TP recorrem à resolução de situações problemáticas com recurso a meios computacionais, com vista à introdução das diferentes tecnicas de programação avançada que compõe o conteudo programatico da uc.
Aulas de Laboratório: resolução de exercícios de uma forma mais autonoma, num ambiente de desenvolvimento.
Elaboração de um trabalho prático o longo do semestre, integrador das várias tecnicas lecionadas. -
Estágio(s)
Não
-
Programa
1 – Tipos Abstractos de Dados (TADs)
1.1 Introdução a implementação de TADs em JAVA1.2 Arvores : Estrutura de dados do tipo Arvore e TAD Tree1.3 Grafos: TAD Graph
2 – Padrões de Software2.1 Padroes de Desenho2.3 Padrões de Arquitetura
3 - Refactoring3.1 "Bad Smells"3.2 Técnicas de "Refactoring" -
Demonstração de conteúdos
-
-
Demonstração da metodologia
-
-
Docente(s) responsável(eis)
Patrícia Alexandra Pires Macedo - 1.º Semestre
-
Bibliografia
António Adrego; Estruturas de Dados e Algoritmos em Java,, FCA, 2011. ISBN: 978-972-722-704-4
Michael T. Goodrich, Roberto Tamassia;; Data Structure and Algorithms in Java, John Wiley & Sons, 2001. ISBN: 0-471-38367-8 (Alternativa ao livro em Portugues)
Eric Freeman ,Elisabeth Robson, Bert Bates, Kathy Sierra; Head First Design Patterns, OREILLY, 2004. ISBN: ISBN 9780596007126
Martin Fowler; Refactoring: Improving the Design of Existing Code, 2002. ISBN: 978-0201485677
Detalhes do curso
-
Código
INF32157-S-0-6
-
Modo de Ensino
PRESENCIAL
-
ECTS
6.0
-
Duração
Semestral
-
Horas
30h Práticas e Laboratórios
45h Teórico-Práticas
