Informació general


Tipus d'assignatura: Obligatòria

Coordinador: Oscar Garcia Subirana

Trimestre: Segon trimestre

Crèdits: 6

Professorat: 

Oscar Garcia Subirana

Curs acadèmic: 2026

Curs d'impartició: 1

Llengües d'impartició


  • Català
  • Castellano

Les classes presencials i la comunicació a través del fòrum i del correu electrònic es duran a terme en castellà o català. Les diapositives i els materials de l'aula virtual es proporcionaran majoritàriament en anglès, tot i que també es podrà fer servir el català en algunes ocasions.

Competències / Resultats d'aprenentatge


Competències específiques
  • RAE 5.1 - Identificar els fonaments de la programació de llenguatges d'alt nivell orientada al desenvolupament de videojocs.

  • RAE 5.2 - Reconèixer els principals paradigmes de programació de sistemes per a videojocs 2D.

  • RAE 12.1 - Implementar software informàtic que compleixi amb les especificacions de sistemes i característiques d'un videojoc.

  • RAE 12.6 - Implementar comportaments i funcionalitats amb llenguatges de programació multi-paradigma per a desenvolupar videojocs.

Presentació de l'assignatura


L'objectiu d'aquesta assignatura és introduir l'estudiant en els fonaments de la programació d'alt nivell aplicada al desenvolupament de videojocs. L'assignatura treballa la descomposició de problemes, el disseny descendent, l'ús d'estructures de dades bàsiques i la programació orientada a objectes.

Al llarg del curs, l'estudiant aprendrà a analitzar problemes, dividir-los en subproblemes més manejables, representar solucions mitjançant diagrames de flux i implementar-les amb codi estructurat, clar i verificable. També es treballaran eines matemàtiques bàsiques per resoldre problemes espacials 2D, com ara sistemes de coordenades, vectors, distàncies, direccions, angles, rectes i interpolació lineal, sempre des d'una perspectiva aplicada a la programació.

L'assignatura es desenvoluparà principalment mitjançant aplicacions de consola en un entorn de desenvolupament per consolidar la programació estructurada i introduir progressivament la programació orientada a objectes, connectant els conceptes teòrics amb la resolució pràctica de problemes.

La metodologia combina sessions d'explicació conceptual, pràctiques guiades i exercicis de programació. Les sessions teòriques introdueixen els conceptes principals, mentre que les activitats pràctiques treballen la seva aplicació progressiva en problemes de dificultat creixent. L'objectiu és que l'estudiant adquireixi una base sòlida per continuar amb assignatures posteriors de programació, projectes i desenvolupament 2D.

Espais segurs:

L'aula (física o virtual) és un espai segur, lliure d'actituds masclistes, racistes, homòfobes, trànsfobes i discriminatòries, ja sigui cap a l'alumnat o cap al professorat. Confiem que entre totes i tots puguem crear un espai segur on ens puguem equivocar i aprendre sense haver de patir prejudicis d'altres. 

Continguts


Unitat 1: Descomposició funcional i disseny descendent

  • Descomposició de problemes en subproblemes
  • Diagrames de flux
  • Recorregut vs cerca
  • Pas de paràmetres
  • Estructures de dades
  • Conceptes de programació

Unitat 2: Eines matemàtiques bàsiques per a problemes espacials 2D

  • Sistemes de coordenades i representació de posicions en el pla
  • Vectors 2D: coordenades, mòdul i operacions bàsiques
  • Distància, direcció i desplaçament entre punts
  • Producte escalar i angles bàsics entre vectors
  • Trigonometria bàsica aplicada al càlcul de direccions
  • Equació de la recta i interpolació lineal
  • Implementació dels conceptes mitjançant funcions i estructures bàsiques de codi

Unitat 3: Introducció i conceptes generals de la programació orientada a objectes (POO)

  • Què és la POO?
  • Programació estructurada vs POO
  • Motivació i beneficis de la POO
  • Característiques de la POO
  • Definició d'objecte i classe
  • Elements d'una classe: Atributs, mètodes, constructors, etc.

Unitat 4: Conceptes bàsics de la programació orientada a objectes

  • Atributs objectuals, atributs de classe i constants
  • Constructors i instanciació d’objectes
  • Mètodes d'una classe i sobrecàrrega
  • Diagrames de llenguatge unificat de modelatge (UML)
  • Paraula clau "this"
  • Classes vs classes estàtiques
  • Gestió d'excepcions i depuració dins d'una classe

Unitat 5: Herència i polimorfisme

  • Introducció, definició d'herència i exemples
  • Creació de classes base i derivades
  • Classes "sealed" i "abstract"
  • Polimorfisme

Activitats i sistema d'avaluació


