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.
Students acquire the following knowledge and skills:
1. Understand the fundamentals of object-oriented programming and apply them through a modern programming language.
2. Design and structure software applications based on specific requirements, using UML and basic design principles.
3. Properly use an integrated development environment (IDE) and apply good programming practices.
4. Develop solutions collaboratively, integrating teamwork methodologies in software projects.
1. Fundamentals of object-oriented analysis, design, and programming.
2. Modeling tools and techniques: introduction to UML and class diagrams.
3. Use of development environments (IDEs) and common tools in the programming workflow.
4. Basic design principles: encapsulation, inheritance, polymorphism, and class relationships.
5. Introduction to design patterns.
6. Linear data structures applied to software development.
The teaching methodology combines theoretical instruction with practical activities aimed at reinforcing the concepts covered. Lectures introduce the fundamentals of OOP and UML design, while guided exercises and practical sessions allow students to apply these concepts progressively.
The course is structured into two phases:
- Phase 1: acquisition of the basic concepts of the object-oriented paradigm through exercises and guided practice.
- Phase 2: development of an applied project, where students integrate and consolidate the acquired knowledge through a project-based learning approach.
Active participation, critical thinking, and collaboration among students are encouraged, reflecting common processes in real software development.
Assessment includes continuous evaluation activities, practical exercises, and a final written exam. Students also complete a practical project applying the main contents of the course.
Assessment will consider:
- Mastery of basic OOP and UML concepts.
- Correctness and quality of the submitted code.
- Appropriate application of design principles.
- Ability to solve theoretical and practical exercises.
- Quality of the final project (structure, documentation, and functionality).
- Deitel & Deitel. Java: How to Program. Pearson.
- Gamma et al. Design Patterns: Elements of Reusable Object-Oriented Software (introductory chapters).
- Course materials and documents provided by the teaching staff.
Additional resources, tutorials, extra exercises, and code examples available on the course's online platform.