General information


Subject type: Basic

Coordinator: Adso Fernández Baena

Trimester: Second term

Credits: 6

Teaching staff: 

Catherine Juan Nadal
Rosa Herrero Antón 

Skills


Basic skills
  • B2_That students know how to apply their knowledge to their job or vocation in a professional way and have the skills they demonstrate by developing and defending arguments and solving problems within their area of ​​study

     

Specific skills
  • EFB3_Ability to understand and master the basic concepts of discrete mathematics, logic, algorithms and computational complexity, and their application for solving engineering problems

     

  • EFB4_Basic knowledge of the use and programming of computers, operating systems, databases and computer programs with application in engineering

     

Transversal competences
  • T1_That students know a third language, which will be preferably English, with an adequate level of oral and written form, according to the needs of the graduates in each degree

     

  • T2_That students have the ability to work as members of an interdisciplinary team either as one more member, or performing management tasks in order to contribute to developing projects with pragmatism and a sense of responsibility, making commitments taking into account the available resources

     

Description


The subject of Object Oriented Programming belongs to the subject of Programming and is the second in this area. The various topics covered in the course are designed to train students to learn the concepts related to object-oriented programming. These concepts will be needed in the later subjects within this same subject and also in later subjects within the degree.

This subject has methodological and digital resources to make possible its continuity in non-contact mode in the case of being necessary for reasons related to the Covid-19. In this way, the achievement of the same knowledge and skills that are specified in this teaching plan will be ensured.

 

 

Learning outcomes


At a general level, this subject contributes to the following learning outcomes specified for the subject to which it belongs (Algorithm and Programming):

  • Build correct and efficient algorithms for small difficulty problems.
  • Implement simple algorithms in an imperative reference programming language for the initial level.
  • Identify the most appropriate algorithmic solutions to solve problems of medium difficulty.
  • Reason about the correctness and efficiency of an algorithmic solution.
  • Design, write, test, debug, document, and maintain code in a high-level language to solve programming problems by applying algorithmic schemas and using data structures.
  • Apply basic techniques of modular decomposition of programs.
  • Choose, combine and exploit different paradigms of programming at the time of software construction, meeting criteria such as ease of development, efficiency, portability and maintenance.
  • Design the architecture of the programs using the techniques of object orientation, modularization and specification and implementation of abstract data types.
  • Use the tools of a software development environment to create and develop applications.
  • Demonstrate knowledge and understanding of essential facts, concepts, principles and theories related to computer science and its reference disciplines.
  • Collaborate in a unidisciplinary environment. Identify the group's objectives and collaborate in the design of the strategy to be followed and a work plan to achieve them. Identify the responsibilities of each member of the group and assume the personal commitment of the assigned task. Evaluate and present own results. Identify the value of cooperation and exchange information with the other members of the group. Exchange information about the group's progress and propose strategies to improve its operation.
     

At a more specific level, at the end of the course the student must be able to:

  • LO1: Understand their structure and understand programs written in an object-oriented language.
  • LO2: Design and encode, debug and document programs using the object orientation paradigm, with a limited number of classes.
  • LO3: Understand and make use of the error handling mechanisms provided by some high-level programming language.
  • LO4: Design and encode a simple graphical user interface in a Rapid Application Development environment.

 

Working methodology


All the theoretical concepts of the subject will be exposed in theory classes (large groups). In these classes, and at the discretion of the teachers, exercises and problems of a more practical nature will also be solved. Likewise, and always at the discretion of the teachers, students may be asked to solve, individually or in groups, short problems and / or exercises. These activities, brief and optional, will serve the student as a tool for self-assessment of their achievement of the contents of the subject and can be used by the teacher to make decisions about the final grade of the student good and never to the detriment of the numerical grade calculated according to the grading system specified by the subject.

Concepts of a more practical nature and everything that can essentially be considered the practical application of theoretical concepts will be worked on more intensively in small (laboratory) groups. In the sessions scheduled for this purpose, the appropriate tools will be given to solve the scheduled activities well and it is expected that these will be extended from a temporal point of view beyond the laboratory hours and that, consequently, students must complete them during the time of autonomous learning.

It will be made available to students activities of a completely optional nature that will help them prepare and prepare for those of a compulsory nature.

