Informació general


Tipus d'assignatura: Obligatòria

Coordinador: Juan José Pons López

Trimestre: Segon trimestre

Crèdits: 4

Professorat: 

Oscar Garcia Subirana

Curs acadèmic: 2025

Curs d'impartició: 1

Llengües d'impartició


  • Català
  • Castellano

Les classes presencials, així com la comunicació a través del fòrum i el 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, fent servir el català en algunes ocasions.

Competències / Resultats d'aprenentatge


Competències específiques
  • E2. Dissenyar les mecàniques, regles, estructura i narrativa de videojocs seguint els criteris de jugabilitat i balanceig per oferir la millor experiència de joc possible.

  • E5. Escriure les especificacions d'un joc i comunicar-les eficaçment a l'equip d'artistes i desenvolupadors i d'altres membres involucrats en la creació i desenvolupament del joc.

  • E6. Desenvolupar videojocs en llenguatges de programació d'alt nivell en motors gràfics  a partir de les especificacions.

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.

Competències transversals
  • T1. Comunicar en un tercer idioma, que serà preferentment l'anglès, amb un nivell adequat de forma oral i per escrit i d'acord amb les necessitats que tindran els graduats i graduades.

  • T2. Treballar com a membre d'un equip interdisciplinari ja sigui com un membre més o realitzant tasques de direcció amb la finalitat de contribuir a desenvolupar projectes amb pragmatisme i sentit de la responsabilitat, assumint compromisos i tenint en compte els recursos disponibles.

Presentació de l'assignatura


L'objectiu d'aquesta assignatura és proporcionar als estudiants una comprensió profunda dels conceptes i tècniques de la programació orientada a objectes (POO), així com les estructures de dades fonamentals i els algorismes associats. Els estudiants aprendran a descompondre problemes complexos en subproblemes més manejables, a utilitzar diagrames de flux per planificar solucions, i a implementar solucions eficients mitjançant l'ús de la POO, estructures de dades avançades i algorismes efectius.

L'assignatura combina classes magistrals, tallers pràctics i projectes. Les classes magistrals introdueixen els conceptes teòrics, mentre que els tallers permeten als estudiants aplicar aquests conceptes en situacions reals. Els projectes fomenten la creativitat i la col·laboració, proporcionant als estudiants l'oportunitat de treballar en equips petits per resoldre problemes complexos.

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: Introducció i conceptes generals de la programació orientada a objectes (POO)

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

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

  • Atributs objectuals, atributs de classe i constants
  • Constructors i instanciar 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 debug dins d'una classe
  • Operadors

Unitat 4: Herència, interfícies i polimorfisme (jerarquia de classes)

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

Activitats i sistema d'avaluació


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

  • A1. Pràctiques de laboratori 1: treballar amb matrius i anàlisi descendent (10%)
  • A2. Pràctiques de laboratori 2: implementar classes i treballar amb objectes (10%)
  • A3. Pràctiques de laboratori 3: conceptes d'herència (10%)
  • A4. Exercicis a classe i a casa: activitats pràctiques breus vinculades a la primera unitat (5%)
  • A5. Exercicis a classe i a casa: activitats pràctiques breus vinculades a la segonda unitat (5%)
  • A6. Exercicis a classe i a casa: activitats pràctiques breus vinculades a la tercera unitat (5%)
  • A7. Exercicis a classe i a casa: activitats pràctiques breus vinculades a la quarta unitat (5%)
  • A8. Examen final 50%
    • Test de resposta múltiple
    • Activitat o activitats pràctiques relacionades amb els continguts del curs

Nota final = A1 x 0.10 + A2 x 0.10 + A3 x 0.10 + A4 x 0.05 + A5 x 0.05 + A6 x 0.05 + A7 x 0.05 + A8 x 0.50

Consideracions generals:

  • Cal obtenir una nota superior o igual a 5 a l'examen final A8 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.
  • La identificació de plagi es considera una infracció greu d'integritat acadèmica i pot comportar una qualificació de suspens a l’activitat afectada. En aquests casos, s’informarà a la coordinació del grau per valorar les mesures disciplinàries pertinents.
  • 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:

  • Atesa la naturalesa fonamental d’aquesta assignatura, es requereix a l’estudiant no només que proporcioni solucions a determinats problemes, sinó que sigui capaç de generar-les de manera autònoma, sense cap mena d’ajut extern. Per aquest motiu, l’ús d’intel·ligències artificials generatives (IAG) per a la resolució dels problemes plantejats en l’assignatura, sigui en exercicis, pràctiques o proves, és contraproduent, queda estrictament prohibit i serà considerat un cas de frau per plagi. En aquest sentit, no es permet l’ús d’IAG per a generar codi de programació, ni tan sols en forma de fragments, encara que aquest codi sigui posteriorment modificat o personalitzat.
  • L'ús crític d'IAGs com a vehicle per a resoldre dubtes sobre la matèria no es considera un mal ús d'aquests mecanismes sempre que això no entri en contradicció amb el que s'ha indicat al punt previ i l'estudiant no perdi de vista el fet que pot obtenir respostes incorrectes o no ajustades als continguts de la matèria.

Recuperació:

  • Només es poden presentar a la recuperació els estudiants que es presentin a l'examen final que no superin la qualificació mínima (5) a la nota final o a l'examen.
  • Les activitats A1, A2, A3, A4, A5, A6 i A7 no es poden recuperar.
  • La nota de l'examen de recuperació substitueix només a la nota de l'activitat A8. Aquesta nota de teoria ha de ser superior a un 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.

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

Complementària

Forum StackOverflow

LeetCode

Microsoft .NET Documentation