Programação Orientada pelos Objetos

Objetivos

Saber:

  • Conceitos fundamentais de Programação Orientada pelos Objetos (POO), como o de classe, interface, polimorfia e herança.
  • Técnicas e algoritmos para o processamento de listas, cadeias de carateres, vetores, dicionários e conjuntos, etc.
  • Programação genérica.
  • Bibliotecas de classes e sua utilização.
  • Conceitos básicos de Engenharia de Software na perspetiva de um programador, como a qualidade, reutilização, custos e manutenção, ou eficiência de implementações.

Saber fazer:

  • Projetar e Desenvolver aplicações com POO.
  • Resolver problemas com POO.
  • Usar abordagens de verificação e validação.
  • Realizar de forma progressivamente mais autónoma, individualmente e em grupo, projetos de desenvolvimento de software.

Competências Complementares:

  • Gosto pela programação e pela resolução de problemas.

Caracterização geral

Código

11153

Créditos

9.0

Professor responsável

Carla Maria Gonçalves Ferreira

Horas

Semanais - 5

Totais - 60

Idioma de ensino

Português

Pré-requisitos

A disponibilizar brevemente

Bibliografia

1. Cay Horstmann, Java Concepts: for Java 7 and 8, Sixth Edition, Wiley, 2010.

2. F. Mário Martins, Java 8 - POO + Construções Funcionais, FCA, 2017.

3. Slides de Programação Orientada pelos Objectos (disponibilizados gradualmente na página moodle)

4. David J. Eck, Introduction to Programming Using Java, Seventh edition, 2016.

Método de ensino

As aulas teóricas consistem na exposição de matéria, ilustrada com exemplos de aplicação, e suportada por diapositivos e pela utilização do ambiente de desenvolvimento no computador do docente.
Nas aulas de laboratório, os alunos resolvem exercícios que constituem exemplos concretos de aplicação dos conceitos dados nas anteriores aulas teóricas.
Os alunos podem esclarecer dúvidas durante as aulas ou nos horários de atendimento.

Método de avaliação

Componentes da avaliação: 
Existem dois componentes na avaliação: a componente da nota relativa aos testes (NT); e a componente da nota relativa aos trabalhos práticos e participação do aluno nas aulas (NP). A nota final (NF) é calculada pela fórmula:

NF = NT + NP 

Todos os alunos com frequência obtida no lectivo corrente podem ser chamados a uma discussão do projecto.

Componente Prática:
Esta componente de avaliação é constituída por 2 trabalhos práticos laboratoriais a realizar em grupos de 2 alunos durante o semestre, e pela participação dos alunos nas aulas. A nota da componente prática  é calculada do seguinte modo:

NP = 0,05*NA + 0,10*NP1 + 0,25*NP2

em que:

- NA é a nota de participação do aluno nas aulas;
- NP1 é a nota do trabalho prático 1;
- NP2 é a nota do trabalho prático 2;

Testes:
Esta componente de avaliação é constituída por 2 testes sem consulta, escritos e individuais. A nota desta componente é calculada do seguinte modo:

NT = 0,20 * NT1 + 0,40 * NT2

em que:

- NT1 é a nota do teste 1;
- NT2 é a nota do teste 2.

Exame Final:
NE é a nota obtida em exame final.

Trabalhos práticos:
A entrega dos trabalhos práticos é obrigatória.
O trabalho prático é realizado em grupos de dois alunos, durante parte de algumas aulas e fora das aulas. Se se detectar:
- que um trabalho não foi realizado apenas pelos alunos que o entregaram; ou
- que um aluno entregou um trabalho que não realizou; ou
- que a distribuição das tarefas pelos membros do grupo não foi equilibrada, esse trabalho é anulado e, nesse caso, nenhum dos elementos do(s) grupo(s) obtém aprovação na disciplina.

Nota final:
O aluno com frequência obtém aprovação se ambas as notas NF e NT forem superiores ou iguais a 9.5. 

Frequência:
Obtém frequência à disciplina o aluno que tenha uma nota superior ou igual a 9.5 na média ponderada dos trabalhos práticos (ver pesos relativos definidos acima).
O aluno sem frequência é excluído do exame de recurso nesse ano lectivo.
A regra acima para a obtenção de frequência aplica-se a todos os alunos, repetentes e de 1ª inscrição, excepto alunos que obtiveram frequência na edição de 2018/2019.

Frequências do ano lectivo anterior 2018/2019: Os alunos que tenham obtido frequência na edição de 2018/2019 mantêm-na no presente ano. Caso entreguem algum trabalho em 2019/2020, perdem a frequência automática. Nesse caso, terão que fazer todos os trabalhos práticos. Para alunos com frequência obtida em 2018/2019, a nota final considera apenas a componente teórica e é calculada pela seguinte fórmula:

NF = 0.35*NT1 + 0.65*NT2

Melhoria de nota:
As melhorias de nota apenas se realizam por exame, sendo a nota final igual à nota do exame.

Observação: 
As classificações relativas a testes, trabalhos práticos e demais componentes de avaliação parcial são arredondadas às décimas.

Conteúdo

1. Especificação de interfaces e respetiva documentação
2. Conceção de programas estruturados em classes
3. Polimorfia de interfaces
4. Herança de classes
5. Polimorfia de herança
6. Asserções
7. Testes
8. Tratamento de excepções
9. Programação genérica
10. Utilização de tipos genéricos e colecções

Cursos

Cursos onde a unidade curricular é leccionada: