Informació general


  • Tipus d'assignatura: Obligatòria
  • Coordinador: Adso Fernández Baena
  • Trimestre: 2
  • Crèdits: 4
  • Professorat:

Idiomes d'impartició


  • Català
  • Castellano

L'assignatura s'impartirà en català/castellà amb la possibilitat d'impartir-la en anglès, en cas de que fos necessari.

Competències que es treballen


General

  • 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.


Transversal

  • 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.


Específica

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

Descripció


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.

Resultats d'aprenentatge


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.

Metodologia de treball


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

Classe magistral, resolució de problemes, laboratori en grup reduït, estudi de casos i aprenentatge col·laboratiu.

Continguts


Tema 0: Descomposició funcional i disseny descendent

0.1. Descomposició de problemes en subproblemes

0.2. Recorregut vs cerca

0.3. Pas de paràmetres: entrada, sortida, referència i valor

Tema 1: Introducció i conceptes generals de la programació orientada a objectes (POO)

1.1. Què és la POO?

1.2. Programació estructurada vs POO

1.3. Perquè utilitzar la POO i els seus beneficis

1.4. Característiques de la POO.

Tema 2: Conceptes bàsics de la programació orientada a objectes

2.1. Definició d'objecte i classe

2.2. Atributs, constants i mètodes d'una classe

2.3. Constructors, inicialització i sobrecàrrega de mètodes d'una classe

2.4. Paraula clau "this"

2.5. Membres estàtics i d'instància

2.6. Gestió d'excepcions i debug dins d'una classe

2.7. Sobrecàrrega de mètodes i d'operadors

Tema 3: Herència, interfaces i polimorfisme (jerarquia de classes)

3.1. Introducció, definició d'herència i exemples

3.2. Creació de classes base i derivades

3.3. Classes "sealed" i "abstract"

3.4. Interfaces

3.5. Polimorfisme

Tema 4: Llenguatge unificat de modelat (UML)

4.1. Tipus de diagrames

4.2. Representació UML

4.3. Conceptes d'enllaços i associacions

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

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. 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, el pas de paràmetres en les funcions i accions, a més de la diferència entre recorregut i cerca. També aplicarà els conceptes explicats a les classes teòriques introductòries sobre la orientació a objectes, més en concret, en els temes 1 i 2 del temari teòric.

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 1 i 2 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.

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 3 del curs.

A4. Exercicis a casa a través del campus virtual (Evidència de tots els resultats d’aprenentatge)

Diversos tests individual de preguntes curtes dels conceptes teòrics i pràctics 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:

  • 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 (s'haurà de realitzar la corresponent entrega electrònica de la pràctica juntament amb les explicacions pertinents de la mateixa).

Sistema d'avaluació


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 10%

A3. Pràctiques de laboratori 3 30%

A4. Exercicis a casa (a través del campus virtual) 10%

A5. Examen final 40%

Nota final = A1·0,1 + A2·0,1 + A3·0,3 + A4·0,1 + A5·0,4

Consideracions:

  • Cal obtenir una nota superior a 4 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.
  • Una vegada realitzada la ponderació de les notes de teoria i pràctica, els estudiants que no superin la qualificació mínima (5) es consideraran suspesos i tindran la oportunitat de realitzar un examen de recuperació en les dates preestablertes per la mateixa universitat en el calendari acadèmic oficial.
  • A la recuperació, les pràctiques de laboratori podran ser presentades de nou per a la seva nova avaluació per part del professor, obtenint una nota màxima d'un 5.

Bibliografia


Bàsica

 C# Programming: The ultimate way to learn the fundamentals of the C# language. Jonas Fagerberg.

Alfonseca, M. Alcalá, A. Programación Orientada a Objetos. Anaya Multimedia, Madrid, 1992.

Beck, K.; Cunningham, W. A laboratory for teaching object-oriented thinking. Proc. of Object-Oriented Programming Systems, Languages and Applications 1989 (OOPSLA '89). SIGPLAN Notices, Vol. 24, No. 10, October 89, pp 1-6.

C# Programming: Step By Step Beginner's To Experts Edition. Harry, Crhis James.

Meyer, Bertrand. Object-Oriented Software Construction. Prentice Hall, segunda edición. Versión española: Construcción de software orientado a objetos, Prentice Hall Iberia, 1999.