Object Oriented Programming

Base Knowledge

Students must master concepts of procedural programming and algorithms.

It is recommended the completion of the following courses:
– Programming fundamentals;
– Data Structures.

Teaching Methodologies

This curricular unit does not have regular classes, only the moments of evaluation by Exam.

The expository and practical components occurred in the previous academic year.

Learning Results

At the end of the curricular unit the student will be able to:

1. Identify the basic concepts of Object Oriented Programming (OOP): objects, classes, polymorphism and inheritance;

2. Implement and manage static (uni- and multi-dimensional tables) and dynamic (java collections, namely arrays, vectors and hashtables) data structures;

3. Use persistent memory structures: files (binary, text and objects);

4. Plan, develop and test programs using the Java language.

Program

1. Introduction to the Java language; Structure and syntax;

2. Object Oriented Programming (OOP): Classes and Objects;

3. Exception Handling;

4. Static data structures: One-dimensional and Multidimensional Tables

5. Dynamic data structures: Java Collections, including Arrays, Vectors and Hashtables; Search and iteration in data structures;

6. Files: Text, Binaries and Objects; Java Properties; Reading data from input devices; Manipulation of files and directories; Data streams;

7. Object Oriented Programming (OOP): Inheritance and Polymorphism.

Grading Methods

Regarding the evaluation, only exam evaluations are considered:

1. Exam Evaluation (Normal Period, Resit Period, Special Period):

a) an individual exam;

b) an individual project.

Final Grade = Exam (12/20) +  Project (08/20)

General Rules:

a) each of the evaluation components has a minimum grade of 9,00 points [or 45% out of 100] in order for the student to obtain approval in the curricular unit;

b) the completion of projects involves the submission of reports regarding curricular unit topics through the academic management platform (Inforestudante) and their respective presentation and defense;

c) each evaluation period is independent from the remaining evaluation periods, presenting specific assignments, distinct from the other evaluation periods.

d) access to the different evaluations depends on prior enrolment via the academic management platform.


    Internship(s)

    NAO

    Bibliography

    Flanagan, D. , & Evans, B. (2014). Java in a nutshell – A desktop quick reference (7th ed). O’Reilly.

    Jesus, C. (2013). Curso prático de java. FCA.

    Martins, F. (2017). Java 8 – POO + construções funcionais. FCA.

    Martins, F. (2014). Projectos de POO em java. FCA.

    Oracle. (2024). Java platform, standard edition documentation. https://docs.oracle.com/en/java/javase/

    Urma, R., Fusco, M., & Mycroft, A. (2018). Modern java in action – Lambdas, streams, functional and reactive programming. Manning.