Linguagens Orientadas por Objectos

Conhecimentos de Base Recomendados

Algoritmos e Programação I, Algoritmos e Programação II e Análise Matemática I.
Embora não exista precedências definidas, é de todo desejável que o aluno tenha conhecimentos base em várias áreas, nomeadamente em algoritmos e programação, lógica matemática, interpretação de problemas, modelação e representação algorítmica (pelo menos procedimental/estruturada) de soluções de problemas.

Métodos de Ensino

As aulas são lecionadas em regime teórico-prático, com recurso à utilização de computadores e ferramentas digitais. Será utilizada um processo dinâmico de ensino e aprendizagem, fundamentalmente interativo, com suporte a ferramentas digitais e baseado nas metodologias “Scrum” e “Flipped Classroom”, centrados no aluno, disponibilização antecipada dos materiais de ensino, desenvolvimento de atividades e aulas quase integralmente destinadas à aplicação dos conceitos.

Resultados de Aprendizagem

Objetivos:
Estudo dos conceitos e regras fundamentais inerentes ao paradigma orientado por objetos, nomeadamente: classes e instâncias, mensagens e métodos, abstração e encapsulamento, generalização e polimorfismo, tratamento de erros, modularidade e programação genérica.
Serão abordadas técnicas de modelação, análise e desenvolvimento de aplicações seguindo o paradigma de programação orientado por objetos.
Introdução à linguagem de programação Java, como linguagem dominante em termos de orientação por objetos e adequada ao ensino deste paradigma.

Competências a desenvolver:
Capacidade de modelar problemas de acordo com o paradigma da orientação por objetos
Capacidade de desenvolver aplicações em Java seguindo as boas práticas da programação orientada por objetos, nomeadamente, encapsulamento, herança e polimorfismo, e também o tratamento de erros.

Programa

1. A linguagem de programação Java
2. Introdução à Programação Orientada por Objetos
2.1. Paradigma Orientado por Objetos
2.2. Origens e Benefícios da Programação Orientada por Objetos
2.3. Conceitos básicos: Classe, Objeto e Mensagem
2.4. Princípios fundamentais: Abstração, Encapsulamento, Generalização e Polimorfismo
2.5. The Unified Modelling Language (UML): Diagramas de Casos de Uso, de Classes e de Pacotes.
3. A Linguagem de Programação Java e Orientação por Objetos
3.1. Classes e Instâncias
3.2. Encapsulamento
3.3. Hierarquia de Classes e Herança
3.4. Classes abstratas e Polimorfismo
3.5. Interfaces
3.6. Coleções
3.7. Gestão de erros e exceções
3.8. Operações de Input e Output
4. Programação Orientada por Objetos e o Desenvolvimento de Aplicações Inteligentes

Docente(s) responsável(eis)

Estágio(s)

NAO

Bibliografia

Bibliografia Principal:
1. M. T. Somashekara, K. S. Manjunatha, D. S. Guru (2017) “Object Oriented Programming with Java”, PHI Learning
2. Matt Weisfeld (2019) “Object-Oriented Thought Process”, 5th Ed., Addison-Wesley Professional. ISBN: 9780135182130
3. David J. Barnes & Michael Kolling (2016), “Objects First With Java – A Practical Introduction Using BlueJ”, 6th Ed., Prentice Hall, URL: https://www.bluej.org/objects-first/
4. Allen B. Downey, Chris Mayfield (2016), “Think Java: How to Think Like a Computer Scientist”, 6th Ed., Retrieved from http://greenteapress.com/thinkjava/
5. Oracle (1995-2022), “The Java Tutorials, Trail: Learning the Java Language”, Retrieved from http://docs.oracle.com/javase/tutorial/java/index.html
6. Dora Melo (2024), “Apontamentos Teóricos e Práticos de Linguagens Orientadas por Objetos”, Coimbra Business School | ISCAC, Polytechnic of Coimbra
7. Joshua Bloch (2017), “Effective Java”, Addison-Wesley Professional, 3rd Ed.
8. Simon Kendal (2014), “Object-Oriented Programming using Java”, bookboon.com, 1st Ed.
9. Oracle (1995-2022), “The Java Tutorials”, Retrieved from http://docs.oracle.com/javase/tutorial/index.html
10. Oracle (1995-2022), “Packages”, Retrieved from http://docs.oracle.com/javase/tutorial/java/package/index.html