Programação Avançada
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Informática |
Ocorrência: 2022/2023 - 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 |
176 |
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 |
50,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 |
Total: |
145,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, um video e 5 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:1. A aprovação da componente Prática Laboratorial é um requisito para ser aprovado na disciplina.
2. 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.
Fórmula de cálculo da classificação final
Nota final = 50% I+ 50% G
Continua
-
I = 0,20 Quiz(s) (Q) + 0,25 Miniteste (MT) + 0,55 Teste (T)
-
G = 0,15 Labs avaliados (L) + 0,7 Projeto (P) + 0,15* Video (V)
Exame
- I = 100% Exame
- G = 100% Projeto
Regra 1 - Cada uma das componentes (I e G) tem a nota mínima de 9.5 valores
Regra 2 - Na avaliação contínua a nota do teste tem uma nota mínima de 7.5 valores
Regra 3 - Cada Quiz é classificado com 0 ou 20. 20 valores. A nota da componente Quiz é a média aritmetica dos 5 Quiz.
Regra 4 - A nota dos Lab é a média aritmetica de 4 Labs avaliados. As notas de Lab só serão válidas se o aluno não tiver faltado as aulas de laboratório tutoriais (só são permitidas duas faltas)
Regra 5 - Os trabalhos de laboratório , o Projeto e o video são trabalhos realizados em grupo.
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 de laboratório. Desta forma a componente de trabaho em Grupo será calculada com a seguinte formula:
G = 0,85 Projeto + 0,15*Video
Observações
Conteudos e inscrições para provas disponibilizados na plataforma moodle:
aqui