Informació general


Tipus d'assignatura: Optativa

Coordinador: Adso Fernández Baena

Trimestre: Segon trimestre

Crèdits: 6

Professorat: 

Rafael González Fernández

Competències


Competències generals
  • G1. Demostrar tenir i comprendre coneixements avançats de la seva àrea d'estudi que inclouen els aspectes teòrics, pràctics i metodològics, amb un nivell de profunditat que arriba fins a l'avantguarda del coneixement.

  • G2. Resoldre problemes complexos del seu àmbit laboral, mitjançant l'aplicació dels seus coneixements, l'elaboració d'arguments i procediments, i l'ús d'idees creatives i innovadores.

  • G5. Desenvolupar les habilitats d'aprenentatge necessàries per emprendre estudis posteriors amb un alt grau d'autonomia.

Descripció


L’assignatura està pensada per perfils d’alumnes amb orientació tecnològica (perfil de desenvolupadors) que vulguin aprofundir en la programació de jocs i en els llenguatges més avançats. L’alumne aprendrà a programar amb el llenguatge C++ i a través d’aquest, comprendrà els conceptes de gestió de memòria i altres característiques pròpies de la programació orientada a objectes. Amb això, l’estudiant aprofundirà i consolidarà els conceptes de programació vistos al llarg de la carrera. Es crearan projectes directament sobre Visual Studio sense cap altre motor o engine intermig, donant així una visió del codi i de la seva organització a un més baix nivell.

Les sessions seran principalment teòriques on s'exposaran els conceptes amb exemples pràctics. Per assolir els coneixements de l’assignatura s’avaluaran per un costat diversos exercicis pràctics durant el curs, juntament amb una pràctica final individual i un exàmen teòric. 

L’assignatura es contextualitza dins de la branca de desenvolupament de videojocs. Està relacionada amb les assignatures de desenvolupament de jocs, motors de jocs, programació amb llenguatges interpretats i programació gràfica avançada (optativa).

Aquesta assignatura disposa de recursos metodològics i digitals per fer possible la seva continuïtat en modalitat no presencial en el cas de ser necessari per motius relacionats amb la Covid-19. D’aquesta forma s’assegurarà l’assoliment dels mateixos coneixements i competències que s’especifiquen en aquest pla docent.

Resultats d'aprenentatge


Al finalitzar l’assignatura, l’estudiant/a ha de ser capaç de:

  • E6. Desarrollar videojuegos en lenguajes de programación de alto nivel en motores gráficos, a partir de las especificaciones.
  • E6.1. Diseñar la arquitectura del software de un videojuego de acuerdo a unas especificaciones.
  • E6.2. Interpretar el análisis del software para su posterior desarrollo.
  • E15. Diseñar y planificar estrategias de aseguramiento de la calidad, testeo y análisis de datos de videojuegos y productos interactivos.

Metodologia de treball


L’assignatura utilitza les següents metodologies de treball:

  1. Classe magistral
  2. Aprenentatge col·laboratiu
  3. Resolució de problemes
  4. Aprenentatge basat en preguntes
  5. Tutories no presencials

Continguts


Tema 1. Arquitectura de Computadors

1.1. Màquina de Turing

1.2. Arquitectura Von Newmann

1.3. Ensamblador x86

Tema 2. Introducció a C++

2.1. Introducció històrica

2.2. Baix vs alt nivell

2.3. Estructura d'un projecte

2.4. Microsoft Visual Studio

Tema 3. Bases de C++

3.1. Variables

3.2. Funcions

3.3. Punters

3.4. Arrays

3.5. Gestió de la memoria

3.6. Paraules clau

3.7. Strings

Tema 4. Orientació a Objectes

4.1. Clases

4.2. Herencia

4.3. Namespaces, àmbits i validesa

Tema 5. C++ Avançat

5.1. Smart Pointers

5.2. Punters a funcions

5.3 Lambdas

5.4. Castings

Tema 6. Projectes en C++

6.1. Precompiled headers

6.2. Estructures de dades

6.3. Fitxers

Tema 7. Bones Pràctiques

7.1. S.O.L.I.D. Principes

Tema 8. Pràctica

Activitats d'aprenentatge


Amb l’objectiu de recollir evidència de l’assoliment dels resultats d’aprenentatge esperats es realitzaran les següents activitats de caràcter avaluatiu (relacionades amb totes les competències comunes):

  • A1. Exercici a classe: Màquina de Turing (Evidència del resultat d’aprenentatge E.6.1)

Realització d'un programa amb tarjetes perforades utilitçant la lògica de la màquina de Turing.

  • A2. Exercici a casa: Human Resource Machine (Evidència del resultat d’aprenentatge E.6.2)

Resolució de diversos problemes concrets del joc Human Resouce Machine amb la lògica del llenguatge ensamblador.

  • A3. Exercici a casa: Perfect Numbers (Evidència del resultat d’aprenentatge E.6.1)

Realització d'un primer programa sencill en C++.

  • A4. Exercici a casa: Pascal Triangle (Evidència del resultat d’aprenentatge E.6.1)

Realització d'un segon programa en C++ ampliant els coneixements a utilitzar.

  • A5. Exercici a casa: Raining Letters (Evidència del resultat d’aprenentatge E.6)

Realització d'un primer joc sencill en C++.

  • A6. Exercici a casa: Snake (Evidència del resultat d’aprenentatge E.6)

Realització d'un segon joc més complexe en C++.

  • A7. Pràctica Final (Evidència del resultat d’aprenentatge E.6 i E.15)

Realització d'un joc complert en C++.

  • A8. Examen Final (Evidència del resultat d’aprenentatge E.6.1)

 

Criteris generals de les activitats:

  • El professor presentarà un enunciat per cada activitat i els criteris d’avaluació i/o rúbriques.
  • El professor informarà de les dates i format del lliurament de l’activitat.

 

Sistema d'avaluació


La nota de cada alumne es calcularà seguint els següents percentatges:

A1. Exercici a classe: Màquina de Turing - 5%

A2. Exercici a casa: Human Resource Machine - 5%

A3. Exercici a casa: Perfect Numbers - 2.5%

A4. Exercici a casa: Pascal Triangle - 2.5%

A5. Treball Individual: Raining Letters - 10% 

A6. Treball Individual: Snake - 10% 

A7. Pràctica Final - 35%

A8. Examen Final - 30%

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

Consideracions:

  • Cal obtenir una nota superior a 5 a l’examen final per a aprovar l’assignatura.
  • Una activitat no entregada o lliurada amb retard i sense justificació (citació judicial o assumpte mèdic) compta com un 0.
  • És responsabilitat de l’alumne evitar el plagi en totes les seves formes. En el cas de detectar un plagi, independentment del seu abast, en alguna activitat correspondrà a tenir una nota de 0. A més, el professor comunicarà a la Cap d’estudis la situació per a que es prenguin mesures aplicables en matèria de règim sancionador.

Recuperació:

  • Cal obtenir una nota superior a 5 a l’examen final de recuperació per a aprovar l’assignatura.
  • La nota de l’examen de recuperació s’aplicarà només a la nota de l’activitat A8.
  • En cas de superar la recuperació, la nota final màxima de l’assignatura serà de 5.