Informació general


Tipus d'assignatura: Obligatòria

Coordinador: Juan José Pons López

Trimestre: Segon trimestre

Crèdits: 4

Professorat: 

Oscar Garcia Subirana

Idiomes d'impartició


  • 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


Competències específiques
  • E6. Desenvolupar videojocs en llenguatges de programació d'alt nivell en motors gràfics  a partir de les especificacions.

Competències generals
  • 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.

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.

Descripció


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

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

Unitat 5: Estructures de dades

  • Arrays bidimensionals i multidimensionals
  • Diccionaris

Sistema d'avaluació


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

  • 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 (15%)
  • A4. Exercicis a classe: qüestionaris teòrics (5%)
  • A5. Exercicis a casa: exercicis pràctics curts (10%)
  • A6. Examen final 50%

Nota final = A1 x 0,1 + A2 x 0,1 + A3 x 0,15 + A4 x 0,05 + A5 x 0,1 + A6 x 0.50

Consideracions:

  • Cal obtenir una nota superior o igual a 5 a l'examen final A6 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 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.

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 i A5 no es poden recuperar.
  • La nota de l'examen de recuperació substitueix només a la nota de l'activitat A6. Aquesta nota ha de ser superior a un 5.

Bibliografia


Bàsic

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.

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

Complementary

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