This course, due to the situation generated by COVID, some of the large group sessions will be held in hybrid format: face-to-face and online (via streaming). This will allow students to rotate to face-to-face classes, respecting the maximum number of students per classroom imposed by the distance measures. When they are not in contact, they will be able to follow the class online from home.

With regard to internship sessions in smaller spaces (such as laboratories, studios or sets), where appropriate, work will be carried out simultaneously in several spaces in order to ensure that the conditions established by the safety protocols are met.

Contents


1.- Introduction to Object Oriented Programming

  • Intuitive object definition
  • Abstraction and encapsulation
  • Objects and classes
  • Attributes and methods
  • Instantiation of objects and invocation of methods

2.- Fundamental techniques of Object Oriented Programming: Inheritance and Polymorphism

  • Class extension: inheritance
  • Polymorphism. Overload and rewrite

3.- Advanced concepts: interfaces and abstract classes

  • Abstract classes and methods
  • Interfaces

4.- Error handling

  • Exceptions
  • Throwing, capturing and handling exceptions

5.- Introduction to the programming of the graphical user interface

  • Programming in response to events
  • Windows and controls

Learning activities


A series of activities of an eminently practical nature (short exercises, problems ...) are made available to students, which are the basis of the learning activities of the subject. These activities will have to be solved by the students, often in a non-contact way, following the instructions of the teachers and will also be worked in class, either as examples in the theory sessions or in the laboratory sessions. Although these activities will be optional (teachers will not individually verify the performance by students), they will be essential to achieve the theoretical and practical knowledge of the subject.

In order to gather evidence of the achievement of the expected learning outcomes, the following evaluative activities will be carried out (practices and exams):

The practices will be carried out in groups of two students. Not necessarily, the qualification of the two members of the group must be the same, the degree of participation of each of them in the preparation of each of the practices will be taken into account.

PRACTICE 1

In this practice, students will have to code a program that makes use of classes of objects, provided by the teacher and / or coded by themselves. The goal of the practice is twofold, on the one hand to encode, test, and debug new object classes, and on the other, to use the two paradigms of programming, object-oriented programming, and structured programming. The student will have to solve the same problem twice, he will have to make two versions:

  • A first making use of the paradigm of the imperative programming, following the model of the programs done until then by the students in the previous subject of programming.
  • A second version, making use of the Programming the Orientation to the Object.

The student must understand the two methodologies, understand the differences and assess the pros and cons of each.

To implement the second version the student will have to use more elements of the computer software used for program development, the new implementation requires more elements than the student has used so far.

The problem to be solved will have been made available to students prior to the laboratory session, with the dual purpose, that they know the problem to be addressed and have begun to design solutions.

The students will have to finish, in the hours dedicated to the autonomous learning all the problems posed.

This activity contributes to the achievement of learning outcomes RA1 and RA2.

PRACTICE 2

In this practice, students will have to code a program that makes use of object classes from the different language libraries, and other classes coded by themselves. The goal of the practice will focus on coding, testing, and debugging a class design and its use in writing a program. The student will have to code a class design using the different elements of object-oriented programming, the most basic and also the most complex.

The complexity of the work to be performed will be greater than that of the previous practice.

The problem to be solved will have been made available to students prior to the laboratory session, with the dual aim that they know the problem to be addressed and have begun to design solutions.

The students will have to finish, in the hours dedicated to the autonomous learning all the problems posed.

This activity contributes to the achievement of learning outcomes RA1 and RA2.

PRACTICE 3

In this practice, students will have to code a class design that makes use of classes of objects given by the programming language and others coded by themselves. The goal of the practice will be to focus on coding, testing, and debugging new classes of objects but with more emphasis on error control through the use of exceptions. 

The problem to be solved will have been made available to students prior to the laboratory session, with the dual aim that they know the problem to be addressed and have begun to design solutions.

The students will have to finish, in the hours dedicated to the autonomous learning all the problems posed.

This activity contributes to the achievement of learning outcomes RA1, RA2 and RA3.

PRACTICE 4

This practice will be dedicated to solving problems related to all the contents of the subject and with special emphasis on the latter: the programming of the graphical user interface. The student will solve two statements:

  • In one you will have to program from scratch all the requested graphical interface and interactivity,
  • and in the other, using a graphical interface development tool, they understand the whole logic of the programming generated by the tool, to modify it to incorporate the interactivity demanded by the problem.

