How to find us

Object Oriented Programming 2017/2018

  • 7 ECTS
  • Taught in Portuguese
  • Continuous Assessment


Once this course is finished, the student ought to be able to create simple object oriented applications using the Java programming language. The student shall also have the knowledge to critically evaluate object oriented applications of greater size or complexity.

Recommended Prerequisites

Knowledge acquired in the curricular unit:
Algoritmia e Programação, namely logical conditions, cycles and arrays
Matemática Discreta: logic, boolean expressions, set theory
Álgebra Linear: logic reasoning for demonstrations and matricial operations

Teaching Metodology

Exposition, demonstrations, experimental. Concepts are explained in theory, with students interpellation, canonical examples are demonstrated, students experiment by applying concepts to practical problems.Peer evaluation will also be used to solve practical problems.

Body of Work

- Binary language, compilation, virtual machine;
- Primitive types, domain, precision, conversion;
- Values and references;
- Control structures;
- Arrays;
- Basic structure of a Java program.
- Object oriented program paradigm;
- The concept of class
- Classes and objects;
- Classes definition.
- Constructors, methods, parameters;
- Encapsulation;
- Composition, overloading;
- Object collections, iterators;
- Quality in classes design: Coupling and cohesion, responsability, refactoring.
- Static and dynamic types;
- Casting;
- Polymorphism;
- Overriding;
- Access qualifiers.
Abstraction and Modules
- Packages and import;
- Object diagram, class diagram;
- Abstract classes and interfaces;
- Wrapper classes;
- Singleton and registry patterns.
Code Quality
- Testing and error detection;
- Error handling;
- Code comments - javadoc
- Separ

Recommended Bibliography

F. Mário Martins, Java 8: POO + Construções Funcionais, 2017, ISBN 978-972-722-8386, FCA
David J. Barnes & Michael Kölling, Objects First with Java, Sixth Edition, Prentice Hall / Pearson Education, 2017, ISBN 13-978-1-292-15904-1.
The Java Tutorials,
Deitel & Deitel, Java: How to program,

Complementary Bibliography

David J. Eck, Introduction to Programming Using Java,, Version 7.0, 2014
F. Mário Martins, Projetos de POO em Java, 2014, ISBN 978-972-722-792-1

Weekly Planning

Week Content
1 Introduction. Fundamental concepts
2 Fundamentals Classes and objects, attributes, constructor, methods, parameters, return
3 Interaction Variable scope, overloading, coupling and cohesion, responsability. String, methods, primitive and references
4 Collections Variable size object collections, ArrayList, NULL
5 " anonymous objects, fixed size collections, refactoring
5 " Hashmap, static and final, iterators, Random, libraries, Javadoc
7 Inheritance Inheritance, superclass, subclass
8 Abstraction Hierarchy, casting, polymorphism, access qualifiers, overriding
9 " Abstract classes, abstract methods
10 Quality Testing, detection and error handling
11 Interfaces Syntax, differences
12 " Interfaces, try catch
13 Quality ArrayList inheritance, final classes and methods, wrapper classes, patterns

Demonstration of the syllabus coherence with the curricular unit's objectives

Fundamentals establish a common ground for students, regardless of their previous academic path. The Java programming language is presented as equivalent to previously known structured languages. In the classes chapter, the students are presented with the concept of a computer program which relies on the class (or its manifestation: the object) as its atomic unit. It’s also shown how this programming paradigm is ingrained into the Java language explaining also the concept of OOP. In the Inheritance and Abstraction and Modularity chapters, the student learns how to create a computer program from a conceptual drawing; how this phase can influence the final product. In the last chapter, students are shown some of the functionality the Java framekwork provides for graphical interfaces and how they can separate the logic and interface layers of a program.

Demonstration of the teaching methodologies coherence with the curricular unit's objectives

The methologies chosen encompass the technological possibilities students have to apply an object oriented programming whilst making use of the artistic freedom provided by the Java framework. Canonical examples serve to propose quick problems the student can assimilate and understand the workflow. By experimenting, students will be allowed to roam free in their solutions while still focusing on each problem’s end goal. In these sessions, students will need to think not only of how might can achieve their goal but also test their ideas against the ideas of their peers. These potentially contradictory views will breed an optimal solution.

relevant generic skillimproved?assessed?
Achieving practical application of theoretical knowledgeYesYes
Adapting to new situationsYes 
Analytical and synthetic skills  
Commitment to effectivenessYesYes
Commitment to qualityYesYes
Ethical and responsible behaviour Yes
Event organization, planning and management  
Foreign language proficiencyYes 
Information and learning management  
Initiative and entrepreneurship capability  
IT and technology proficiencyYesYes
Problem Analysis and AssessmentYes 
Research skillsYesYes
Written and verbal communications skills  
This website uses cookies to provide better functionality and for performance measurements (European Union Directive 2009/136/EC)