Description
The general objective of the course is to provide students with the theoretical foundations and practical skills that will allow them to analyze, design, implement and debug computer applications following the object-oriented paradigm. This is an eminently practical, student-centred course, where students have to complete several programming assignments. In order to facilitate the completion of the assignments, the course will first include a brief introduction to the discipline of Software Engineering, connecting it with the paradigm of Object Oriented Programming (OOP). The elements of OOP will then be analyzed in detail, with the help of UML elements and diagrams. English Friendly course: International students may request from the teachers: a) materials and bibliographic references in English, b) tutoring sessions in English, c) exams and assessments in English. In the completion of academic activities for this subject, the use of generative artificial intelligence (GAI) is permitted. Its use must be ethical, critical, and responsible. In the case of using GAI, any results it provides must be critically evaluated, and any generated citations or references must be carefully verified. Additionally, it is recommended to declare the use of the tools utilized. |
Requirements
Subjects recommended to have taken before
- Programming I — V05G301V01105
Instructors
- Blanco Fernández, Yolanda
- Fernández Masaguer, Francisco
- Gil Solla, Alberto
Contents
- Topic 1: Introduction to the object-oriented paradigm
- Brief introduction to the subject and its organization
- Birth of the paradigm
- Foundations: classes and objects
- Concepts of encapsulation, inheritance (generalization), and polymorphism
- Brief introduction to UML
- Topic 2: Encapsulation
- Classes, interfaces and packages
- Methods and member variables: visibility and scope resolution
- Constructor method
- Parameter passing: pointers and references
- Pointers to objects
- Use of UML class diagrams
- Topic 3: Inheritance
- Derived classes and types of inheritance
- Abstract classes
- Multiple inheritance
- Object class
- Topic 5: Polymorphism
- Overloading and overriding
- Abstract classes and interfaces
- Generic classes
- Topic 6: Exception handling
- Foundations of exceptions
- Handling Java exceptions
- Practical contents
- The proposed practical sessions combine the application of object-oriented programming (OOP) concepts explored in theoretical sessions with the use of data structures and the development of algorithmic logic.
Learning Outcomes
- B6 (CG6) – The aptitude to manage mandatory specifications, procedures and laws.
- B14 (CG14) – The ability to use software tools to search for information or bibliographical resources.
- C50 (CE50/T18) – The ability to develop, interpret and debug programs using basic concepts of Object-Oriented Programming (OOP), including classes and objects, encapsulation, relationships among classes and objects, and inheritance.
- C51 (CE51/T19) – The ability to apply the basic phases of analysis, design, implementation and debugging of OOP programs.
- C52 (CE52/T20) – The ability to use CASE tools such as editors and debuggers.
- C53 (CE53/T21) – The ability to develop programs following the basic principles of software engineering quality, taking into account existing norms, standards and specifications.
Planned Activities
- Lecturing – Classes involving the explanation of object-oriented programming (OOP) concepts and the resolution of practical exercises.
Competencies developed: C50, C51, C53. - Practices through ICT – Students independently solve the assignments proposed. The solutions and doubts that arise while working on these assignments are discussed to identify the most common mistakes.
Competencies developed: C50, C51, C52, C53, B6, B14. - Practices through ICT – Students independently solve the assignments proposed. The solutions and doubts that arise while working on these assignments are discussed to identify the most common mistakes.
Competencies developed: C50, C51, C52, C53, B6, B14. - Practices through ICT – Students independently solve the assignments proposed. The solutions and doubts that arise while working on these assignments are discussed to identify the most common mistakes.
Competencies developed: C50, C51, C52, C53, B6, B14.
Assessment Methods and Criteria
Evaluation Activities
- Practices through ICT (E1) – First laboratory deliverable. Students may correct identified errors and resubmit assessments, possibly with a penalty, until a date to be determined (around mid-April). Once graded, the assignments will be uploaded to MOOVI to check plagiarism.
Weight: 10%.
Training and learning results: B6, B14, C50, C51, C52, C53. - Practices through ICT (E2) – Second laboratory deliverable. Students may correct identified errors and resubmit assessments, possibly with a penalty, until the latest date allowed by academic regulations and course organization requirements (exact date will be announced). Once graded, assignments will be uploaded to MOOVI to check plagiarism.
Weight: 20%.
Training and learning results: B6, B14, C50, C51, C52, C53. - Practices through ICT (E3) – Third laboratory deliverable. Students will upload the assignments to MOOVI. These assignments will be graded by course lecturers outside laboratory sessions.
Weight: 20%.
Training and learning results: B6, B14, C50, C51, C52, C53. - Essay questions exam (final theory exam) – Individual exam taken without supporting material at the end of the term, covering all the contents of the course. The maximum grade is 3 points (out of 5) for students following continuous assessment, and 5 points for students choosing global assessment.
Weight: 30%.
Training and learning results: C50, C51, C53. - Essay questions exam (midterm theory exam) – Individual exam taken without supporting material approximately halfway through the academic period, covering the contents taught up to one week before the exam. This test is only taken by students following continuous assessment and has a maximum score of 2 points (out of 5).
Weight: 20%.
Training and learning results: C50, C51, C53. - Essay questions exam (laboratory exam) – Mandatory for students following continuous assessment who submit E3, and also compulsory in global assessment, extraordinary calls, and end-of-program exams.
Weight: 0%.
Training and learning results: C50, C51, C53.
Other Comments on the Evaluation
There are two evaluation mechanisms: Continuous Assessment (CA) and Global Assessment (GA). Students must choose one of them according to the following conditions:
- Both the classroom (theory) and laboratory parts will be evaluated using the same assessment method chosen by the student.
- Continuous assessment includes the exams described above, the design and development of Java assignments submitted as deliverables E1, E2 and E3, and a laboratory exam if E3 is submitted.
- Students confirm the evaluation modality (CA or GA) when submitting the laboratory deliverables. This choice also applies to the theory part. If a student finally chooses GA, the grade obtained in the first classroom exam (if any) will be discarded.
- To pass the course, students must obtain at least 2 points (out of 5) in both the theory/classroom and laboratory parts.
- If the sum of both parts is 5 or higher but the minimum grade in one part is not reached, the final grade will be Fail (4.5).
- Students who attend any evaluation activity will not be recorded as “No-show”.
- Continuous assessment tests take place only on the scheduled dates and cannot be rescheduled.
Plagiarism is considered serious academic misconduct. If plagiarism is detected in any assignment or exam, the final grade will be Fail (0) and the incident will be reported to the relevant academic authorities.
Ordinary Call – Continuous Assessment
Theory/Classroom (50%)
The grade for this part (maximum 5 points) is obtained by adding the grades of the two theory exams:
- Midterm exam: up to 2 points
- Final exam: up to 3 points
Laboratory (50%)
The grade depends on the marks obtained in E1, E2 and E3 deliverables (maximum 5 points in total).
Additional conditions:
- Each assignment has a submission deadline.
- Some assignments will be reviewed in the laboratory once completed.
- Students must answer teachers’ questions to continue under continuous assessment.
- Students submitting E3 must also pass a practical laboratory exam. If this exam is not passed, the E3 grade will be 0.
Students who fail the course in the ordinary call may retain the theory or laboratory grade for the extraordinary call under the following conditions:
- Laboratory grade is retained if at least 1.5 out of 5 is obtained in theory.
- Theory grade is retained if the practical assignments were submitted and the minimum laboratory grade (2 out of 5) was obtained.
Ordinary Call – Global Assessment
Theory/Classroom (50%)
Individual exam at the end of the semester (maximum 5 points).
Laboratory (50%)
The grade depends on E1, E2 and E3 deliverables and a practical laboratory exam.
Deliverables may be identical to those used in continuous assessment or may include modifications. They must be submitted through MOOVI and will be graded outside laboratory sessions.
Students must pass a practical exam requiring modifications to E2 or E3. If this exam is not passed, the corresponding deliverable will receive 0 points.
Extraordinary Call and End-of-Program Call
Theory/Classroom (50%)
Individual exam approved by the school, requiring a minimum of 2 points out of 5.
Laboratory (50%)
Students must upload E1, E2 and E3 deliverables to MOOVI and take a laboratory exam. Deliverables may be the same as those used in CA or GA, or may include modifications.
Since continuous assessment is not considered in this call, the evaluation procedure is equivalent to the global assessment system used in the ordinary call.