Programação Orientada a Objetos

Base Knowledge

Having attended the curricular unit Programming Fundamentals 

Teaching Methodologies

The following teaching methodologies are used in this curricular unit:
– Expository method: an explanatory method were theoretical foundations and concepts are presented by the teacher and discussed with the class, followed by demonstrative examples;
– Experimental method: an active method were the student develops the knowledge through the use of problem solving and project development.

Learning Results

It is expected that by the end of the course each student is entitled to:
– Know the basic concepts of Object Oriented Programming (OOP): objects, classes, polymorphism, inheritance;
– Model and manage static and dynamic data structures (tables, vectors, hash tables and java collections);
– Interact with persistent storage: files (binary, text and object files);
– Be able to structure, develop, run, and test programs using Java language.

Program

Introduction to Java language
– Primitive types
– Arrays of primitive types
– Operators
– Execution control instructions

Classes
– Objects and references
– The Garbage Collector
– Constructors
– The keyword this
– Constructors that call constructors
– Static members
– Overloaded methods
– Arrays of objects
– Inner and nested classes

Packages
– Components organization
– Access modifiers

Composition and inheritance
– Composition
– Inheritance
– Choose between composition and derivation
– The super keyword
– The final keyword

Polymorphism
– Upcasting
– Object class
– Abstract classes
– Interfaces

Collections
– Interfaces derived from Collection
– Some concrete implementations

Exceptions

Files

Curricular Unit Teachers

Álvaro Nuno Ferreira Silva Santos

Grading Methods

The evaluation will be carried out through the following components (a 0..20 scale will be used):

Written exam (12 marks)
- Individual written test with limited access to information
- Focuses on all contents of the course
- Minimum mark: 35%

Practical assignment (5 marks)
- Groups of 2 elements, to be communicated by the end of October
- Work description will be available in the 1st week of November
- Submission deadline: last day of classes
- Minimum mark: 35%
- Submission of the assignment via Nónio, in a ZIP file containing the project and the technical report (PDF)
- Penalty: 5% for each hour of delay
- The defence is mandatory
- The grade achieved in the work is valid for all assessment phases of the current academic year

Attendance in classes (3 marks)
- For each attended theoretical class, the student accumulates 0.2 up to a maximum of 3 marks
- Only attendance from the 2nd week onward will be counted for marks
- Students who have a status that exempts them from attending classes (e.g. student-worker) can obtain the 3 marks by taking a test at the end of the semester
- These students, upon starting the additional test, will automatically loose any marks that were obtained from attending classes
- This component is not subject to a minimum grade.


    Internship(s)

    NAO

    Bibliography

    Martins, F. M. (2017). Java 8: POO + construções funcionais. FCA. ISBN 9789727228386

    Jesus, C. (2013). Curso prático de Java. FCA. ISBN 9789727227501

    Martins, F. M. (2014). Projectos de POO em Java. FCA. ISBN 9789727227921

    Flanagan, D. (2014). Java in a nutshell: A desktop quick reference (6.ª ed.). O’Reilly. ISBN 1449370829