Programação Aplicada

Base Knowledge

Students should master the concepts of Object Oriented Programming (OOP) using Java language and Relational Databases.

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

Teaching Methodologies

The following teaching methodologies are used in this course:

1 – Expository method: explanatory method where theoretical foundations and concept are presented by the teacher and discussed with the class, followed by demonstrative examples;

2 – Experimental method: active method where the student develops knowledge through problem solving and the development of individual laboratory projects or group dynamics, being the predominant method.

Each class will consist of two moments:

1 – Introductory presentation: At the beginning of the class, the teacher exposes and discusses the new contents under study with the students;

2 – Practical application: After the introductory presentation, students develop work assignments and programming projects, individually and together, for the practical application of new concepts, independently and under the guidance of the teacher;

This will be a predominantly practical curricular unit and focused on the development of programming projects.

Learning Results

It is expected that at the end of the course the student will be able to:

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

2. Handle persistent memory structures: access to relational databases using ODBC;

3. Develop applications with network communication and parallelism;

4. Implement and manipulate user interaction interfaces and develop graphics applications in Java Swing/Java FX.

5. Design and implement applications using the Java language.

Program

1. Support elements for Java application development: Code management (Packages); Code Documentation (JavaDoc); Java Archives (JAR); Java Conventions; Formatting numbers, dates and calendars; Regular Expressions; Universal access to resources / files; Task scheduling; Print; Calls to the operating system;

2. Debugging and logging;

3. Access and manipulation of relational databases through ODBC and JDBC;

4. Concurring systems; Thread synchronization;

5. Network programming; communication through sockets; client-server architecture;

6. Graphical interfaces (Java Swing, Java FX and AWT); Components; Positioning Managers; Event processors; Interface Formatting;

7. Application development using MVC (Model, View, Controller).

Curricular Unit Teachers

Grading Methods

Final evaluation
  • - an individual project with presentation (70%). - 70.0%
  • - an individual written test (30%) - 30.0%
Periodic Evaluation
  • - three individual practical assignments (with weights of 20%, 25% and 25%) - 70.0%
  • - a final group project, with presentation (30%); - 30.0%

Internship(s)

NAO

Bibliography

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

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

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

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

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