This course introduces the fundamentals of object-oriented programming as a basis for modern software development. It is positioned within the curriculum as a key subject for transitioning from imperative programming to more structured and scalable development models.
The course provides the knowledge and tools required to analyze, design, and implement software systems using object-oriented languages and modeling techniques such as UML. It also contributes to the development of skills related to teamwork and the use of professional development environments.
Titular Professors
Basic knowledge of imperative and procedural programming (variables, control structures, functions, and basic data handling). It is recommended to have completed Programming Fundamentals.
The course aims to provide students with a solid foundation in object-oriented programming principles, developing their ability to analyze, design, and implement software solutions using structured models. It also promotes the application of good programming practices, the use of professional tools, and collaborative work in development environments.
The teaching methodology is based on an active and practical approach aimed at progressively achieving the learning outcomes. Sessions combine conceptual introduction, practical application, and consolidation of knowledge.
The course is organized in two phases: an initial phase focused on concept acquisition through guided exercises, and a final phase based on the development of an applied project.
The methodology integrates autonomous work, collaborative learning, and continuous assessment, ensuring coherence between learning activities, evaluation system, and workload.
- Project: 40%
- Exercises: 30%
- Final exam: 10%
- Portfolio: 5%
- Self-assessment: 5%
- Oral presentation: 5%
- Participation: 5%
To pass the course, a minimum grade of 5 must be obtained in both the project and the exam.
The following aspects will be evaluated:
- Correct application of OOP principles
- Quality of design and code
- Proper use of UML
- Problem-solving ability
- Clarity and structure of solutions
- Deitel & Deitel. Java: How to Program. Pearson
- Gamma et al. Design Patterns
Additional materials, tutorials, and digital resources provided by the teaching staff.