Universidad Carlos III de Madrid

Ingeniería de Telecomunicación

Enero-Mayo 2010 / January-May 2010

General Information

Objectives Section Learning Objectives

The main objective of this subject is to further advance in the study of the programming language and its use for programming small systems.

Once the principles of a programming language like Java has been studied in the first semester, especially from an imperative point of view, in this second semester the obective is first to get a more thorough understanding of the object oriented paradigm. in particular studying the concepts of inheritance and interface. The principles of graphical interfaces will be studied, as well as the concept of recursion and the classification of programs according to its complexity.

In the second half of the subject, some basic data structures will be studied. Often, when programming applications one encounters collections of data that are accessed in the same way. It makes sense therefore, to study these data structures in an abstract and general way, independently of the nature of the concrete data in the structures. Due to timing constraints, only simple data structures will be studied, namely stacks, queues and trees.

The subject is structured into a review unit and 5 thematic units:

For each of these units, very precise learning objectives have been defined. They can be found in the material corresponding to each of the units. These learning objectives serve as a reference to the student, since they represent partial goals to fulfill. The evaluations are also based on these learning objectives. Therefore it is strongly recommended to take them seriously.

The learning objectives have been classified according to the Bloom taxonomy. Benjamin Bloom was an educator, who defined 6 learning levels for the cognitive domain:

  • 1. Knowledge
  • 2. Comprehension
  • 3. Application
  • 4. Analysis
  • 5. Synthesis
  • 6. Evaluations

The lower levels in this scale are the more fundamental ones and a pre-requisite for the higher ones. Therefore, these are considered more important for the student to master, and will get more importance in the evaluations.

Apart from the learning objectives of the different thematic units, there are other general skills which are pursued. These are summarized here:

  • Work with technical documentation

  • Work in groups

  • Study tradeoffs in programming

  • Debug programs

  • Use information and communications tools

Methodology Section Teaching Methodology

The teaching methodology of this course is based in the active integration of the student in the teaching activity and in the application of the principles of continuous evaluation.

The course is divided into units, where each unit consists of lectures in large groups and lab sessions in small groups. All the necessary information and material will be available from the web site of the course. The material for the lectures (slides, etc.) is available in advance, and the student participation in the class activities (questions, minitest, problem-solving in groups) will be positively taken into account. The lab scripts with the exercises and programs to be carried in pairs in the lab are also available in advance. Additionally to the lectures and lab sessions, the web page proposes some homework activities. . The lecture includes also the realization of a programming projects. The projects will be partially developed inside some of the lab sessions in small groups.g

For more information see: Ficha Reina

Readings Section Readings

The main bibliographic sources are the two books given below. Reference to the relevant chapter of these books are given in the material of the thematic units.

We advise the students to program according to the usual Java conventions. The document Java Coding Guidelines presents a brief introduction to the most important conventions, as well as instructions on how to configure Eclipse according to them.

Evaluation Section Evaluation

The evaluation of the course is based on the principle of continuous evaluation. Besides the participation in class and in the programming projects, two partial written tests and one lab exam will take place.

The distribution of the marking will be as follows:

  • 70%: continuous evaluation

  • 30%: final exam, composed of a theory part (15%) and an exercises part (15%).

    Important: All weights and percentages in this evaluation criteria refer to the final global score.

% of Global Score


% of Global Score


Continuous evaluation

Class participation


1st. mid-term exam


2nd. mid-term exam


Project (source code + lab exam)



Final exam





Project evaluation will be based on the following grades:

  • The modules submitted along the course.
  • The lab exam, which is individual and consists on applying several modifications to the submitted code in the lab.

A minimum score of 3.5 points out of 10 in the final exam is required to pass the course with the continuous evaluation system.

Those students who fail to resolve all the exercises in the lab exam will have a global grade for the project of 0. For the rest of students (those who solve correctly at least one exercise of the lab exam), the 30 points corresponding to the project will be distributed: lab exam, 15 points; source code submissions 15 points.

In any case, the regulations for the evaluation of bachelor studies approved by the University on May 31st, 2011 applies.

Along the evaluation process, students are expected to behave according to the ethics of the University y Good Practices Guide..

In particular, students are expected to fulfil the evaluation norms and to reject fraudulent behaviours, such as plagiarism or any other kind of cheating. Likewise, the student is responsible for guarding their evaluation assets in order to avoid such fraudulent actions from other peers.

Any behaviour breaking these rules will be penalised and brought to the attention of the relevant bodies, to these they should take appropriate action in accordance with current regulations. Where it is established that a student has committed a fraud situation that impedes the exercise by the teachers, from the power of knowledge verification, the calification will be fail (0)

Staff Section Teaching Staff

All the instructors involved in the subjects are listed below, together with their contact data and office hours. Instructors will be at their offices at those times.

Role Name Office Phone E-mail Office hours
Coordinator of Systems Programming. Course responsible for groups 66, 67 and 68. Lecturer and tutor in groups 66, 67 and 68. Mª Carmen Fernández Panadero 4.1F06 91-624-8744 mcfp@it.uc3m.es Tue 08:30-11:00; Thu 16:00-17:30
Lecturer and tutor in groups 65, 69, 79 and 95. Course responsible for these groups Raquel M. Crespo García 4.1F17 91-624-5940 rcrespo@it.uc3m.es Thu 11:00-13:00
Course responsible of groups 61, 62. Lecturer in groups 61 and 62. Tutor in groups 61, 62 and 71. José Jesús García Rueda 4.0F02 91-624-6232 rueda@it.uc3m.es Thu 11:00-14:00
Lecturer in groups 71 and 72. Course responsible and tutor for group 71. Jesús Arias Fisteus 4.1F17 91-624-5940 jaf@it.uc3m.es Wed 11:00-13:00; Wed 16:00-18:00
Lecturer in groups 91-92-93. Vicente Luque Centeno 4.1C04 91-624-5972 vlc@it.uc3m.es Tue 14:15-16:15; Tue 17:45-19:45
Tutor in group 65-69-79 Julio Villena Román 4.1F17 91-624-5940 jvillena@it.uc3m.es Thu 12:00-14:00; Thu 16:00-18:00
Tutor in groups 95 and 67 Alberto Cortés Martín 4.0F06 91-624-6234 alcortes@it.uc3m.es Thu 11:00-13:00
Tutor in group 72 Carlos Alario Hoyos 4.0.F03 91-624-6237 calario@it.uc3m.es Mon. 16:00-18:00
Tutor in group 91 Jesús Manuel Moreno Garrido 4.0.F07 91-624-8387 jmmgarri@it.uc3m.es Wed. 19:30-21:00
Tutor in group 92 Francisco Javier Sedano Jarillo 4.0F07 91-624-8387 fsedano@it.uc3m.es Thu 19:30-21:00
Tutor in group 93 Jose María Rubio Manso 4.1F17 91-624-5940 jrubio@it.uc3m.es Wed 19:30-21:00