Object Oriented Programming
- Object-Oriented Programming (OOP) concepts, namely classes, interfaces, polymorphism and inheritance.
- Techniques and algorithms for processing data structures such as lists, strings, vectors, dictionaries, and sets.
- Basic mechanisms of generic programming.
- Class libraries and learn how to reuse them.
- Basic Software Engineering concepts, from a developer perspetive, such as software quality, reuse, development and maintenance costs, or implementation efficiency.
- Design and develop software applications using OOP.
- Problem solving with OOP.
- Using verification and validation techniques.
- Increasingly autonomous software development skills, both in solo and as a team member.
- Build up an interest for programming and solving problems.
Carla Maria Gonçalves Ferreira
Weekly - 5
Total - 60
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.
Lectures consist on a theoretical exposition, illustrated by application examples, and supported by slides and the usage of the software development environment of the lecturer.
In the lab sessions, students solve problems by concretely applying the concepts discussed in the previous lectures.
Students may clarify any doubts during classes or in the instructor’s contact hours.
The student obtains approval if the final grade (NF) and the theoretical grade (NT) are greater than or equal to 9.5. The final grade is calculated using the formula:
NF = 0.6*NT + 0.05*NA + 0.10*NTP1 + 0.25*NTP2
- NA is the grade for class participation;
- NTP1 is the grade of the practical work 1;
- NTP2 is the grade of the practical work 2.
1. Interface specification and documentation
2. Software design with classes
3. Interface polymorphism
4. Class inheritance
5. Inheritance polymorphism
7. Unit and regression testing
8. Exception handling
9. Generic programming
10. Usage of collection generic types
Programs where the course is taught: