General information


Subject type: Optional

Coordinator: Juan José Pons López

Trimester: Second term

Credits: 6

Teaching staff: 

Rafael González Fernández

Academic year: 2025

Teaching course: 4

Languages ​​of instruction


  • Spanish
  • Catalan

The materials can be provided in Catalan as well as in Spanish or English. 

Competencies / Learning Outcomes


General competencies
  • G1. Demonstrate having and understanding advanced knowledge of their area of ​​study that includes the theoretical, practical and methodological aspects, with a level of depth that reaches the forefront of knowledge.

  • G2. Solve complex problems in their field of work, by applying their knowledge, developing arguments and procedures, and using creative and innovative ideas.

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

Presentation of the subject


The subject is designed for profiles of technology-oriented students (developer profile) who want to delve into the programming of games and the most advanced languages. The student will learn to program with the C ++ language and through this, will understand the concepts of memory management and other characteristics of object-oriented programming. With this, the student will deepen and consolidate the concepts of programming seen throughout the degree. Projects will be created directly on Visual Studio without any other engine or intermediate engine, thus giving a view of the code and its organization at a lower level.

The sessions will be mainly theoretical where the concepts will be presented with practical examples. In order to achieve the knowledge of the subject, several practical exercises will be evaluated on the one hand during the course, together with an individual final practice and a theoretical exam. 

The subject is contextualized within the branch of video game development. It is related to the subjects of game development, game engines, programming with interpreted languages ​​and advanced graphic programming (optional).

 

Contents


Topic 1. Computer Architecture

1.1. Turing machine

1.2. Architecture Von Newmann

1.3. X86 assembler

Topic 2. Introduction to C ++

2.1. Historical introduction

2.2. Low vs high level

2.3. Structure of a project

2.4.Microsoft Visual Studio

Item 3. Basics of C ++

3.1 Variables

3.2. Functions

3.3. Pointers

3.4. Arrays

3.5. Memory management

3.6. Keywords

3.7. Strings

Subject 4. Orientation to Objects

4.1. Classes

4.2. Inheritance

4.3. Namespaces, scopes and validity

Topic 5. Advanced C ++

5.1. Smart Pointers

5.2. Pointers to functions

5.3 Lambdas

5.4. castings

Subject 6. Projects in C ++

6.1. Precompiled headers

6.2. Data structures

6.3. Files

Item 7. Good Practices

7.1. SOLID Principles

Item 8. Practice

Activities and evaluation system


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

A1. Exercise in class: Turing machine - 5%

A2. Exercise at home: Human Resource Machine - 5%

A3. Exercises at Home: Perfect Numbers - 2.5%

A4. Exercises at home: Pascal Triangle - 2.5%

A5. Individual Work: Raining Letters - 10% 

A6. Individual Work: Snake - 10% 

A7. Final Practice - 35%

A8. Final Exam - 30%

Final grade = A1 0,05 + A2 0,05 + A3 0,025 + A4 0,025 + A5 0,10 + A6 0,10 + A7 0,35 + A8 0,30

Considerations:

  • It is necessary to obtain a mark higher than 5 in the final exam to pass the subject.
  • An activity not delivered or delivered late and without justification (court summons or medical matter) counts as a 0.
  • It is the responsibility of the student to prevent plagiarism in all its forms. In the case of detecting a plagiarism, regardless of its scope, in some activity it will correspond to have a note of 0. In addition, the professor will communicate to the Head of Studies the situation so that measures applicable in matter of sanctioning regime are taken. .
  • The use of generative artificial intelligences (IAGs) should be limited to those aspects that are not fundamental in the context of the subject. They can be used, critically, as a mechanism to resolve doubts about the subject and/or as an aid in the generation of auxiliary code that is outside the scope of the subject topics. In any case, it will be essential to mention its nature as “generated through IAG”, specifying the model used and the prompt provided, even if it has subsequently been customized and/or modified.
  • IAGs may not be used to generate programming code, not even in the form of fragments, when this code is within the scope of the subject topics and/or has an assessable nature. This prohibition, which extends to the writing and preparation of documents, remains even if the code is subsequently personalized and/or modified. In case of doubt regarding the legitimacy or not of the use of IAGs, it is necessary to contact the subject teaching staff beforehand. Failure to comply with these regulations and, therefore, the improper use of IAGs, will be considered academic fraud.
  • Any form of academic fraud will be sanctioned in accordance with the center's assessment regulations. If signs of fraud are detected, including the improper use of generative artificial intelligence tools, the subject's teaching staff may call the student for an individual interview with the aim of verifying their authorship.

Recovery:

  • It is necessary to obtain a mark superior to 5 in the final exam of recovery to pass the asignatura.
  • The mark of the resit exam will be applied only to the mark of the A8 activity.
  • In case of passing the recovery, the maximum final mark of the subject will be 5.