Table of Contents
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:
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
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
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.
Data Structures and Problem Solving Using Java by Mark A. Weiss (3th edition)
Data Structures and Algorithms in Java by Michael T. Goodrich and Roberto Tamassia (4th edition)
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.
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 |
Part |
% of Global Score |
|
---|---|---|---|
70% |
Continuous evaluation |
Class participation |
5% |
1st. mid-term exam |
15% |
||
2nd. mid-term exam |
20% |
||
Project (source code + lab exam) |
30% |
||
30% |
Final exam |
Theory |
15% |
Problems |
15% |
Project evaluation will be based on the following grades:
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)
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 | 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 |
Schedule is available in this link: