Programação Orientada pelos Objetos B

Objectivos

Saber:

  • Dominar os conceitos fundamentais de programação orientada ao objecto, 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)
  • Tirar partido de bibliotecas de classes disponíveis (e.g., classes colecção).
  • Compreender os mecanismos essenciais de programação genérica.

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.
  • 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.

Caracterização geral

Código

11141

Créditos

6.0

Professor responsável

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

Horas

Semanais - 5

Totais - A disponibilizar brevemente

Idioma de ensino

Português

Pré-requisitos

É desejável que o aluno já tenha frequentado com sucesso uma disciplina introdutória da programação.

Bibliografia

- Phillips, Dusty. Python 3 object-oriented programming: build robust and maintainable software with object-oriented design patterns in Python 3.8. Packt Publishing Ltd, 2018.

- Diapositivos de Programação Orientada pelos Objetos B (serão disponibilizados gradualmente na página Moodle da disciplina).

NOTA IMPORTANTE: a leitura dos diapositivos não substitui a prática de programação no computador, que é ESSENCIAL para sucesso nesta disciplina.

Método de ensino

Todos os conhecimentos teóricos são facultados nas aulas teóricas e complementados com exercícios sugeridos nas aulas práticas. A cabal realização desses exercícios pode requerer tempo de treino fora das aulas. O primeiro teste escrito (de dois) destina-se a avaliar os conhecimentos das regras da linguagem de programação que serve de suporte às aulas e ao trabalho prático. O trabalho prático destina-se a por em prática os conhecimentos ministrados sobre a linguagem de programação e sobre o paradigma da programação orientada ao objecto; bem como adquirir a experiência prática de programação que sedimenta os conhecimentos teóricos. O segundo teste escrito (de dois) destina-se a avaliar os conhecimentos adquiridos na disciplina, com foco no paradigma da programação orientada ao objecto ou na linguagem de programação enquanto veículo para materializar esses conhecimentos.

Método de avaliação

A edição 2020/21 de POO B tem 2 componentes na avaliação:
1) 2 testes escritos, individuais e sem consulta, aos quais corresponde as notas NT1 e NT2 respectivamente. A componente da nota relativa aos testes - NT - corresponde a 65% da nota final.
2) Avaliação prática, aos quais corresponde uma nota prática - NP -  que corresponde a 35% da nota final e é a componente da nota relativa a um trabalho prático, a realizar em grupos de dois alunos durante o semestre. A NP é atribuída a cada aluno individualmente. A NP de dois elementos de um grupo poderá ser diferente, caso uma defesa do trabalho leve a esse resultado.

NT é obtida pela sua média ponderada de NT1 e NT2 da seguinte forma:
NT = ( 0.25 * NT1  +  0.40 * NT2 ) / 0.65

A nota final - NF - é determinada pela seguinte fórmula:
NF = 0.25 * NT1  +  0.40 * NT2 + 0.35 * NP

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) um aluno entregou um trabalho que não realizou; ou
 (3) a distribuição das tarefas pelos membros do grupo mostra ter um desequilíbrio significativo, 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 igual ou superior a 9.5 na NP.
O aluno sem frequência não obtém aprovação à disciplina e é excluído do exame de recurso.

Aprovação na época normal
O aluno com frequência obtém aprovação à disciplina, se as notas NF e NT2 (calculadas na escala 0-20) forem superiores ou iguais a 9.5.

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

Frequência anterior:
Os alunos que tenham obtido frequência na edição anterior da cadeira 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 prescindem da frequência anterior. Nesse caso, aplicam-se as regras de avaliação definidas para alunos sem frequência.
Em cumprimento do Regulamento de Avaliação de conhecimentos da FCT NOVA versão 31.07.2020, será aproveitada 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 acima mencionada se compareceram aos 2 testes e se NF >= 9.5
2) NF = (NE * 0.65 + NT * 0.35) se compareceram ao exame de recurso, se NE >= 9.5 e se NF >= 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 NT. 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.

No caso de no exame 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.

Em conformidade com o Regulamento de Avaliação de conhecimentos da FCT NOVA versão 31.07.2020 (Nº3 do Artº 8), a classificação da componente de Avaliação prática, seja obtida no próprio ano, seja obtida no ano anterior, contribui de igual forma para a nova classificação final em caso de melhoria efetiva – com peso 35% para cálculo da NF.

As classificações relativas a testes e demais elementos de avaliação são expressas num escala de 0 a 20. Arrendondamentos para valores inteiros são feitos apenas aquando do cálculo da NF.

Conteúdo

Concepção de programas estruturados em classes.
Especificação de interfaces e respectiva documentação.

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.
Processamento de ficheiros de entrada/saída.

Cursos

Cursos onde a unidade curricular é leccionada: