This version of the course guide is provisional until the period for editing the new course guides ends.

Logo UAB

Programming Languages

Code: 107846 ECTS Credits: 6
2025/2026
Degree Type Year
Electronic Engineering for Telecommunications FB 1
Telecommunication Systems Engineering FB 1

Contact

Name:
Vanessa Moreno Font
Email:
vanessa.moreno@uab.cat

Teachers

Sergi Carreras Sala
Marc Vallribera Ros

Teaching groups languages

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


Prerequisites

Although the course has no official prerequisite, it is assumed that the student has taken the previous course "Foundations of Computer Science" and is familiar with general computer concepts.

It is recommended that the student has access to a computer, preferably a laptop.


Objectives and Contextualisation

The course is a basic subject introducing programming in telecommunications degree programs and is taught during the second semester of the first year.

Its main objectives are:

  • To get started with a real programming language, distinguishing it from pseudo-algorithmic notation.
  • To learn programming methodology and apply it to the creation of medium-complexity programs in a high-level language.
  • To understand how a program is compiled and run from the operating system, and to become familiar with basic execution and debugging tools.
  • To encourage the writing of clear, optimal, and well-structured programs, following good practices in style and documentation.

Learning Outcomes

  1. KM07 (Knowledge) Identify basic programming patterns.
  2. KM07 (Knowledge) Identify basic programming patterns.
  3. KM08 (Knowledge) Provide a basic description of the use and programming of computers, operating systems, databases and computer programs with engineering applications.
  4. KM08 (Knowledge) Describe, at a basic level, the use and programming of computers, operating systems, databases and computer programs with application in engineering.
  5. SM05 (Skill) Use the theoretical foundations of programming and programming languages to develop software systems. Understand the basic architecture of a computer, its functional units and the theoretical foundations of programming.
  6. SM05 (Skill) Use the theoretical foundations of programming and programming languages for the development of software systems. Understand the basic architecture of the computer, its functional units and its theoretical foundations of programming.

Content

1. Introduction to Programming in C

  • Structure of a C program
  • Editing, compiling, and linking a program
  • Data types
  • Variables and operators
  • Standard libraries: inclusion and usage
  • Basic console input/output handling

2. Control Structures

  • Sequential structure
  • Conditional structures: simple, double, and multiple or nested
  • Iterative structures

3. Modular Programming

  • Function design
  • Parameter passing
  • Top-down design methodology

4. Data Structures

  • Arrays (vectors and matrices)
  • Character strings
  • Pointers
  • Structured data types
  • Passing structured data as parameters
  • Traversal and search algorithms

5. Files

  • Reading and writing text files
  • Database access

Activities and Methodology

Title Hours ECTS Learning Outcomes
Type: Directed      
Theory 36 1.44 KM07, KM08, SM05, KM07
Type: Supervised      
Problems and practices 24 0.96 KM07, KM08, SM05, KM07
Type: Autonomous      
Study & Homework 80 3.2 KM07, KM08, SM05, KM07

The virtual campus (https://cv.uab.cat/) will be used for communication with students.

Master classes:

Basic knowledge of the subject is given in class and indications of how to improve these contents.

Class problems:

The scientific and technical knowledge exposed in the master classes is worked on. Problems are solved and case studies are discussed. With the problems, the ability to analyze and synthesise, the critical reasoning is promoted, and the student is trained in solving problems.

The methodology used in problem-solving sessions involves presenting a series of exercises that students are expected to complete in advance. During class, any questions that arise are reviewed, and the exercises that posed the most difficulties are solved. In some sessions, the completed work is collected and corrected.

Occasionally, during problem sessions, group work is carried out to solve comprehensive synthesis problems.

Practices:

During the course there will be 6 practices of 2 hours. Students will work in groups of 2.

Students will develop own thinking habits of the subject. The student will be introduced in the programming language.

AI can be used as a learning tool. However, it is not permitted in the practical and assessment activities of the subject.

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

Continous Assessment Activities

Title Weighting Hours ECTS Learning Outcomes
1. First partial exam 30 2 0.08 KM07, KM08
2. Second partial exam 35 2 0.08 SM05
3. Exercises solved in class 10 2 0.08 KM07, KM08
4. Lab sessions 25 4 0.16 SM05

This subject does not contemplate the single evaluation system.

a) Scheduled evaluation process and activities

The subject consists of the following assessment activities:

Evaluation activities

Weight grade continuous evaluation

Minimum score

First Partial (P1)

30 %

3.5

Second Partial (P2)

35 %

3.5

Problem Set (PRO)

10 %

 

Laboratory Practices (LAB)

25 %

5.0

In order to pass the subject, it will be necessary to obtain a minimum grade of 3.5 in the P1 and P2 partials and a minimum grade of 5.0 in LAB.

It should be noted that LAB activity is non-recoverable. Therefore, failing it with a grade lower than that indicated above means not being able to pass the subject.

EVALUATION IN THE MIDTERM EXAMS (P1, P2)

Two written tests will be carried out as part of the continuous assessment, and they will be conducted and evaluated individually.

EVALUATION IN CLASS PROBLEM COLLECTION (PRO)

At the end of some problem-solving sessions, students will be asked to complete a short exercise and/or questionnaire on the content covered, which must be submitted before the end of the class. The exercise may be completed and assessed individually or in groups, depending on the type of activity.

EVALUATION IN PRACTICAL ACTIVITIES (LAB)

Practical activities are approved by continuous evaluation.

The evaluation activities maybe:

  • Delivery of reports and/or exercises of the practice sessions. The grade will be up to 1 point (out of 10) in total.
  • Practical class evaluation tests (they may be oral).
  • You must take all the practical assessment tests and get more than a 1.5 (out of 10) in each test to be able to make an average.
  • You must have a 5 (out of 10) of the evaluation of the internship to be able to average with the rest of the evaluation activities of the subject.

