Programação Estruturada e Orientada a Objetos

Base Knowledge

It is recommended the prior completion of the following curricular unit:

– Introduction to Programming.

Teaching Methodologies

According to the objectives of the course, its target public, and achievement goals, certain methodologies and strategies must
be used in order to allow the right comprehension of the taught content.
As such, it is prioritized the use of several techniques and methodologies together to maximize the apprehension of contents,
thus we have:
1. Expository method: oral exposition of theoretical contents using multimedia presentations, use of programs
and resources specific to the development of programs using Java;
2. Interrogative method: through questions directed to a student or to the group during the classes, allowing
immediate feedback on the contents covered;
3. Active method: by using several techniques, such as conducting discussions/debates on the themes developed,
case studies regarding important facts in the area of the matter, problem-solving and development of individual
works;
4. Demonstrative method: useful to demonstrate the installation and operation of programs used in the development
of programs in Java.

Learning Results

-Explain the notion of subprogram.
-Recognize the rules for declaring and executing subprograms.
-Build programs using subprograms.
-Recognize the rules and mechanisms for creating and using subprogram libraries.
-Recognize static data structures: strings and arrays.
-Recognize compound data structures: definition and manipulation.
-Recognize dynamic data structures: stacks and queues.
-Identify the differences between a structured language and an object-oriented language.
-Explain the notion of objects and their classification.
-Identify the notions of class, type, methods, behaviours and instances.
-Represent a class schematically.
-Explain the concept of data encapsulation.
-Define relationships between objects.
-Recognize the concept of inheritance and polymorphism.
-Represent class diagrams schematically.

Program

1. Structured programming
1.1. Basic concepts and passing parameters
1.2. Subprograms- Subprogram structure: procedures and recursive functions
1.3. Libraries creation
1.4. Static data structures
1.5. Composite data structures
1.6. Dynamic data structures.
2. Software construction rules and good practices.
3. Object-Oriented programming
3.1. Language sintaxe
3.2. Development environment
3.3. Constants and variables
3.4. Operators
3.5. Data types
3.6. Data input and output
3.7. Basic instructions
3.8. Types conversion
3.9. Instructions and control structures
3.9.1. If; 3.9.2. Switch; 3.9.3. For; 3.9.4. While; 3.9.5. Repeat; 3.9.6. Break; 3.9.7. Continue;
3.10. Classes and Objects
3.11. Class definition
3.11.1. Class creation; 3.11.2. Class methods; 3.11.3. Class variables;
3.12. Class Inheritance
3.13. Encapsulation
3.14. Polymorphism
3.15. Classes Diagram
3.16. Interfaces
3.17. Collections
3.18. Exceptions
3.19. Streams.
3.20. Redefining methods and behavior.

Curricular Unit Teachers

Internship(s)

NAO

Bibliography

Damas, L. (1999). Linguagem C. FCA.
King, K. N. (2008). C Programming: A Modern Approach (2nd ed.). W. W. Norton & Company.
Rocha, A. M. A. (2006). Introdução à Programação Usando C. FCA.
Evans, B. J., Flanagan, D. (2018). Java in a Nutshell (7th ed.). O’Reilly Media.
Mendes, A. J., Marcelino, M. J. (2012). Fundamentos De Programação Em Java (4th ed.). FCA.
Eckel, B. (2006). Thinking in Java (4th ed.). Prentice Hall.