Programação Orientada por Objetos
Áreas Científicas |
Classificação |
Área Científica |
OFICIAL |
Informática |
Ocorrência: 2023/2024 - 2S
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 |
158 |
Plano de Estudos |
1 |
- |
6 |
75 |
162 |
Docência - Responsabilidades
Língua de trabalho
Português
Objetivos
Compreender e aplicar os conceitos avançados da programação orientada por objetos com base na linguagem Java.
Aplicar os conceitos avançados da programação orientada por objetos usando a linguagem Java.
Saber desenhar soluções aplicacionais de acordo com o paradigma orientado por objetos.
Resultados de aprendizagem e competências
No final da unidade curricular, o aluno deverá saber como analisar um problema, modelar uma solução usando técnicas simples, escrever testes unitários da solução proposta e implementar a solução. Esta solução deve integrar conceitos avançados de programação orientada a objetos e diferenets coleções do Java.
Modo de trabalho
Presencial
Pré-requisitos (conhecimentos prévios) e co-requisitos (conhecimentos simultâneos)
Conhecimentos básicos de programação e, em particular de programação orientada por objetos. É necessário conhecer neste último tópico os seguintes conceitos: classes, objetos, atributos, métodos, composição de classes e coleções básicas
Programa
Conceitos Avançados da Programação Orientada por Objetos- Revisão dos conceitos básicos de POO.
- Herança de classes. Hierarquia de classes e construtores em herança. Redefinição de métodos.
- Bibliotecas hierárquicas de classes e classes base fundamentais.
- Principio da substituição e polimorfismo. Ligação de métodos estática e dinâmica (static e dynamic binding)
- Classes abstractas. Métodos abstratos.
- Interfaces. Hierarquia de interfaces.
- Desenho de aplicações.
- Genéricos e conceitos complementares de coleções.
- Tratamento de erros e exceções.
- Entrada e saída de dados. Serialização.
- Gestão de versões.
- Desenvolvimento baseado em testes.
Aplicação dos conceitos avançados da Programação Orientada por Objetos- Introdução aos padrões de desenho.
- Introdução à utilização de interfaces gráficas utilizando JavaFX.
- Programação por eventos. Propriedades
- Controlos básicos e avançados.
- Janelas e formas
- Efeitos e animações
Bibliografia Obrigatória
David Barnes & Michael Kölling; Objects First with Java (6th Edition), Pearson Education Limited, 2016. ISBN: 9781292159089
F. Mário Martins; JAVA 8 - POO + Construções Funcionais, FCA, 2017. ISBN: 978-972-722-838-6
Bibliografia Complementar
Carl DeaGerrit GrunwaldJosé PeredaSean PhillipsMark Heckler; JavaFX 9 by Example, APress, 2019. ISBN: 978-1-4842-1961-4
https://openjfx.io/openjfx-docs/; Getting Started with JavaFX
Métodos de ensino e atividades de aprendizagem
Aulas teórico-práticas
- As aulas TP são lecionadas de forma presencial. Serão também disponibilizados os slides, o código dos exemplos usados nas várias sessões e a resolução dos exercícios.
- Durante o período das aulas o docente estará disponível para responder a dúvidas.
- Mês a mês, serão disponibilizados testes de moodle sobre a matéria lecionada nessa semana para que os alunos possam fazer avaliações formativas.
Aulas de laboratório (com resolução em computador de pequenos programas)
- Semanalmente serão disponibilizados os enunciados dos laboratórios que os alunos deverão resolver usando as aplicações apropriadas e que estão descritas na ficha de UC.
- Os trabalhos de laboratório são efetuados em grupos de dois alunos, podendo, em situações justificadas, ser realizados individualmente.
- Todos os trabalhos realizados devem ser submetidos na plataforma Github Classroom durante a aula, através do link disponibilizado para este efeito.
- Durante o período das aulas o docente estará disponível para responder a dúvidas e dar apoio à resolução do laboratório.
Projetos
- Serão realizados dois projetos. O acompanhamento será feito durante alguns laboratórios e remotamente pelo professor do laboratório.
Software
IntelliJ Community Edition
BlueJ
GitHub Desktop
Palavras Chave
Ciências Físicas > Ciência de computadores > Programação
Ciências Tecnológicas > Tecnologia > Tecnologia de computadores > Tecnologia de software
Tipo de avaliação
Avaliação distribuída com exame final
Componentes de Avaliação
Designação |
Peso (%) |
Apresentação/discussão de um trabalho científico |
40,00 |
Teste |
50,00 |
Trabalho laboratorial |
10,00 |
Total: |
100,00 |
Componentes de Ocupação
Designação |
Tempo (Horas) |
Elaboração de projeto |
50,00 |
Estudo autónomo |
43,00 |
Frequência das aulas |
75,00 |
Total: |
168,00 |
Obtenção de frequência
A avaliação é constituída por duas componentes:Prática e Teórica
Componentes da avaliação Prática:
- Um projeto de programação em Java, entregue em duas fases (min.7,5 valores em cada projeto, 9,5 valores de média das duas fases)
- Trabalhos de Laboratório (previstos 11 avaliados, conclusão de pelo 9 laboratórios para ser considerado para a nota)
Componentes da avaliação Teórica:
- 3 mini testes nas aulas Teóricos (min.7 valores em cada um, mín. de 9,5 valores de média dos três mini testes)
- 1 Teste teórico (min.9,5valores)
- Exame (min.9,5valores) apenas em época de primeira chamada e época de recurso
Fórmula de cálculo da classificação final
Época Normal (com possibilidade de incorporar componente de avaliação contínua)
Componente Prática:
- 80% * (70% Projeto1 + 30% Projeto2) + 20% laboratórios;
- Se não houver 9 laboratórios concluídos: 70% Projeto1 + 30% Projeto2.
Componente Teórica:
- Por Testes: Melhor das seguintes possibilidades:
- 30% Média dos 3minitestes + 70% nota do teste.
- Senão houver 3 minitestes: 100 % nota do teste.
- Por Exame: Nota do Exame.
Nota final: 50% Prática + 50% Teórica
Época de Recurso e Especial (sem possibilidade de incorporar componente de avaliação contínua):
Em caso de aproveitamento, na Época Normal, de uma das Componentes, Prática ou Teórica, a mesma será reaproveitada.
Componente Prática (senão houve aproveitamento desta componente na Época Normal),os dois projetos devem ser entregues na Época Recurso/Trabalhador-Estudante.
Componente Teórica (se não houve aproveitamento desta componente na Época Normal, o exame deve ser realizado na Época Recurso/Trabalhador-Estudante). Os laboratórios e mini testes não são considerados nestas épocas de avaliação.
Nota final: 50% Prática + 50% Teórica
Melhoria de classificação
Melhorias de nota obrigam a inscrição e respetivo pagamento na Divisão Académica. Não serão realizadas melhoria dos testes no Exame da 1a Chamada. Só se pode melhoriar a componente téorica.
Não existe frequência entre dois anos letivos consecutivos