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

- Cay Horstmann, Java Concepts, 4ª Edição (ou seguintes), Wiley, 2005, ISBN-­10: 0471697044.
- F. Mário Martins, Java 5 e Programação por Objetos, FCA, 2006, ISBN 978-972-722­548­4.

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

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 2018/19 de POO B tem 2 componentes na avaliação: - 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. NT2 está sujeito a nota mínima de 9.5 para obtenção de aprovação à disciplina. - 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. NP é atribuída a cada aluno individualmente.
NT é obtida pela sua média ponderada de NT1 e NT2 da seguinte forma: NT = ( 0,30 * NT1 + 0,35 * NT2 ) / 0.65
A nota final - NF - é determinada pela seguinte fórmula: NF = 0,30 * NT1 + 0,35 * NT2 + 0,35 * NP.
Prevê-se que a edição 2019/20 tenha critérios semelhantes.

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: