Degree | Type | Year |
---|---|---|
Computer Engineering | FB | 1 |
You can view this information at the end of this document.
Important information: The teaching guide was written with Catalan as the base language. The English translation may not be perfect, despite being manually translated and thoroughly reviewed. If you notice any errors or inconsistencies, please contact the teacher in charge.
The course does not have any official prerequisites. However, it is assumed that the student has taken the previous course (Programming I) and, therefore, is familiar with the basic structures of programming.
This subject is part of subject 3 (Computer Science) of the Computer Engineering Degree and should be seen as the logical continuation of Programming I. The basic objective is to delve deeper into the basic notions of imperative programming introduced in Programming I and introduce the principles of object-oriented programming. Thus, the training objectives proposed for the subject are the following:
Topic 0: Review of basic programming structures
Topic 1: Introduction to object-oriented programming
Topic 2: Dynamic data structures
Title | Hours | ECTS | Learning Outcomes |
---|---|---|---|
Type: Directed | |||
Individual study to prepare for assessment tests | 11 | 0.44 | KM06, KM07, SM09, SM11, KM06 |
Theory and Exercises Sessions | 50 | 2 | CM04, KM06, KM07, SM09, SM10, SM11, CM04 |
Type: Supervised | |||
Follow-up of the resolution of the programming project | 1 | 0.04 | CM04, SM09, SM10, SM11, CM04 |
Type: Autonomous | |||
Implementation of the programming project | 48 | 1.92 | CM04, KM06, KM07, SM09, SM10, SM11, SM12, CM04 |
Problem solving | 36 | 1.44 | CM04, KM06, KM07, SM10, SM11, CM04 |
The teaching methodology of the course is based on the principle that “programming is the only way to learn how to program” and, therefore, it will focus primarily on the student’s practical work. The in-person sessions will be organized to introduce the theoretical content of the course from a very practical perspective, using examples, exercises, and programming problems that will be solved in class directly on the computer. One of the course’s objectives is to separate theoretical concepts (such as the definition of a class or file handling) from their implementation in a specific programming language, although the main language used in the course will be C++.
In addition to explaining theoretical concepts and solving small example problems during class, students will also carry out a programming project that must be developed mainly independently throughout the course (with occasional monitoring and guidance from the instructor). This project will allow students to practically integrate almost all the programming concepts and tools introduced in the in-person sessions by solving a real and complex problem.
Finally, a set of exercises and complementary activities (such as quizzes) will also be proposed, which must be completed individually throughout the course. Some of these exercises will be assessed and discussed during the in-person sessions and are intended to help students understand, integrate, and apply the concepts developed in class. In all course activities (in-person sessions, problems, and practicals), the main programming language will be C++, although complementary explanations will be provided on how to implement the most important concepts using Python.
Regarding in-person attendance, the course will not distinguish between theory, problem-solving, and practical sessions. The in-person sessions will be organized into four weekly hours in groups of around 40 students. During these sessions, the concepts outlined in the course syllabus will becovered. In some cases, explanatory videos may be made available to students, which they will need to watch before class. The sessions will have a very practical approach, with examples and exercises designed to facilitate the understanding and learning of the explained concepts. These exercises will be completed and discussed during the session and will serve to introduce the course content and demonstrate its practical application. Students are encouraged to bring their own laptops to class, if they have one, to complete the proposed exercises.
Students will need to complement the in-person classes with independent work, completing the proposed exercises, which are intended to help consolidate their understanding of the course content. It is important to note that the syllabus follows a logical progression throughout the course, so in order to follow a class properly, students must have assimilated the content from previous sessions. Some of these exercises will need to be submitted individually as part of the course assessment.
Additionally, students will work in pairs to complete a programming project that will be developed independently throughout the course, outside of the in-person sessions. This project will address a programming problem of a certain complexity, integrating most of the concepts explained during the course. Some in-person sessions will be dedicated to monitoring, tracking, and evaluating the work done on the project.
The course will be managed through the Caronte platform (http://caronte.uab.cat/), which will be used to access materials, manage practical groups, submit assignments, check grades, communicate with instructors, etc.
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 | Weighting | Hours | ECTS | Learning Outcomes |
---|---|---|---|---|
Assessable activities to be carried out in class | 10% | 0 | 0 | CM04, KM06, KM07, SM09, SM10, SM11 |
First partial exam | 30% | 2 | 0.08 | CM04, KM06, KM07, SM09, SM11 |
Problem solving | 10% | 0 | 0 | CM04, KM06, KM07, SM09, SM10, SM11, SM12 |
Programming project | 15% | 0 | 0 | CM04, KM06, KM07, SM09, SM10, SM11, SM12 |
Second partial exam | 30% | 2 | 0.08 | CM04, KM06, KM07, SM09, SM11 |
Self-assessment questionnaires | 5% | 0 | 0 | KM06, KM07 |
The assessment of the course will be based on three types of activities:
The final grade for the course will be calculated by combining these three activities as follows:
Final Grade = (0.25 × Continuous Assessment) + (0.15 × Project) + (0.6 × Individual Assessment)
This section includes:
There is no minimum grade required in this section, but activities with expired deadlines cannot be recovered. Active participation in these activities is recommended, as they are key to assimilating knowledge in real time and provide valuable feedback to the teaching staff to adapt activities and delve deeper into concepts that may not have been fully understood.
Includes the results of individual tests taken during the course:
If only one of the partial exams has been failed, the final exam will serve to recover only the corresponding part.
To pass the course, students must:
Calculation of the individual assessment grade:
Individual Assessment = (0.5 × Partial 1) + (0.5 × Partial 2)
Includes:
To pass the project, students must:
If the final submission grade is equal to or greater than 3, it may be recovered. In this case, the maximum grade that can be obtained is 7.
Students who choose the single assessment option must:
This test will consist of two parts, corresponding to the two partial exams. A minimum grade of 4.5 must be obtained in each part to pass.
Calculation of the final grade in the single assessment:
Final Grade = (0.2 × Problem Submission on Caronte) + (0.2 × Project) + (0.6 × Individual Assessment)
The minimum grades required to pass are the same as in the continuous assessment. The same recovery system will also apply.
Not Evaluable:
A student will be considered Not Evaluable (NE) if they do not participate in any of the assessable activities of the course.
Fail:
If the course is not passed because one or more of the assessment activities do not meet the minimum required grade, the numerical grade recorded in the transcript will be the lower value between 4.5 and the weighted average of the grades.
Honours Distinctions:
The awarding of an Honours Distinction is at the discretion of the faculty responsible for the course. UAB regulations state that Honours Distinctions (HD) may only be awarded to students who have obtained a final grade equal to or higher than 9.00. Up to 5% of the total number of enrolled students may receive an HD. The criterion used to award them will be the final grade of the course.
For each assessment activity, the location, date, and time for review will be indicated, during which the student may review the activity with the teaching staff. In this context, students may submit grade appeals, which will be evaluated by the course instructors. If the student does not attend the scheduled review, the activity will not be reviewed later.
This course does not offer differentiated treatment for repeating students. No project from previous years will be validated, as this is a new course with a renewed teaching team and methodology.
Without prejudice to other disciplinary measures deemed appropriate, and in accordance with current academic regulations, any irregularity committed by a student that may affect the grade of an activity will be sanctioned with a grade of zero (0). These activities cannot be recovered. If the activity in question is required to pass the course, the course will be automatically failed, with no possibility of recovery during the same academic year.
Irregularities include, among others:
In these cases, the numerical grade in the academic record will be the lower of 3.0 or the weighted average of the grades, and therefore passing by compensation will not be possible.
For the evaluation of problem and practice submissions, code plagiarism detection tools will be used.
The dates for continuous assessment activities and project submissions will be published at the beginning of the course. These dates may be subject to change due to unforeseen circumstances. All changes will be communicated via the Caronte platform, which is considered the standard channel of communication between faculty and students.
In this course, the use of AI technologies is allowed exclusively as support, for example, for information search, program interpretation, doubt resolution, etc. The use of AI to complete programming tasks that are part of the assessment is not allowed.
Any work that includes AI-generated content will be considered a breach of academic integrity and treated as an irregularity under current regulations, potentially resulting in failing the course.
The following situations must be managed through the Academic Administration Office of the School of Engineering, which will inform the student of the applicable protocols and regulations:
The teaching staff does not have the authority to make decisions on these matters and will comply with the resolutions of the School’s competent bodies.
Any development environment in C++ and Python (Visual Studio Code)
Please note that this information is provisional until 30 November 2025. You can check it through this link. To consult the language you will need to enter the CODE of the subject.
Name | Group | Language | Semester | Turn |
---|---|---|---|---|
(PAUL) Classroom practices | 411 | Catalan/Spanish | second semester | morning-mixed |
(PAUL) Classroom practices | 412 | Catalan/Spanish | second semester | morning-mixed |
(PAUL) Classroom practices | 431 | Catalan/Spanish | second semester | morning-mixed |
(PAUL) Classroom practices | 432 | Catalan/Spanish | second semester | morning-mixed |
(PAUL) Classroom practices | 451 | Catalan/Spanish | second semester | afternoon |
(PAUL) Classroom practices | 452 | Catalan/Spanish | second semester | morning-mixed |
(PAUL) Classroom practices | 471 | Catalan/Spanish | second semester | morning-mixed |
(PAUL) Classroom practices | 472 | Catalan/Spanish | second semester | afternoon |