La nota final de cada alumne es calcularà combinant l’avaluació contínua, basada en activitats pràctiques, amb un examen final individual. Els percentatges de cada activitat són els següents:

  • A1. Pràctiques de laboratori 1: descomposició funcional, disseny descendent i estructures bàsiques de codi (12,5%)
  • A2. Pràctiques de laboratori 2: implementació en consola d’eines matemàtiques bàsiques per a problemes espacials 2D (12,5%)
  • A3. Pràctiques de laboratori 3: implementació de classes i treball amb objectes (12,5%)
  • A4. Pràctiques de laboratori 4: herència i polimorfisme (12,5%)
  • A5. Examen final individual (50%)

L’examen final podrà incloure:

  • Test de resposta múltiple.
  • Activitat o activitats pràctiques relacionades amb els continguts del curs.

En cas que l’examen inclogui preguntes tipus test, aquestes no podran representar més d’un terç de la qualificació de l’examen.

Nota final = A1 x 0,125 + A2 x 0,125 + A3 x 0,125 + A4 x 0,125 + A5 x 0,50.

Bonificacions:

  • Durant el curs es podrà obtenir una bonificació per assistència i participació activa a les sessions, fins a un màxim de +0,15 punts sobre 10. Aquesta bonificació s’aplicarà a la qualificació de l’examen final i podrà contribuir a assolir la qualificació mínima de 5 exigida en aquesta prova. En cap cas aquesta bonificació podrà fer que la qualificació de l’examen superi el 10.
  • Durant el curs es podrà proposar una activitat addicional a tall de bonificació vinculada al desenvolupament d’un projecte pràctic. Aquesta activitat no forma part del percentatge ordinari de l’avaluació contínua, sinó que aporta una bonificació a la nota de l’examen final, fins a un màxim de +0,35 punts sobre 10, en funció de la qualificació obtinguda. Aquesta bonificació només s’aplicarà si l’estudiant obté una nota igual o superior a 5 a l’examen final abans d’aplicar la bonificació, i en cap cas podrà fer que la qualificació de l’examen superi el 10.

Consideracions generals:

  • Cal obtenir una nota igual o superior a 5 a l’examen final A5 per poder aprovar l’assignatura.
  • Una activitat no lliurada o lliurada amb retard compta com un 0.
  • La identificació de plagi es considera una circumstància greu que pot comportar una qualificació de suspens a una activitat. En cas de detecció de plagi s’informarà a la coordinació del grau per tal que es puguin prendre les mesures disciplinàries corresponents.
  • Qualsevol forma de frau acadèmic serà sancionada d’acord amb la normativa d’avaluació del centre. En cas que es detectin indicis de frau, inclòs l’ús indegut d’eines d’intel·ligència artificial generativa, el professorat de l’assignatura podrà convocar l’estudiant a una entrevista individual amb l’objectiu de verificar-ne l’autoria.

Consideracions sobre l’ús d’eines d’intel·ligència artificial:

  • Es podrà fer servir la intel·ligència artificial generativa com a eina de suport a l’aprenentatge, sempre que el seu ús sigui crític, responsable i transparent. Es podrà utilitzar per resoldre dubtes conceptuals, contrastar explicacions, revisar errors o comprendre millor determinats conceptes de programació.
  • L’ús d’aquestes eines no ha de substituir el procés propi d’anàlisi, disseny i implementació de solucions. En les activitats avaluables, l’estudiant haurà de ser capaç d’explicar, justificar i defensar el codi lliurat. L’ús acrític, no declarat o que substitueixi l’autoria de l’estudiant podrà ser considerat un ús indegut d’acord amb la normativa d’avaluació del centre.

Recuperació:

  • Només es podran presentar a la recuperació els estudiants que s’hagin presentat a l’examen final i no hagin superat la qualificació mínima de 5 a la nota final o a l’examen.
  • Les activitats A1, A2, A3 i A4 no es poden recuperar.
  • La nota de l’examen de recuperació substitueix només la nota de l’activitat A5. Per superar l’assignatura, aquesta nota ha de ser igual o superior a 5.

Bibliografia


Bàsic

Chaudhary, Harry (2014). C# Programming: Step By Step Beginner's To Experts Edition. Createspace LLC USA.

Clark, Dan (2011) Beginning C# Object-Oriented Programming. Apress.

Fagerberg, Jonas (2015)  C# for Beginners: The Tactical Guidebook: Learn Csharp by Coding. CreateSpace Independent Publishing Platform.

Complementària

Kneusel, Ronald T. (2025). Math for Programming: Learn the Math, Write Better Code. No Starch Press.

LeetCode

Meyer, Bertrand (2000). Object-Oriented Software Construction (2nd ed.). Prentice Hall.

Microsoft .NET Documentation

Shiffman, Daniel. The Nature of Code

Stack Overflow