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” (tipo de “Blended learning”), 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.4. Hierarquia de Classes e Herança
3.5. Classes abstratas e Polimorfismo
3.6. Interfaces
3.7. Coleções
3.8. Gestão de erros e exceções
3.9. 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

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 (2023), “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