Degree | Type | Year | Semester |
---|---|---|---|
2503758 Data Engineering | FB | 1 | 2 |
The subject does not have any official prerequisite. However, students should be familiar with the most basic programming structures. Thus, it is recommended for students to have taken the course “Fundamentals of programming”.
This subject must be regarded as the logical continuation of the subject of Fundamentals of Programming. The basic objective is to expand the basic notions of programming introduced in Fundamentals of Programming and to complete them with the principles of object-oriented programming (OOP).
Object-oriented programming is one of the most widespread design and programming methodologies. In object-oriented programming, software is organized into classes that contain methods (procedures) and attributes (data). The instances or objects of these classes send messages to each other (they make "calls" to methods of other objects) thus achieving the desired functionality. Apart from the concept of class, three other fundamental elements of the OOP are inheritance, composition and separation of the public and private parts of the classes.
During the course, we will explain all these concepts of the OOP and we will see how we can use them to build solutions that are easily extensible, since a basic law of software is that changes are inevitable. Therefore, we will also explain a set of design principles or heuristics that tell us how the elements of the OOP have to be used. These principles are used to design common solutions to recurrent problems, which often appear in seemingly independent applications.
In this way, the training objectives of the subject are the following:
The teaching methodology of the subject starts from the principle that "programming is the only way to learn to program" and, therefore, will be mainly focused on the practical work of the student. Classroom sessions will be organized to discuss the theoretical contents of the subject, from a very practical perspective with examples, and exercises and programming problems that must be solved in class directly with the computer. On the other hand, a programming project will be carried out that will have to be developed mainly autonomously throughout the course (with follow-up and control by the professor in specific sessions) and which will involve practically integrating almost all concepts and programming tools introduced in lectures to solving a complex real problem. In addition, a set of exercises will have to be solved individually throughout the course (some of them will be evaluated and discussed in lectures). They should serve to understand, integrate and apply the concepts developed during the course.
Lectures will be organized in four hours a week with no distinction among theory, problems and practices. It is encouraged that the student bring his own laptop to class if he has one. In the lectures, the concepts of the syllabus of the subject will be discussed. In some cases, explanatory videos or other supplementary material may be made available to the student to watch before the class session. Lectures will have a very practical approach with examples and exercises that will be presented to students to facilitate understanding and learning of the concepts.
The student must complete the lectures with autonomous personal work to do the exercises that are proposed and that should serve to understand the contents of the course. It must be borne in mind that the syllabus of the subject hasa logical continuity throughout the course, so that to follow correctly a class it is necessary to understand what was explained in the previous sessions. Some ofthese exercises must be submitted individually as part of the evaluation of the course.
In addition, students must develop in groups of 2 people a programming project that will be developed autonomously throughout the course apart from the lectures. The programming project will allow addressing a programming problem of a certain complexity that integrates most of the concepts explained during the course. During the course, some lectures sessions will be devoted to the control, monitoring and evaluation of the work carried out by the student in the programming project.
Annotation: Within the schedule set by the centre or degree programme, 15 minutes of one class will be reserved for students to evaluate their lecturers and their courses or modules through questionnaires.
Title | Hours | ECTS | Learning Outcomes |
---|---|---|---|
Type: Directed | |||
Lectures | 50 | 2 | 2, 6, 8, 3, 5, 9 |
Type: Supervised | |||
Implementation of the programming project | 50 | 2 | 2, 1, 4, 5, 7 |
Type: Autonomous | |||
Individual study | 14 | 0.56 | 8, 7 |
Problem resolution | 32 | 1.28 | 2, 1, 4, 5, 7 |
Subject assessment will take into account three types of assessment activities: resolution of problems, individual assessment and programming project. The final grade of the subject is obtained by combining the grade of these 3 activities as follows:
Final Grade = (0.3 * Problems) + (0.4 * Project) + (0.3 * Individual assessment)
Problems: this section includes the assessment of the exercises that are proposed throughout the course
Individual assessment = (0.5 * Partial Test 1) + (0.5 * Partial Test 2)
Not assessed: A student will be considered not assessed (NA) if he does not submit at least 50% of the deliveries of exercises and does not do any of the evaluation tests: partial test 1, partial test 2, final test, final delivery of the project.
Suspended: If the final grade is equal to or greater than 5 but the student does not reach the minimum required in any of the assessment activities, the final grade will be suspended and , the grade in the Transcript of Records (ToR) will be 4.5.
Pass the course with honors: In order to pass the course with honours, the final grade must be a 9.0 or higher. Because the number of students with this distinction cannot exceed 5% of the number of students enrolled in the course, this distinction will be awarded to whoever has the highest final grade.
Compensations: For the students who are following the course for the second time or more, the project of the previous year can be compensated if these conditions are met:
In this case, the grade of the project will be 5, independently of the grade of the previous year.
Review of assessment: For each assessment activity, a place, date and time of review will be indicated allowing students to review the activity with the lecturer. In this context, students may discuss the activity grade awarded by the lecturers responsible for the subject. If students do not take part in this review, no further opportunity will be made available.
Important note: copies and plagiarism
Notwithstanding other disciplinary measures deemed appropriate, and in accordance with the academic regulations in force, assessment activities will receive a zero whenever a student commits academic irregularities that may alter such assessment. Assessment activities graded in this way and by this procedure will not be re-assessable. If passing the assessment activity or activities in question is required to pass the subject, the awarding of a zero for disciplinary measures will also entail a direct fail for the subject, with no opportunity to re-assess this in the same academic year. Irregularities contemplated in this procedure include, among others:
In these cases, the grade in the Transcript of Records (ToR) will be the lowest value between 3.0 and the weighted average grade (and therefore re-assessment will not be possible).In the assessment of problems and the project, tools to detect code plagiarism will be used.
Title | Weighting | Hours | ECTS | Learning Outcomes |
---|---|---|---|---|
Individual assessment | 30% | 4 | 0.16 | 2, 9 |
Problem resolution | 30% | 0 | 0 | 2, 1, 6, 4, 5 |
Programming project | 40% | 0 | 0 | 1, 8, 3, 4, 5, 7 |
Any programming environment in Python could be used.