General information

Subject type: Mandatory

Coordinator: Juan José Pons López

Trimester: First term

Credits: 4

Teaching staff: 

Enric Sesa Nogueras

Teaching languages

  • Catalan

Documentation mostly in English. Language used in class: Catalan. Exams and internships in English. 


Specific skills
  • E6. Develop video games in high-level programming languages ​​in graphics engines based on specifications.

General competencies
  • G5. Develop the learning skills needed to undertake further studies with a high degree of autonomy.

Transversal competences
  • T1. Communicate in a third language, preferably English, with an appropriate level of oral and written communication and in accordance with the needs of graduates.


First subject in the field of programming. It is the basis of all programming subjects that fall into the same subject to which it belongs (Development). Starting from scratch, it presents the most basic topics of programming within the imperative paradigm: variables and types, elementary operations, flow control and procedural abstraction. The theoretical aspects are worked on, in an expository way, and their subsequent practical application, aimed at solving, often guided, small problems. Class sessions combine both aspects in order to achieve a good balance between them. The subject is evaluated from the realization, asynchronous, of small practical works similar to those worked in the synchronous sessions and of written tests eminently oriented to the resolution of problems.



Subject 1. Basic concepts of the imperative programming

1.1 Variables, types and assignment

1.2 Evaluation of expressions

1.3 Reading and writing

1.4 Forms of execution and control structures: sequential, conditional / alternative and iterative

1.5 Basic iterative schemes: route and search


Item 2. Functional decomposition and top-down design. Procedural abstraction.

2.1 Decomposition of problems into subproblems

2.2 Functions and procedures. Invocation

2.3 Parameterization


Topic 3. Tables

3.1 One-dimensional tables

3.2 Multidimensional tables

3.2 Iterative schemes applied to tables

Evaluation system

The grade of each student will be calculated following the following percentages:

A1. Partial exam: Mid-term exam 25% 

A2. Final exam: Final exam quarter 25%

PR. Laboratory practices: Activities A3, A4, A5 and A6 50% (10% + 10% + 15% + 15%)

Final grade = MAX ((A1 + A2) / 2, A2) · 0.5 + PR · 0.5


- MAX ((A1 + A2) / 2, A2)> = 5 is required to pass the subject. If this grade does not reach 5 then she herself will be the final grade. 

- An activity not delivered or delivered late and without justification (court summons or medical matter) counts as a 0.

- To have a final grade other than "not presented" you must have taken the A1 exam or the A2 exam or have justified (court summons or medical matter) the absence in both tests.

- It is the student's responsibility to avoid plagiarism in all its forms. In the case of detecting plagiarism, regardless of its scope, in any assessment activity (including practices), article 8 of the assessment regulations will apply, which entails the automatic suspension of the subject without the possibility of recovery. In addition, the teacher will communicate the situation to the Coordination of the Degree so that it can take applicable measures in terms of disciplinary regime. In the context of this subject, plagiarism also means using and/or adapting code that has not been developed entirely individually (or within the group in the case of group activities). Facilitating code that results in plagiarism is also a form of plagiarism and will be treated in the same way. In summary, we can say that assessment activities must be solved in a strictly non-collaborative way (in the case of group activities, collaboration cannot go beyond the group itself). 


- The part of practices of the asignatura (qualification PR) is NOT recoverable.

- The theory part of the subject (MAX grade ((A1 + A2) / 2, A2)) is recoverable. The recovery will take place on the date and place set by the School Studies Department. For students attending the resit exam their A2 grade will be the one obtained in this test and their final grade will be calculated using the formulas detailed above. The final grades in the range [5, 7.5) will be rounded to 5. The final grades in the range [7.5, 10] will be rounded to 7.

- Only those students who have obtained a grade other than "not presented" in the ordinary assessment will be able to take the resit exam.



Nakov, Svetlin (2013). Fundamentals of computer programming with C#: The Bulgarian C# programming book. Sofia, Bulgaria: Svetlin Nakov &. co.

Solis, Daniel, Schrotenboer, Cal (2018). Illustrated C# 7: The C# Language Presented Clearly, Concisely, and Visually. Berkeley, CA, USA: Apress.

Perkins, Benjamin, Hammer, Jacob Vibe, & Reid, Jon D. (2018). Beginning c# 7 programming with visual studio. Indianapolis, IN, USA: John Wiley and Sons.

Michaelis, Mark, Lippert, Eric, & Torgersen, Mads (2018). Essential C# 7.0. Boston, USA: Addison-Wesley.

Sesa and Nogueras, Enric. Fundamentals of Programming: class notes and exercises. Internal publication of the TCM. It will be made available to students through the eCampus platform