Object Oriented Programming (2017/2018) - Departamento de Informática
Description

This course develops the study of the mainconcepts of object oriented programming, for students that already had an introduction to the design and use of classes. It introduces some topics of object-oriented design, as represented by popular diagrammatic representations of the static structure of a program. It gives an emphasis on the concept of interface, inheritance and parametric polymorphism. It is based on problem solving throughreuse ofclass libraries, mainly those that supportcollections ofobjects. The building of graphical user interfaces and exception handling is also covered. It develops the study ofalgorithmsand introduces the topic of designing with efficiency in mind, through the selection of the appropriate collections. It introduces some preliminary issues on software engineering topics such as regression testing, code generation from models, refactoring and API documentation.

Objectives

Knowledge:

Application:

Soft­-Skills:

Syllabus

1. Interface specification and documentation
2. Software design with classes
3. Interface polymorphism
4. Class inheritance
5. Inheritance polymorphism
6. Assertions
7. Unit and regression testing
8. Exception handling
9. Generic programming
10. Usage of collection generic types

Bibliography

1. Cay Horstmann, Java Concepts: for Java 7 and 8, Sixth Edition, Wiley, 2010.

2. F. Mário Martins, Java 8 - POO + Construções Funcionais, FCA, 2017.

3. Slides de Programação Orientada pelos Objectos (disponibilizados gradualmente na página moodle)

4. David J. Eck, Introduction to Programming Using Java, Seventh edition, 2016.

Student work
  Hours per credit 28
  Hours per week Weeks Hours
Aulas práticas e laboratoriais   26.0
Aulas teóricas   42.0
Avaliação   5.0
Self study   50.0
Project   130.0
Total hours 253
ECTS 9.0