Logo

Programming 1

Code: 107888
Credits: 6
2026/2027
Degree programme Type Course
Computer Engineering FB 1

Contact lecturer

Name :
Robert Benavente Vidal
Email :
robert.benavente@uab.cat

Teaching staff

Enric Sala Esteva
Víctor Cepero Escribano
Guillem Arias Bedmar
Víctor Noguera Lopez
Yael Tudela Barroso
Albert Gil Lopez
Xavier Roca Marva

Group languages

You can consult this information at the end of the document.

Prerequisites

Since this is an introductory subject, it is assumed that no prior knowledge of the subject exists.

However, it is advisable to have user-level knowledge of some type of platform (Windows, Mac or Linux).

For in-person classroom activities, it is essential that students have their own laptop to complete the coursework.

Objectives

This is a general and introductory course to programming. It will delve into the methodological aspects of programming and the learning of a high-level language. Therefore, the general objectives proposed are the following:

  • Understanding the software lifecycle: problem analysis (understanding what is being asked of us), design (proposing a solution to the problem), implementation (coding the chosen solution in a programming language), testing (systematically carrying out a test to ensure the correctness of the implemented solution).
  • Providing students with the ability to design algorithms for problem-solving by progressively and systematically introducing a rigorous and structured programming methodology, based primarily on the top-down algorithm design technique.
  • Introducing the student to a real programming language. The goal is for the student to understand the difference between the flexibility of the pseudo-algorithmic notation used in the initial topics and the strict syntax of a real programming language, both in its lexical (valid words in the language), syntactical (rules for combining them), and semantic (signals) aspects.
  • Training students to develop programs following style rules aimed at achieving quality programs. These style rules include those that facilitate code comprehension, such as the use of comments, code indentation, and appropriate names for data types, etc.

