General information

Subject type: Mandatory

Coordinator: Adso Fernández Baena

Trimester: First term

Credits: 4

Teaching staff: 

Enric Sesa Nogueras

Teaching languages

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.


Learning outcomes

At the end of the course students must be able to:

  • E6.1. Design the software architecture of a video game according to some specifications
  • E6.2. Interpret the software analysis for further development
  • E6.6. Develop 2D and 3D video games (or parts of them) in a high-level language on platforms and engines designed for this purpose. 


Working methodology

The subject uses these two methodologies: the master class and problem solving. 


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

Learning activities

With the aim of collecting evidence of the achievement of the expected learning outcomes, the following activities of an evaluative nature will be carried out (related to all the common competences):

A1. Mid-term exam (evidence of early stages of E6.1 and E6.6 learning outcomes)

If for some reason this test could not be taken, its weight in the evaluation will be subsumed by the final exam. 

A2. Final exam quarter (evidence of early stages of E6.1 and E6.6 learning outcomes)

The results of these two tests will be the primary basis for determining the final grade of the subject. They will focus on the contents presented until the moment of their realization, strongly focused on the initial stage of the general competence to which this subject contributes, looking for evidence of the achievement of the learning result previously specified: "Codify programs in a high - level imperative programming language to solve simple problems ". As far as possible, each test will consist of two parts, one performed on paper and another performed with the help of a software development tool (integrated development environment).

A3. Practice of elementary concepts and FDI (evidence of the early stages of learning outcomes E6.1, E6.2 and E6.6)

A4. Practice of conditional structures (evidence of the early stages of learning outcomes E6.1, E6.2 and E6.6)

A5. Practice of iterative structures (evidence of the early stages of learning outcomes E6.1, E6.2 and E6.6)

A6. Practice procedures and tables (evidence of the early stages of learning outcomes E6.1, E6.2 and E6.6)

 These internships will be carried out mostly outside the classroom (during the student's personal working time), individually or in small groups.


General criteria of the activities

- The teacher will present a statement for each statement and the evaluation and / or rubric criteria

- The teacher will inform of the dates and the format of delivery of the activity


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 professor will communicate the situation to the Head of Studies so that he 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, S. (2013). Fundamentals of computer programming with C #: The Bulgarian C # programming book. Sofia, Bulgaria: Svetlin Nakov &. Co.

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

Perkins, B., Hammer, JV, & Reid, JD (2018). Beginning c # 7 programming with visual studio. Indianapolis, IN, USA: John Wiley and Sons.

Michaelis, M., Lippert, E., & Torgersen, M. (2018). Essential C # 7.0. Boston, USA: Addison-Wesley.


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