Faculdade de Ciências e Tecnologia

Programação Orientada pelos Objetos B

Código

11141

Unidade Orgânica

Faculdade de Ciências e Tecnologia

Departamento

Departamento de Informática

Créditos

6.0

Professor responsável

Luís Manuel Marques da Costa Caires, Miguel Jorge Tavares Pessoa Monteiro

Horas semanais

5

Língua de ensino

Português

Objectivos

Saber:

  • Dominar os conceitos fundamentais de programação orientada pelos objectos, como o de classe, interface, polimorfia e herança.
  • Conhecer técnicas e algoritmos para o processamento de estruturas de dados tais como listas, cadeias de caracteres, vectores (arrays) e dicionários (hash maps).
  • Compreender os mecanismos essenciais de programação genérica.
  • Tirar partido de bibliotecas de classes disponíveis (e.g., classes colecção).

Fazer:

  • Projectar e desenvolver aplicações seguindo o paradigma de orientação pelos objectos.
  • Resolver problemas, recorrendo ao paradigma estudado.
  • Usar correctamente as abordagens de verificação e validação estudadas na cadeira.
  • Construir GUIs e aplicações baseadas em eventos.
  • Realizar, individualmente e em grupo, projectos de desenvolvimento de software, integrando as várias competências transmitidas, de forma progressivamente mais autónoma.

Soft-Skills:

  • Aprofundar hábitos de disciplina de trabalho e de cumprimento de prazos.
  • Desenvolver a preocupação com o rigor, e com a execução sistemática de planos de trabalho e métodos previamente determinados.
  • Desenvolver competências de organização de trabalho em grupo.
  • Desenvolver o gosto pela programação e pela resolução de problemas de programação.

Conteúdo

Especificação de interfaces e respectiva documentação.
Concepção de programas estruturados em classes.
Polimorfismo de interfaces.
Herança de classes.
Polimorfismo de herança.
Utilização de tipos genéricos e colecções.
Tratamento de excepções e asserções.
Ficheiros de entrada/saída.

Bibliografia

- Cay Horstmann, Java Concepts, 4ª Edição (ou seguintes), Wiley, 2005, ISBN-­10: 0471697044.
- Diapositivos de Programação Orientada pelos Objetos (serão disponibilizados gradualmente na página moodle da cadeira).
- F. Mário Martins, Java 5 e Programação por Objetos, FCA, 2006, ISBN 978-972-722­548­4.

Método de avaliação

Existem duas componentes na avaliação: testes e avaliação prática.

A nota final (NF) é determinada pela fórmula abaixo apresentada, em que:
- NT corresponde a 70% da nota final e é a componente da nota relativa a 2 testes escritos, individuais e sem consulta.
- NP corresponde a 30% da nota final e é a componente da nota relativa a um trabalho prático, a realizar em grupos de dois alunos durante o semestre. NP é atribuída a cada aluno individualmente.

A nota da componente NT é calculada da seguinte forma:
NT = 0,20 * NT1  +  0,50 * NT2
em que NT1 é a nota do teste 1 e NT2 é a nota do teste 2, fazendo com que:
NF = 0,20 * NT1  +  0,50 * NT2 + 0,30 * NP

Aprovação
O aluno com frequência (ver secção "Frequência") obtém aprovação à disciplina se as notas NF, NT2 e NT forem superiores ou iguais a 9.5. Não existe nota mínima para NT1.

Trabalho prático:
É realizado em grupos de dois alunos.
Seguindo o código de ética do Departamento de Informática, informa-se que se detectar que:
 (1) um trabalho não foi realizado apenas pelos alunos que o entregaram; ou
 (2) que um aluno entregou um trabalho que não realizou; ou
 (3) que a distribuição das tarefas pelos membros do grupo não foi minimamente equilibrada, as notas atribuídas aos dois elementos do grupo poderão ser distintas. Em casos extremos, o trabalho poderá anulado e nesse caso, nenhum dos elementos do(s) grupo(s) obtém aprovação na disciplina.

Frequência:
Obtém frequência à disciplina o aluno que tenha uma nota superior ou igual a 9.5 no trabalho prático. O aluno sem frequência é excluído do exame de recurso.

Exame final:
NE é a nota obtida em exame final (i.e., época de recurso), na presente edição da disciplina. Tem o mesmo peso, para o cálculo da nota final (NF), que os 2 testes: 70%.

Frequência anterior:
Os alunos que tenham obtido frequência na edição anterior da cadeira (ou seja, na edição da cadeira de 2015/16) podem mantê-la na presente edição caso o desejem. No entanto, para efeitos de avaliação neste semestre, caso entreguem o trabalho prático laboratorial perdem a frequência anterior. Nesse caso, aplicam-se as regras de avaliação definidas para alunos sem frequência.
Não será aproveitada qualquer nota da edição anterior respeitante à frequência. Os alunos com frequência da edição anterior e que a queiram manter, poderão ter algumas questões adicionais nos testes escritos, para efeitos de atribuição duma nota para o componente NP e com o mesmo peso. Caso não haja questões adicionais nos testes, NF será igual a NT.

Para alunos com frequência da edição anterior , há 2 cenários alternativos: (1) comparecer aos 2 testes para obtenção de NT; ou ir a exame para obter a NE. A nota final é calculada utilizando na fórmula para o cálculo de NF:
NF = NT + NP se compareceram aos 2 testes, NT >= 9.5 (escala 0-20) e NT2 >= 9.5 (escala 0-20), ou NF = NE + NP se compareceram ao exame de recurso e NE >= 9.5.

Melhoria de nota:
Os alunos que tenham obtido aprovação na avaliação contínua deste semestre podem usar o exame para melhorar a NF. Nesse caso, a nota de exame NE substitui a nota NT na fórmula de cálculo de NF. Como requisito de melhoria de nota, estabelece-se que a nota NF resultante da NE seja superior à NF resultante da NT.

As melhorias de nota, para os alunos que obtiveram aprovação numa edição anterior, a nota final será a nota obtida no exame (NF = NE). No caso de haver perguntas especificamente para a parte da NP, para os alunos com frequência anterior, os candidatos a melhoria deverão responder também a essas questões, nos mesmos termos.

As classificações relativas a testes e demais elementos de avaliação são expressas num escala de 0 a 20, arredondadas às centésimas. Os arrendondamentos para valores inteiros são feitos no cálculo da NF.

Cursos