Learning outcomes

  • CM04 (Validate the proposed solutions to problems in the field of computer science according to their requirements and the established conditions.) Validate the proposed solutions to problems in the field of computer science according to their requirements and the established conditions.
  • KM06 (Identify the basics of structured, modular and object-oriented programming, as well as development tools and environments for creating high-quality software.) Identify the basics of structured, modular and object-oriented programming, as well as development tools and environments for creating high-quality software.
  • KM07 (Identify the simple data types and complex data structures of high-level programming languages, as well as their storage in memory.) Identify the simple data types and complex data structures of high-level programming languages, as well as their storage in memory.
  • SM09 (Analyse the programming needs of an IT system from the standpoint of the customer's need.) Analyse the programming needs of an IT system from the standpoint of the customer's need.
  • SM10 (Use tools for program analysis, design, coding and debugging.) Use tools for program analysis, design, coding and debugging.
  • SM11 (Develop graphics engine and gameplay software for videogames that behaves reliably and efficiently according to specifications, while integrating ethical, social, legal and environmental aspects.) Develop graphics engine and gameplay software for videogames that behaves reliably and efficiently according to specifications, while integrating ethical, social, legal and environmental aspects.
  • SM12 (Demonstrate the ability to work cooperatively in the development of IT applications.) Demonstrate the ability to work cooperatively in the development of IT applications.

Contents

Unit 1: Introduction to computer science

History. Functional structure of the computer. Conceptual levels of the computer.

Unit 2: Problem solving: introduction to algorithms and programming.

Introduction to problem solving. Concept of algorithm. Phases in algorithm development. Programming as an engineering discipline. Software life cycle. Basic elements of an algorithm. Tools for representing algorithms. Programming languages. Classification. Language translators: Compilers and interpreters.

Unit 3: Basic concepts and control structures

Simple data types. Definition of variables and constants. Sequential structures. Conditional structures. Iterative or repetitive structures.

Unit 4: Subprograms. Procedures and functions

The concept of a subprogram as an abstraction of operations. Locality, nesting, scope, and visibility. Function definition. Function calls. Function declaration or prototype. Argument types: input, output, input/output. Passing arguments to functions: by value and by reference.

Unit 5: Complex data types

Array type. One-dimensional arrays. Multidimensional arrays. Strings. Structures. Arrays of structures.

Learning activities and methodology

Title Hours ECTS Learning outcomes
Practical Labs 12 0.48 CM04, SM09, SM10, SM11, SM12
Theory lectures 26 1.04 KM06, KM07, SM10, SM11
Practical works 25 1 CM04, SM09, SM10, SM11, SM12
Classes preparation 20 0.8 KM06, KM07
Personal study 20 0.8 CM04, KM06, KM07, SM09, SM10, SM11
Problem-solving lectures 12 0.48 CM04, KM07, SM09, SM10, SM11
Problem-solving assignments 25 1 CM04, SM09, SM10, SM11

The management of the course's teaching will be carried out through the Caronte document management system (http://caronte.uab.cat/), which will be used to view materials, manage practice groups, submit assignments, view grades, communicate with the teaching staff, etc. To use it, follow these steps:

  1. Register as a user by providing your name, ID number, and a passport photo in JPG format. If you've already registered for another subject, you don't need to do so again; you can skip to the next step.
  2. Enroll in the \"Programming 1\" course, using the subject code provided on the first day of class.

The course will be developed using a flipped classroom methodology. This means that students will need to develop some knowledge before the in-person sessions, which will primarily involve practical activities aimed at addressing as many cases as possible to understand the complexity involved in solving a programming problem.

Before class. The basic concepts are covered before the in-person sessions using materials provided a week in advance on the Caronte platform. The materials covered will include written documentation, multimedia content, and learning activities.

Each student should prepare for classes before attending, reviewing the materials as many times as necessary to assimilate the concepts. As a guide, it is recommended to dedicate a number of hours per week equivalent to the class time, approximately 2 to 3 hours per week. For each topic, a questionnaire will be provided to assess the degree of achievement of the content covered.

In class. The objective of the in-person sessions is to move from information to knowledge. We will emphasize creating knowledge applicable to the analysis and solution of specific problems. The class structure will be:

  • Review of the basic concepts of the topic to be covered (15 min). The objective is to resolve any doubts that may exist regarding theoretical aspects that are not understood and to monitor the acquisition of basic concepts.
  • Problem-solving (remainder of class time). The goal is to experiment with a practical task that allows you to apply the concepts learned to solve challenges and thus share and create knowledge.

After Class. The goal is to consolidate knowledge. The Caronte platform offers a set of assessable, self-correcting problems that should allow students to deepen their understanding of the topics and personalize their knowledge. The self-assessment allows students to adjust the pace of consolidation to each student and foster reflection on their own learning.

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.

Assessment

Continuous assessment activities

Title Weight Hours ECTS Learning outcomes
Graded in-class activities 10% 0 0 CM04, KM06, KM07, SM09, SM11
Midterm exam 15% 2 0.08 CM04, KM06, KM07, SM09, SM11
Final exam 45% 2 0.08 CM04, KM06, KM07, SM09, SM11
Practical works 15% 0 0 CM04, SM09, SM10, SM11, SM12
Problem-solving assignments 10% 0 0 CM04, SM09, SM10, SM11
Self-assessment quizzes 5% 6 0.24 KM06, KM07

Scheduled evaluation activities

The subject consists of the following assessment activities:

Activity Type Weight Minimum grade Recoverable
Midterm exam individual 15% No Yes
Final exam individual 45% 5 Yes
Lab works group 15% 5 Yes
Self-assessment quizzes individual 5% No No
Problem-solving assignments individual 10% No Yes
Graded class activities individual 10% No No

To pass the course, you must obtain a minimum grade of 5 on the final exam and the Lab works.


Scheduling evaluation activities

The schedule of assessment activities will be announced on the first day of the course and will be made public through Caronte and on the School of Engineering website, in the exams section.


Recovery process

Students may take the make-up exam provided they have completed a set of activities that represents at least two-thirds of the total grade for the subject. In particular, if the student has not taken the final exam, they will not be able to take the make-up exam.

The final exam may be retaken on the date set by the degree coordinator.

The midterm exam can be retaken through the final exam and the makeup exam. If the grade on the final exam or the makeup exam is higher than the grade on the midterm exam, the grade on the final exam or the makeup exam will replace the grade on the midterm exam.

The Lab assignments can be made up in a second submission on the date specified in the assessment activities calendar, which will be given on the first day of the course and made public through Caronte.

Problem submissions can be made at any time during the course by submitting them again and evaluating them with the auto-corrector.

According to the Degree Coordinator and the School of Engineering management, the following activities cannot be recovered:

  • Self-assessment quizzes
  • Graded class activities


Qualification review procedure

For exams (mid-semester, final, and make-up exams), a review location, date, and time will be indicated so students can review the activity with the faculty. In this context, students may submit complaints about the activity grade, which will be evaluated by the faculty responsible for the subject. If the student does not attend this review, the activity will not be reviewed later.

For all other activities, if any errors are detected in the correction, you may request a review at any time, up until the date of the make-up exam review.


Grades

Non-Evaluable (NA): A student will be considered non-evaluable (NA) if he/she has not attended any of the following evaluation activities: subject exams (midterm, final and recovery), Lab works and evaluable activities in class.

Final grade: It is calculated as the weighted sum of the assessment activities according to the criteria outlined in the assessment activities section.

If a student fails the course because one of the assessment activities does not achieve the minimum required grade, the numerical grade on the transcript will be the lower of 4.5 and the weighted average of the grades. The exceptions are that a grade of "Non-Evaluable" will be awarded to students who do not participate in any of the assessment activities, and the numerical grade on the transcript will be the lower between 3.0 and the weighted average of the grades if the student has committed irregularities in an assessment activity.

Honors Grade: Awarding an honor roll is the sole discretion of the faculty responsible for the course. UAB regulations state that honor rolls may only be awarded to students who have obtained a final grade equal to or higher than 9.00. Honor rolls may be awarded to up to 5% of the total number of students enrolled.

If the number of students with a grade of 9 or higher exceeds 5% of the total enrollment, the following prioritization criteria will be applied in the order listed below:

  1. Students who have completed fewer recovery activities.
  2. Students with the highest final grade.
  3. Students with the highest grade on the final exam
  4. Students with the highest grade on the midterm exam


Students with Disabilities or Specific Educational Needs (NESE)

Students with disabilities or specific educational needs (NESE) can contact the UAB Equality and Diversity Service, which provides specific support for developing a full and independent academic and social life at the university.


Requests for Rescheduling

There is a protocol for "requesting to reschedule assessment activities" according to the cases specified in the assessment criteria and instructions at the School of Engineering.


Irregularities committed by students

Without prejudice to other disciplinary measures deemed appropriate, and in accordance with current academic regulations, any irregularities committed by a student that may lead to a grade variation in an assessable activity will be graded with a zero (0). Assessment activities graded in this manner and by this procedure will not be recoverable. If it is necessary to pass any of these assessment activities to pass the course, the subject will be immediately failed, with no opportunity to recover it in the same academic year. These irregularities include, among others:

  • the total or partial copying of a practice, report, or any other assessment activity;
  • allow copying;
  • present group work not entirely completed by the group members (applied to all members, not just those who have not worked);
  • unauthorized use of AI (e.g., Copilot, ChatGPT or equivalent) to solve exercises, practices and/or any other evaluable activity;
  • present as one's own materials prepared by a third party, even if they are translations or adaptations, and generally works with non-original and exclusive elements of the student;
  • have communication devices (such as mobile phones, smart watches, camera pens, etc.) accessible during individual theoretical-practical assessment tests (exams);
  • talk with classmates during individual theoretical-practical assessment tests (exams);
  • copying or attempting to copy from other students during theoretical-practical assessment tests (exams);
  • use or attempt to use material related to the subject during theoretical and practical assessment tests (exams), when these have not been explicitly permitted.

In future years of this course, students who have committed irregularities in an assessment process will not have any of their completed assessment activities validated, nor will they be eligible for any specific assessment regulations for repeating students.


Uses of AI

For this subject, the use of Artificial Intelligence (AI) technologies is permitted exclusively for support tasks, such as searching for information, interpreting and explaining programs, answering questions, etc. Under no circumstances is AI permitted for programming assignments submitted as part of the assessment. Any work that includes AI-generated fragments will be considered a breach of academic honesty and will result in the application of the regulations regarding irregularities by the student.


Evaluation of repeating students

If the programming block of the subject "Fundamentals of Computer Science" (FI) was passed in the 2025-2026 academic year, you can opt for an evaluation of the subject that will consist of a summary test, plus the grade corresponding to the FI programming block obtained the previous academic year.

If the student successfully completed the "Programming 2" course in the previous or current academic year, he or she may opt for an assessment consisting of a summary test, without having to complete all the assessment activities. The final grade in this case will be 5.

To be eligible for this differentiated assessment, the interested person must request it from the teacher by email (Robert.Benavente@uab.cat / Xavier.Roca@uab.cat) no later than 15 days after the start of classes.

The remaining students repeating the course must take the entire course. No grades from previous courses will be carried over.


Single evaluation

This subject offers a single evaluation system.

The single assessment of the subject will consist of the following assessment activities:

Activity Type Weight Minimum grade Recoverable
Final exam individual 60% 5 Yes
Lab works group 15% 5 Yes
Self-assessment quizzes individual 5% No No
Problem-solving assignments individual 10% No Yes
Practical Questionnaire individual 10% 5 Yes

To pass the course, you must achieve a minimum grade of 5 on the final exam, the practical lab works, and the practical questionnaire.

The same make-up system will be applied as for continuous assessment, except for the items referring to the midterm exam. The practical questionnaire can be made up on the day of the make-up exam.

The review of the final grade follows the same procedure as for continuous assessment.

The same non-assessable criterion will be applied as for continuous assessment.

Bibliography

L. Joyanes Aguilar. Fundamentos de programación: algoritmos, estructuras de datos y objetos. 5ª Edición, McGraw-Hill, 2020. (Online version: https://www-ingebook-com.eu1.proxy.openathens.net/ib/NPcd/IB_Escritorio_Visualizar?cod_primaria=1000193&libro=10211)

L. Joyanes Aguilar, L. Rodriguez Baena, M. Fernández Azuela. Fundamentos de programación: libro de problemas. 2ª Edición, McGraw-Hill, 2003.

E. Valveny, R. Benavente, A. Lapedriza, M. Ferrer, J. García. Programació en Llenguatge C. Amb 56 problemes resolts i comentats. Servei de publicacions de la UAB, 2009.

L. Joyanes, I. Zahonero: Programación en C: metodología, algoritmos y estructuras de datos. 2ª edición, McGraw-Hill, 2005. (Online version: https://elibro.net/es/lc/uab/titulos/50302)

L. Joyanes, A. Castillo, L. Sánchez, I. Zahonero. Programación en C: libro de problemas. McGraw-Hill, 2002.

B.W. Kernighan, D.M. Ritchie. El lenguaje de programación C. 2ª edición, Prentice Hall, 1986.

B.W. Kernighan, R. Pike. La práctica de la programación. Pearson Educación, 2000.

J. Pujol. Algorismes i Programes. Servei de publicacions de la UAB, 1996.

Software

Microsoft Visual Studio: https://azureforeducation.microsoft.com/devtools

Course groups and languages

The information provided is provisional until November 30. After this date, you will be able to consult the language of each group through this link. To access the information, you will need to enter the course CODE

Type of teaching Group Language Semester Shift
(TE) Theory 41 Catalan first semester morning-mixed
(TE) Theory 43 Catalan first semester morning-mixed
(TE) Theory 45 Catalan first semester afternoon
(PAUL) Classroom practices 411 Catalan first semester morning-mixed
(PLAB) Practical laboratories 411 Catalan/Spanish first semester morning-mixed
(PAUL) Classroom practices 412 Catalan first semester morning-mixed
(PLAB) Practical laboratories 412 Catalan/Spanish first semester morning-mixed
(PLAB) Practical laboratories 413 Catalan/Spanish first semester morning-mixed
(PLAB) Practical laboratories 414 Catalan/Spanish first semester morning-mixed
(PLAB) Practical laboratories 415 Catalan/Spanish first semester afternoon
(PLAB) Practical laboratories 416 Catalan/Spanish first semester morning-mixed
(PLAB) Practical laboratories 417 Catalan/Spanish first semester afternoon
(PLAB) Practical laboratories 418 Catalan/Spanish first semester afternoon
(PLAB) Practical laboratories 419 Catalan/Spanish first semester morning-mixed
(PLAB) Practical laboratories 420 Catalan/Spanish first semester morning-mixed
(PLAB) Practical laboratories 421 Catalan/Spanish first semester morning-mixed
(PLAB) Practical laboratories 422 Catalan/Spanish first semester morning-mixed
(PLAB) Practical laboratories 423 Catalan/Spanish first semester morning-mixed
(PLAB) Practical laboratories 424 Catalan/Spanish first semester morning-mixed
(PAUL) Classroom practices 431 Catalan first semester morning-mixed
(PAUL) Classroom practices 432 Catalan first semester morning-mixed
(PAUL) Classroom practices 433 Catalan first semester morning-mixed
(PAUL) Classroom practices 451 Catalan first semester afternoon
(PAUL) Classroom practices 452 Catalan first semester afternoon