ECTS credits ECTS credits: 6
ECTS Hours Rules/Memories Student's work ECTS: 97 Hours of tutorials: 3 Expository Class: 20 Interactive Classroom: 30 Total: 150
Use languages Spanish, Galician
Type: Ordinary Degree Subject RD 1393/2007 - 822/2021
Departments: Electronics and Computing
Areas: Computer Science and Artificial Intelligence
Center Higher Technical Engineering School
Call: First Semester
Teaching: With teaching
Enrolment: Enrollable
The goal of this course is training students in the fundamentals of object oriented programming, with emphasis on practical issues. Accordingly, at the end of the semester, students will be ready to develop programs complying with the paradigm of object oriented programming as an alternative to programming based on procedures. With that aim, students will learn how to program with the worldwide known programming language: Java.
THEORETICAL LECTURES
Unit 1. Encapsulation: Data types, classes and objects.
Unit 2. Classes and data types: primitive types, references and aliasing.
Unit 3. Data sets: Arrays, collections, lists, sets and maps.
Unit 4. Class inheritance: Class hierarchies, composition and abstraction.
Unit 5. Polymorphism: Inheritance and simplification of code.
Unit 6. Interfaces: Abstraction and independence of classes.
Unit 7. Exceptions: Error handling
Unit 8. Generics
PRACTICAL LECTURES
Bulletin 1: Classes and objects.
Bulletin 2: Data sets.
Bulletin 3: Inheritance and polymorphism.
Bulletin 4: Interfaces and exceptions.
BASIC BIBLIOGRAPHY (in order of priority)
1. ECKEL, Bruce. Think Java. 4th edition, Prentice Hall, 2007. ISBN: 978-8489660342.
[Sig .: A310 2, Escola de Enxeñería]
2. DEITEL, Harvery M., DEITEL, Paul J. How to program in Java. 9th edition, Pearson Education, 2004. ISBN: 978-6073211505.
[Sig .: A310 1 1, Escola de Enxeñería (5th edition)]
FURTHER READING
3. COHOON, James P., DAVIDSON, Jack W. Programming in Java 5.0. 1st Edition, McGraw-Hill, 2006. ISBN: 978-8448150617.
[Sig .: 3 C60 162, Fac. Física]
4. JOYANES AGUILAR, Luis, ZAHONERO MARTÍNEZ, Ignacio. Java 6 Programming: Algorithms, Object Oriented Programming and Graphical User Interface. 1st Edition, MgGraw-Hill, 2011. ISBN: 978-6071506184.
[Sig .: C60 406, Fac. Física]
Students will acquire a set of specific competences of object-oriented programming, but also a series of generic competences to any development of a software program and, finally, transversal competences that affect personal abilities and the way in which they are carried out and how students interact to each other. Taking this into account, the competencies to develop are the following:
SPECIFIC COMPETENCES
* Basic knowledge in the use and programming of computers (FB4), specifically in the creation of programs following the object-oriented paradigm.
* Knowledge and efficient use of the most suitable data types and structures for solving a problem (RI7). This competence is intrinsic to the object-oriented paradigm, insofar as the construction of the programs begins modeling the data structures that allow modeling the problem.
* Ability to analyze, build and maintain applications in a strong and efficient way, choosing the most suitable paradigm and programming languages (RI8). This is one of the main competences that should be acquired, since at the conclusion of the course the students must be able to correctly decide which programming paradigm to apply based on the characteristics of the problem.
GENERIC COMPETENCES
* Ability to conceive and develop computer applications using software engineering methods (CG5). This competence is inherent to the subject of object-oriented programming, since its objective is to develop programs using the specific characteristics of this type of paradigm.
* Ability to solve problems with initiative, decision-making, autonomy and creativity (CG9). This competence will be developed in the resolution of the exercises that make up the bulletins, where it will be necessary to decide which elements of the programming should be applied and how to implement the solution, taking into account the characteristics of object-oriented programming.
TRANSVERSAL COMPETENCES
* Capacity for analysis and synthesis for problem solving (TR1). This competence will be developed in practical exercises in which the characteristics of object-oriented programming are tested.
* Teamwork and skills in interpersonal relationships (TR2). This competence will be developed in the dynamics of the interactive classes, in which the students will discuss the different solutions to the exercises in the bulletins, so that it will be necessary to exploit the skills of interaction between people.
* Autonomous learning and adaptation to new situations (TR3). In solving the exercises outside of the practical sessions and in understanding the concepts of object-oriented programming, it will be necessary to develop this type of competency.
MODULE COMPETENCES
* Manage different levels of abstraction to structure the software to be developed.
* Program under the paradigm of object-oriented programming.
* Identify possible strategies for solving problems with the concepts of object orientation, such as the use of hierarchy, polymorphism and the use of object interfaces.
* Know different programming paradigms and know how to choose the most appropriate for each situation.
The teaching methodology is aimed at focusing attention on the practical aspects of programming and on the concepts that differentiate the object-oriented paradigm from other approaches. Students must be trained, therefore, to understand the advantages of the object-oriented approach and to develop a program with solvency following this programming paradigm. Taking this into account, three types of learning activities are distinguished: lectures, sessions in small groups, and tutorials in small groups:
(1) The master classes (20 hours) are aimed at explaining the characteristics of object-oriented programming (inheritance, polymorphism, etc.), with special emphasis on the differences with the procedural-based programming paradigm and illustrating with examples the situations in which the object-oriented approach is more suitable. To explain these characteristics, examples of the Java programming language will be used, although in the lectures it is not intended to detail all aspects of the language: its use is aimed at illustrating the concepts of the programming paradigm.
(2) The practical sessions in small groups (30 hours) are aimed at the students acquiring skills in the implementation of programs following the object-oriented paradigm. By link it is important that in these practices a sufficiently extensive set of programming exercises is carried out in which the characteristics of object-oriented programming are made use of from the prism of the Java language. For what you are, the students had to carry out three bulletins composed in turn of a set of exercises in which they will see how to build object-oriented programs and how to make use of the characteristics of the paradigm. Attendance at these classes is MANDATORY.
Given this teaching methodology, the competences FB4, RI7, RI8, CG5 and CG9, as well as those indicated in the programming module, have specific contents that are linked to the theoretical and practical part of a subject such as Object-Oriented Programming, in which the modular and structured programming paradigms are reviewed until a more flexible form of programming is reached. These competences, therefore, are explicitly evaluated in the tests carried out throughout the course.
On the other hand, the TR1 competence will be worked on in practical exercises, since in them the exposed problems must be analyzed and the concepts of Object Oriented Programming must be synthesized in their resolution; The TR2 competition will work on the dynamics of the practical classes in which different solutions to the bulletins can be discussed among the students; and the TR3 competence will be worked on in practical exercises, since it is in them that a new computing paradigm must be adapted, which extends the concepts of modular and structured programming.
The evaluation of the subject will take place in two different ways, although complementary, that aim to evaluate the competence in the practical realization of programs and the mastery of the object-oriented paradigm. On the other hand, a distinction will be made between the evaluation of the common opportunity and that of recovery:
ORDINARY OPPORTUNITY
(1) Exam in which mastery of the theoretical aspects of object-oriented programming as an alternative to procedure-based programming will be demonstrated, and of those characteristics of Java that affect this type of programming. This exam must answer a set of questions about the characteristics of object-oriented programming and the Java language, which constitute the subject matter theory syllabus. This part will represent 70% of the final grade for the subject.
(2) Preparation of a set of newsletters in which the command of the Java programming language and the concepts of object-oriented programming will be demonstrated in a practical way. All newsletters will be made individually. This part will constitute 30% of the final grade for the subject.
If the first bulletin was delivered, it will be considered as presented in the matter. Finally, the partial or total copy of a class or a method of any of the deliveries of the bulletins will mean the failure of the entire subject.
RECOVERY OPPORTUNITY
The evaluation criteria for the theory and practice parts in the recovery opportunity will be exactly the same as for the ordinary opportunity. Therefore, in addition to passing the theory exam and the newsletters, in order to pass the subject it will be necessary to have attended the interactive practical sessions (with the attendance criteria indicated below).
ATTENDANCE CONTROL
As mentioned above, attendance at the interactive practical sessions is mandatory because they address key concepts of the subject, and the control of this attendance will be done through signature sheets that must be covered upon completion. of each of the sessions. In addition, if less than 80% of the interactive practical sessions are attended, it will be considered that the subject has not been passed.
In the case of fraudulent performance of exercises or tests, the Regulations for the evaluation of the academic performance of the students and the review of grades will be applied. In application of the ETSE Regulations on plagiarism (approved by the ETSE council on 12/19/2019), the total or partial copy of any practical or theory exercise will entail failure on both occasions of the course, with the rating of 0.0 in both cases.
As indicated above, attendance at the practical sessions is mandatory, and furthermore, this participation should be active in order to achieve maximum benefit. In addition to this, additional time will be needed to work on the following aspects:
(1) Autonomous study of the concepts of object-oriented programming (25 hours). The time devoted to this study not only includes the time necessary to prepare the theoretical exam, but also the time required to understand the theoretical concepts so that they can be correctly applied to the construction of the programs.
(2) Writing exercises and reports (10 hours). The time dedicated to this writing is related to the work that must be delivered at the conclusion of each of the exercise bulletins, in which students must explain how the program was carried out following the object-oriented approach.
(3) Complete the exercises in the bulletins (50 hours). This time is necessary so that the exercises of the bulletins that are not finished in the practical sessions are completed. During this time, it will be possible to internalize the way to solve the problem presented in the exercise, to the extent that in the practical sessions more emphasis is placed on understanding the problem and the general way in which it will be solved, while the details necessary to completing the exercises should be done in the additional practical work time.
In order to take maximum benefit from the subject and acquire with some fluency the concepts of object-oriented programming, it is highly recommended to take advantage of the theory classes, the practical sessions and the tutorials in small groups, to the extent that, as presented in the program and the teaching methodology, these activities are directly related. On the other hand, it is also highly recommended that students explore the support material (web pages on technology, online tutorials of development outlines, description of success stories, etc.) which include additional explanations to those of the Classes that help to understand and consolidate the concepts of object-oriented programming and programming questions related to Java.
The preferred language for teaching the expository classes is Galician. Interactive sessions will be taught in Galician or Spanish.
Maria Purificacion Cariñena Amigo
- Department
- Electronics and Computing
- Area
- Computer Science and Artificial Intelligence
- Phone
- 881813563
- puri.carinena [at] usc.es
- Category
- Professor: Temporary PhD professor
Manuel Lama Penin
Coordinador/a- Department
- Electronics and Computing
- Area
- Computer Science and Artificial Intelligence
- Phone
- 881816427
- manuel.lama [at] usc.es
- Category
- Professor: University Professor
Nicolas Vila Blanco
- Department
- Electronics and Computing
- Area
- Computer Science and Artificial Intelligence
- nicolas.vila [at] usc.es
- Category
- Professor: LOU (Organic Law for Universities) PhD Assistant Professor
Monday | |||
---|---|---|---|
11:30-14:00 | Grupo /CLIL_03 | Spanish | Computer Room I5 |
Tuesday | |||
11:30-14:00 | Grupo /CLIL_04 | Spanish | Computer Room I5 |
15:00-17:00 | Grupo /CLE_01 | Galician | Classroom A2 |
Wednesday | |||
12:00-14:30 | Grupo /CLIL_02 | Galician | Computer Room I7 |
Thursday | |||
09:00-11:30 | Grupo /CLIL_01 | Galician | Computer Room I5 |
01.08.2025 10:00-14:00 | Grupo /CLE_01 | Classroom A1 |
01.08.2025 10:00-14:00 | Grupo /CLIL_01 | Classroom A1 |
01.08.2025 10:00-14:00 | Grupo /CLIL_02 | Classroom A1 |
01.08.2025 10:00-14:00 | Grupo /CLIL_03 | Classroom A1 |
01.08.2025 10:00-14:00 | Grupo /CLIL_04 | Classroom A1 |
01.08.2025 10:00-14:00 | Grupo /CLIL_01 | Classroom A2 |
01.08.2025 10:00-14:00 | Grupo /CLIL_02 | Classroom A2 |
01.08.2025 10:00-14:00 | Grupo /CLIL_03 | Classroom A2 |
01.08.2025 10:00-14:00 | Grupo /CLIL_04 | Classroom A2 |
01.08.2025 10:00-14:00 | Grupo /CLE_01 | Classroom A2 |
07.02.2025 16:00-20:00 | Grupo /CLE_01 | Classroom A2 |
07.02.2025 16:00-20:00 | Grupo /CLIL_01 | Classroom A2 |
07.02.2025 16:00-20:00 | Grupo /CLIL_02 | Classroom A2 |
07.02.2025 16:00-20:00 | Grupo /CLIL_03 | Classroom A2 |
07.02.2025 16:00-20:00 | Grupo /CLIL_04 | Classroom A2 |