Programação Orientada aos Objetos
Informação geral
Código: 14306
Área científica predominante: Informática
Regime: Semestral
ECTS: 5
Tipo de ensino: Presencial
Carga Horária
Trabalho autónomo: 80 horas
Aulas:
30 horas - Práticas Laboratoriais
30 horas - Teóricas
Objetivos de ensino
Esta UC possibilita o contacto dos alunos com um novo paradigma de programação e aumenta a capacidade dos alunos de construção de aplicações software mais complexas.
A adopção de um novo paradigma, com a posterior implementação de uma aplicação software complexa, estimula o desenvolvimento das capacidades de abstração o que está de acordo com os objetivos enunciados.
A introdução de competências relativas à execução de testes e a mecanismos de programação genérica reforça as competências adquiridas na UC de programação imperativa.
Resultados de aprendizagem
Os alunos deverão ser capazes de:
- enunciar os conceitos fundamentais da PPO: objectos, classes, herança e polimorfismo;
- analisar a estruturação de um domínio em classes;
- construir hierarquias de classes utilizando as noções de classe abstracta, tipo abstracto de dados e polimorfismo;
- identificar a importância das classes abstractas e herança na concepção de um sistema em programação por objetos;
- utilizar linguagens de programação por objectos para construção de programas de média escala, seguros, robustos e extensíveis;
- conhecer soluções arquitecturais estabelecidas para a concepção de programas modulares e escaláveis.
Programa sucinto
-
Introdução à Programação por Objectos:
1.1. concepção modular de aplicações;
1.2. tipos abstractos de dados; -
Noção de Objecto em POO:
2.1. estado interno, comportamento e mensagens;
2.2. encapsulamento; - Classes, hierarquias de classes e polimorfismo;
- Herança simples, herança múltipla e classes abstractas;
- Testes Unitários e Programação Genérica;
- Concepção e análise de aplicações: padrões arquitecturais.
Bibliografia essencial
- Java 8 POO + Construções Funcionais, F. Mário Martins, Editora FCA, Série Tecnologias de Informação, ISBN-978-972-722-838-6, 2017.
- Object Oriented Design with Applications G. Booch, Third Edition, Addison-Wesley Professional, ISBN 978-020-189-551-3, 2007.
- Objects First with Java - A Practical Introduction using BlueJ, David J. Barnes & Michael Kölling, Sixth Edition, Pearson Education, ISBN 978-1-292-15904-1, 2016.
- Java Program Design- Principles, Polymorphism, and Patterns, Edward Sciore, Apress Media, ISBN 978-1-4842-4142-4, 2019.
- Fundamentals of Java Programming, Mitsunori Ogihara, Springer, ISBN 978-3-319-89490-4, 2018.
Métodos de ensino
A metodologia de ensino considera três componentes. Uma mais expositiva, nas aulas teóricas, onde se procede à apresentação e discussão dos conceitos.
Outra eminentemente prática, nas aulas práticas laboratoriais, em que se pretende praticar os conhecimentos adquiridos, através da realização de mini-projectos.
Finalmente, a realização, em grupo, de uma aplicação software efectuada ao longo do semestre.
Métodos de avaliação
A metodologia de avaliação considera duas componentes.
Uma componente individual, através de um exame escrito final, em que é aferida a compreensão dos conceitos bem como a capacidade de os aplicar.
Uma componente de trabalho em equipa, através de um trabalho prático, com entregas faseadas ao longo do semestre, em que é aferida a capacidade de aplicação da abordagem proposta.
O exame escrito tem um peso na classificação que se situa entre os 50% a 60%, enquanto a componente de trabalho em equipa tem um peso que se situa entre os 40% a 60%.