b) Programming of evaluation activities

The schedule for the midterm exams P1 and P2 will be published on the Virtual Campus and on the School of Engineering website. Evaluation dates are set at the beginning of the course and there is no alternative make-up date in case of absence. If any changes to the schedule occur due to unforeseen circumstances, updates will always be communicated via the Virtual Campus.

The evaluation of lab work (LAB) will take place during the scheduled lab sessions.

The problem-solving assignments (PRO) will be carried out during the problem sessions.

c) Recovery process

A final exam will be held where the student can recover the P1 and/or P2 partials.

In accordance with the coordination of the Bachelor's Degree and the management of the School of Engineering, the following activities may not be recovered:

  • Laboratory practices (LAB), 25% of the final grade
  • Problem collection (PRO), 10% of final grade

d) Procedure for reviewing grades

For each assessment activity, a location, date, and time for review will be provided, during which students may go over the activity with the teaching staff. In this context, students may submit grade appeals, which will be evaluated by the same instructor who assessed the activity. If the student does notattend this review session, the activity will not be reviewed at a later time.

 e) Grades


Honors. Granting a grade of honours (MH) is the decision of the teaching staff responsible for the subject. UAB regulations indicate that MHs can only be awarded to students who have obtained a final grade equal to or higher than 9.00. Up to 5% of MH of the total number of students enrolled can be awarded.

Not assessed: A student will be considered non-assessable (NA) if they have not taken any of the P1, P2 midterm exams and taken more than two lab sessions.

Final grade: the final grade will come from the weighted average of all the evaluation activities. Anyone is considered approved who:

  • has a final grade equal to/higher than 5 and
  • has approved practices (minimum have a 5) and
  • do not have any partial below the minimum grade (3.5) to make an average.

In the event of not passing the subject due to the fact that any of the evaluation activities does not reach the minimum grade required, the numerical grade of the transcript will be the lowest value between 4.5 and the weighted average of the grades.

f) Consequences of irregularities committed by students: copying, plagiarism, use of AI, etc.

Without prejudice to other disciplinary measures that may be considered appropriate, and in accordance with current academic regulations, any irregularities committed by a student that may affect their grade will result in a score of zero (0). Assessment activities marked this way will not be recoverable. If passing any of these activities is necessary to pass the course, the subject will be failed directly, without the option of recovery during the same academic year. These irregularities include, among others:

  • Total or partial copying of a lab assignment, report, or any other evaluable activity.

  • Allowing others to copy.

  • Submitting a group assignment that has not been entirely done by the group members.

  • Submitting as original any materials prepared by a third party, even if translated or adapted, or in general any work containing non-original content not exclusively created by the student.

  • Having communication devices (e.g., mobile phones, smartwatches, etc.) accessible during individual theoretical-practical exams.

  • Unauthorized use of AI tools (e.g., Copilot, ChatGPT, or equivalents) to complete exercises, labs, or any evaluable task.

If a student commits any irregularity during an assessment, the grade recorded in the transcript will be the lower value between 3.0 and the weighted average of the grades (thus, compensation to pass the subject will not be possible).

In future editions of this course, students who have committed irregularities during an assessment will not have any of their previously completed assessment activities validated. In short: copying, letting someone copy, or plagiarizing (or attempting to) in any evaluable activity results in a FAIL, not compensable, and with no partial validations in future editions of the subject. 

g) Evaluation of repeating students

At the beginning of the academic year, if possible, it will be notified if there is validation of internships. If applicable, the validation of internships will only be carried out when it is requested and approved fromthe previous year.

 

 


Bibliography

The bibliography to be used in the course will be:

Core textbooks:

  • Rodríguez-Losada González, D., Cena, C. E. G., & Muñoz Cano, J. (2022). Introducción a la programación en C. UPM Press. Available in digital format.

  • Muñoz Frías, J. D., & Palacios Hielscher, R. (2006). Fundamentos de programación utilizando el lenguaje C. Universidad Pontificia Comillas. Available in digital format.

  • Antonakos, J. L., Mansfield, K. C., Carretero Pérez, J., García Carballeira, F., Pérez Costoya, F., & Joyanes Aguilar, L. (2007). Programación estructurada en C. Prentice-Hall.

Supplementary books:

  • Quero Catalinas, E. (1998). Programación en lenguaje C: ejercicios y problemas. Paraninfo.


Software

For C programming, the development environment used will mainly be Visual Studio Code (https://code.visualstudio.com/).


Groups and Languages

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 311 Catalan/Spanish second semester morning-mixed
(PAUL) Classroom practices 312 Catalan/Spanish second semester morning-mixed
(PAUL) Classroom practices 331 Catalan second semester morning-mixed
(PAUL) Classroom practices 332 Catalan second semester morning-mixed
(PLAB) Practical laboratories 311 Catalan/Spanish second semester morning-mixed
(PLAB) Practical laboratories 312 Catalan/Spanish second semester morning-mixed
(PLAB) Practical laboratories 313 Catalan/Spanish second semester morning-mixed
(PLAB) Practical laboratories 314 Catalan/Spanish second semester morning-mixed
(PLAB) Practical laboratories 315 Catalan/Spanish second semester morning-mixed
(PLAB) Practical laboratories 316 Catalan/Spanish second semester morning-mixed
(PLAB) Practical laboratories 317 Catalan/Spanish second semester morning-mixed
(TE) Theory 31 Catalan/Spanish second semester morning-mixed
(TE) Theory 33 Catalan second semester morning-mixed