The problems that will have to be solved will have been made available to the students prior to the realization of the laboratory session, with the double objective that they know the problems that will be treated and that they have begun to design the solutions.

The students will have to finish, in the hours dedicated to the autonomous learning all the problems posed.

This activity contributes to the achievement of learning outcomes RA1, RA2, RA3 and RA4.

 

At the competence level, the four practices, which will mostly have to be developed in non-contact time, cover the following common and specific competences of the subject (in brackets the most relevant aspects of each competence to which it contributes):

  • CIN1 (software development)
  • CIN3 (effective work habits in software development environments)
  • CIN5 (maintain software)
  • CIN6 (apply algorithmic procedures)
  • EFB3 (understand and master the concepts of algorithms) i
  • EFB4 (use of computer programs)

 

WRITTEN TEST I

This activity will be unipersonal and will evaluate the first two contents of the subject. With this assessment the learning outcomes RA1 and RA2 are evaluated.

WRITTEN TEST II

This activity will be unipersonal and will evaluate all the contents of the subject. With this activity the learning outcomes RA1, RA2, RA3 and RA4 are evaluated, but giving more weight to the learning outcomes not evaluated in the written test I.

 

At the competence level, these two tests cover the following common and specific competencies of the subject:

  • CIN1 (software development)
  • CIN6 (apply algorithmic procedures),
  • EFB3 (understand and master the concepts of algorithms and their application to problem solving)

In order to pass (pass) the assessment activities, students will have to demonstrate

  • That they have acquired the theoretical knowledge related to the contents of the subject and that their understanding allows them to put them into practice [MECES-2 point a, point c]
  • That they can develop solutions to problems that, although they are similar to others seen above, present aspects that are new [MECES-2 point f]

In relation to the basic competence assigned to the subject, this is covered especially with regard to the aspects that are explained:

  • B2: problem solving within their area of ​​study.

Finally, and with regard to the transversal competences associated with the subject:

  • T1: (third language knowledge) is worked from the documentary sources that students must consult, since all of them are in English.
  • T2: (group work) works in the practice activities that are carried out in groups of two students who must agree and contribute the solutions of the practical activities.

 

Rules for carrying out the activities

For each activity, teachers will be informed of the particular rules and conditions that govern them.

One-on-one activities presuppose the student's commitment to carry them out individually. All activities in which the student does not comply with this commitment will be considered suspended, regardless of their role (sender or receiver).

Likewise, the activities to be carried out in groups presuppose the commitment on the part of the students who make it up to carry them out within the group. All activities in which the group has not respected this commitment regardless of its role (sender or receiver) will be considered suspended.

In group activities, the teacher can, based on the information available, customize the grade for each member of the group.

Any undelivered activity will be considered scored with zero points.

It is optional for teachers to accept or not deliveries outside the deadlines indicated. In the event that these late deliveries are accepted, it is up to the teacher to decide whether to apply a penalty and the amount thereof.

Evaluation system


The final grade is the weighted sum of the grades of the activities:

WEIGHT ACTIVITY

WRITTEN TEST I 23%

WRITTEN TEST II 45%

PRACTICE 1 8%

PRACTICE 2 8%

PRACTICE 3 8%

PRACTICE 4 8%

With the above weights, laboratory (practical) activities have a weight of 32%, theoretical activities have a weight of 68%.

If the mark of the WRITTEN TEST II is lower than 4, the final grade of the subject will be that of this activity. The subject will be suspended, with the possibility of recovery.

To pass the course it is necessary that the student:

  • have delivered at least three internships, and what,
  • the minimum grade for three of the internships delivered must be a 4.

If these premises are not given, the subject will be suspended and in this case without the possibility of recovering it.

The recovery only makes it possible to recover the qualification of the theoretical activities, WRITTEN TEST I and II, and as long as this new qualification is not less than 4, the same weighting described above will be applied. Otherwise the subject will not be considered recovered.

 

REFERENCES


Basic

Enric Sesa i Nogueras. OOP: class notes and examples. ESUPT Tecnocampus.

Lina Juan: Extension of class notes. Exercises. ESUPT Tecnocampus.

Complementary

Bertrand Meyer. Object-Oriented Software Construction. PRENTICE-HALL

Bruce Eckel. Thinking in Java. Prentice-Hall