Que estàs buscant?
E6. Desenvolupar videojocs en llenguatges de programació d'alt nivell en motors gràfics a partir de les especificacions.
G3. Reunir i interpretar dades rellevants (normalment dins de la seva àrea d'estudi) per emetre judicis que incloguin una reflexió sobre temes rellevants d'índole social, científica o ètica.
G5. Desenvolupar les habilitats d'aprenentatge necessàries per emprendre estudis posteriors amb un alt grau d'autonomia.
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.
L'assignatura Programació I suposa la primera aproximació al disseny d'algorismes utilitzant les bases de la programació orientada a objectes en el marc de la matèria de Desenvolupament. Es treballen problemes d'una certa complexitat, tant per dissenyar algorismes nous com per testejar i debugar adequadament algorismes implementats. L'assignatura consta de sessions teòriques i sessions de pràctica. Per assolir els coneixements de l'assignatura s'avalua per un costat tres pràctiques i per un altre els coneixements teòrics de manera individual.
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. Per tal que els alumnes treballin col·laborativament a les pràctiques serà obligatori l'ús de l'eina GIT.
En acabar l'assignatura els estudiants han de ser capaços de:
E6.1. Dissenyar l'arquitectura del software d'un videojoc d'acord a unes especificacions.
L'assignatura utilitza les següents metodologies de treball:
Classe magistral, càpsules de vídeo, resolució de problemes, laboratori en grup reduït i aprenentatge col·laboratiu, i tutories no presencials.
Tema 1: Descomposició funcional i disseny descendent
1.1. Descomposició de problemes en subproblemes
1.2. Diagrames de flux
1.3. Recorregut vs cerca
1.4. Pas de paràmetres: entrada, sortida, referència i valor
Tema 2: Introducció i conceptes generals de la programació orientada a objectes (POO)
2.1. Què és la POO?
2.2. Programació estructurada vs POO
2.3. Perquè utilitzar la POO i els seus beneficis
2.4. Característiques de la POO.
Tema 3: Conceptes bàsics de la programació orientada a objectes
3.1. Definició d'objecte i classe
3.2. Atributs, constants i mètodes d'una classe
3.3. Diagrames de llenguatge unificat de modelat (UML)
3.4. Constructors, inicialització i sobrecàrrega de mètodes d'una classe
3.5. Paraula clau "this"
3.6. Membres estàtics i d'instància
3.7. Gestió d'excepcions i debug dins d'una classe
3.8. Sobrecàrrega de mètodes i d'operadors
Tema 4: Herència, interfaces i polimorfisme (jerarquia de classes)
4.1. Introducció, definició d'herència i exemples
4.2. Creació de classes base i derivades
4.3. Classes "sealed" i "abstract"
4.4. Interfaces
4.5. Polimorfisme
Tema 5: Estructures de dades
5.1. Llistes dinàmiques
5.2. Llistes ordenades (Key/value)
5.3. Cues (FIFO) i stacks (LIFO)
5.4. Taules de hash
5.5. Grafs
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. Pràctiques de laboratori 1 (Evidència del resultat d’aprenentatge E6.1)
En aquesta pràctica l'estudiant haurà d'aplicar els conceptes explicats a les classes teòriques sobre la descomposició funcional i disseny descendent, a més de la diferència entre recorregut i cerca, caldrà dissenyar el diagrama de flux del joc. També aplicarà els conceptes explicats a les classes teòriques introductòries sobre la orientació a objectes.
A2. Pràctiques de laboratori 2 (Evidència del resultat d’aprenentatge E6.1)
En aquesta pràctica l'estudiant haurà d'aplicar els conceptes explicats a les classes teòriques sobre la programació orientada a objectes, més en concret, els temes 2 i 3 del temari teòric. A més l'estudiant utilitzarà classes de C# per a la lectura i escriptura de fitxers guardats en el disc dur de l'ordinador. L'estudiant haurà de seguir un diagrama UML per la creació de les diferents classes i haurà de dissenyar un diagrama de flux del joc.
A3. Pràctiques de laboratori 3 (Evidència del resultat d’aprenentatge E6.1)
En aquesta tercera pràctica del curs, l'estudiant haurà d'aplicar els conceptes d'herència, interfaces i polimorfisme (jerarquia de classes) explicats en el tema 4 del curs. L'estudiant haurà de dissenyar un diagrama UML de les classes utilitzades i un diagrama de flux del joc.
A4. Exercicis a casa o classe (Evidència de tots els resultats d’aprenentatge)
Diversos tests individual de preguntes curtes dels conceptes teòrics i exercicis pràctics individuals o en parella de tota l'assignatura.
A5. Examen final (Evidència de tots els resultats d’aprenentatge)
Test individual d'aplicació pràctica (resolució d'exercicis i problemes) dels conceptes teòrics i pràctics de tota l'assignatura.
Criteris generals de les activitats:
La nota de cada alumne es calcularà seguint els següents percentatges:
A1. Pràctiques de laboratori 1 10%
A2. Pràctiques de laboratori 2 20%
A3. Pràctiques de laboratori 3 20%
A4. Exercicis a casa o classe10%
A5. Examen final 40%
Nota final = A1·0,1 + A2·0,2 + A3·0,2 + A4·0,1 + A5·0,4
Consideracions:
Recuperació:
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 (1997) Object-Oriented Software Construction. Prentice Hall, segunda edición.
Versión española: Construcción de software orientado a objetos, Prentice Hall Iberia, 1999.
Chaudhary, Harry H. (2014) C# Programming: Step By Step Beginner's To Experts Edition. Createspace LLC USA.