Programação Avançada
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Informática |
Ocorrência: 2023/2024 - 1S
Ciclos de Estudo/Cursos
Sigla |
Nº de Estudantes |
Plano de Estudos |
Anos Curriculares |
Créditos UCN |
Créditos ECTS |
Horas de Contacto |
Horas Totais |
INF |
186 |
Plano de Estudos |
2 |
- |
6 |
75 |
162 |
Docência - Responsabilidades
Língua de trabalho
Português
Obs.: Nenhumas
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
Resultados de aprendizagem e competências
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
Modo de trabalho
Presencial
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
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)
Programa
1 – Tipos Abstractos de Dados (TADs)
1.1 Introdução a implementação de TADs em JAVA
1.2 Arvores : Estrutura de dados do tipo Arvore e TAD Tree
1.3 Grafos: TAD Graph
2 – Padrões de Software
2.1 Padroes de Desenho
2.3 Padrões de Arquitetura
3 - Refactoring
3.1 "Bad Smells"
3.2 Técnicas de "Refactoring"
Bibliografia Obrigatória
António Adrego; Estruturas de Dados e Algoritmos em Java,, FCA, 2011. ISBN: 978-972-722-704-4
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
Bibliografia Complementar
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)
Métodos de ensino e atividades de aprendizagem
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.
Software
JDK 8.0
IntelliJ (IDE)
Tipo de avaliação
Avaliação distribuída sem exame final
Componentes de Avaliação
Designação |
Peso (%) |
Teste |
50,00 |
Trabalho laboratorial |
40,00 |
Apresentação/discussão de um trabalho científico |
10,00 |
Total: |
100,00 |
Componentes de Ocupação
Designação |
Tempo (Horas) |
Elaboração de projeto |
35,00 |
Estudo autónomo |
35,00 |
Frequência das aulas |
75,00 |
Trabalho de investigação |
10,00 |
Total: |
155,00 |
Obtenção de frequência
O aluno poderá optar por uma avaliação contínua ou por exame. Em ambos os casos terá que realizar um trabalho prático que será defendido em discusão oral.
1. Caso pretenda ser avaliado por exame, prestará ainda prova em época normal ou em época de recurso, e para obter aprovação terá que ter uma classificação igual ou superior a 9,5 val em qualquer uma das provas.
2. Caso opte pela avaliação contínua (alem do trabalho prático) o aluno fará 1 mini-teste , 4 laboratórios avaliados (presenciais) , um teste, uma apresentação oral e 10 quiz de avaliação formativa. Se não obtiver aprovação no regime contínuo o aluno terá que realizar o exame de época normal ou de recurso.
NOTAS IMPORTANTES:
- Independentemente do aluno optar pela avaliação por exame ou por avaliação contínua, é ABSOLUTAMENTE OBRIGATÓRIA a inscrição prévia nas provas de avaliação DENTRO DOS PRAZOS ESTABELECIDOS. As inscrições efetuam-se através da plataforma moodle.
- Aos alunos que não se encontrarem inscritos dentro dos prazos previamente estabelecidos será vedado o acesso à respetiva prova.
- Para aceder à avaliação continua é preciso ter frequentado 17 aulas de TP e 10 de Lab.
Fórmula de cálculo da classificação final
Avaliação Continua
|
Valores |
Nota Minima |
Quizs (10 x 0.15) |
1.5 |
|
Teste |
6.5 |
2.5 |
MiniTeste |
2 |
0.75 |
TrabalhoTeórico |
2 |
|
Labs (5 x 0.5) |
2.5 |
|
Projeto Laboratorial |
5.5 |
2.5 |
Total |
20 |
|
* A nota do Teste ou do MT pode ser recuperada na 1ª data de Exame
* O projeto Laboratorial pode ser recuperado na época de exame, realizando um projeto distinto
Avaliação Exame (média aritmética das duas componentes)
- Projeto Laboratorial (nota minima 9.5)
- Exame (nota Minima 9.5)
Provas e trabalhos especiais
Avaliação especial (TE, DA, ...)
Os estudantes que se encontrem abrangidos pelo regime de TE, não tem obrigatoriedade de assitir às aulas.
Observações
Conteudos e inscrições para provas disponibilizados na plataforma moodle:
aqui