Programação

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

The following teaching methods 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 in 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 in group, for practical application of new concepts, autonomously 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. 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.

Curricular Unit Teachers

Grading Methods

Final evaluation
  • - an individual written test (30%) - 30.0%
  • - an individual project with presentation (70%). - 70.0%
Periodic Evaluation
  • - two group projects with presentations (35% each) - 70.0%
  • - two individual practical assignments (15% each) - 30.0%

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.

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