Informació general


Tipus d'assignatura: Bàsica

Coordinador: Alfons Palacios Gonzàlez

Trimestre: Segon trimestre

Crèdits: 6

Professorat: 

Catalina Juan Nadal
Rosa Herrero Antón 

Competències


Competències bàsiques
  • B2_Que els estudiants sàpiguen aplicar els seus coneixements a la seva feina o vocació d'una forma professional i tinguin les comptències que demostren mitjançant l'elaboració i defensa d'arguments i la resolució de problemes dins de la seva àrea d'estudi

Competències específiques
  • EFB3_Capacitat per comprendre i dominar els conceptes bàsics de matemàtica discreta, lògica, algorítmica i complexitat computacional, i la seva aplicació per a la resolució de problemes propis de l'enginyeria

  • EFB4_Coneixements bàsics sobre l'ús i programació dels ordinadors, sistemes operatius, bases de dades i programes informàtics amb aplicació a l'enginyeria

Competències transversals
  • T1_Que els estudiants coneixin un tercer idioma, que serà preferentment l'anglès, amb un nivell adequat de forma oral i per escrit, d'acord amb les necessitats que tindran les graduades i els graduats a cada titulació

  • T2_Que els estudiants tinguin capacitat per a treballar com a membres d'un equip interidisciplinar ja sigui com un membres més, o realitzant tasques de direcció amb la finalitat de contribuir a desenvolupar projectes amb pragmatisme i sentit de la responsabilitat, assumint compromisos tenint en compte els recursos disponibles

Descripció


L'assignatura de Programació Orientada a l’Objecte pertany a la matèria de la Programació i és la segona dins d'aquesta àrea. Els diversos temes tractats en l'assignatura estan pensats per capacitar als estudiants per l'aprenentatge dels conceptes relacionats amb la programació orientada a l’objecte. Aquests conceptes es necessitaran en les posteriors assignatures dins d'aquesta mateixa matèria i també en posteriors assignatures dins del grau.

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.

 

 

Resultats d'aprenentatge


A nivell general, aquesta assignatura contribueix als següents resultats d'aprenentatge especificats per a la matèria a la qual pertany (Algorísmica i Programació):

  • Construir algorismes correctes i eficients per a problemes de dificultat petita.
  • Implementar algorismes senzills en un llenguatge de programació imperatiu de referència per al nivell inicial.
  • Identificar les solucions algorísmiques més escaients per a resoldre problemes de dificultat mitjà.
  • Raonar sobre la correcció i l'eficiència d'una solució algorísmica.
  • Dissenyar, escriure, provar, depurar, documentar i mantenir codi en un llenguatge d'alt nivell per a resoldre problemes de programació aplicant esquemes algorísmics i usant estructures de dades.
  • Aplicar tècniques bàsiques de descomposició modular de programes.
  • Escollir, combinar i explotar diferents paradigmes de la programació en el moment de construcció del software, atenent a criteris com la facilitat de desenvolupament, l'eficiència, la portabilitat i el manteniment.
  • Dissenyar l'arquitectura dels programes usant  les tècniques d'orientació a objectes, modularització i especificació e implementació de tipus abstractes de dades.
  • Usar les eines d'un entorn de desenvolupament de software per a crear i desenvolupar aplicacions.
  • Demostrar coneixement i comprensió de fets essencials, conceptes, principis i teories relatives a la informàtica i a les seves disciplines de referència.
  • Col·laborar en un entorn unidisciplinar. Identificar els objectius del grup i col·laborar en el disseny de l'estratègia a seguir i un pla de treball per a aconseguir-los. Identificar les responsabilitats de cada component del grup i assumir el compromís personal de la tasca assignada. Avaluar i presentar els resultats propis. Identificar el valor de la cooperació i intercanviar informació amb els altres components del grup. Intercanviar informació sobre el progrés del grup i proposar estratègies per millorar el seu funcionament.
     

A un nivell més concret, en acabar l’assignatura l’estudiant o estudianta ha de ser capaç de:

  • RA1: Comprendre’n l’estructura i entendre programes escrits amb un llenguatge orientat a objectes.
  • RA2: Dissenyar i codificar, depurar i documentar programes utilitzant el paradigma de l'orientació a objectes, amb un nombre limitat de classes.
  • RA3: Conèixer i fer ús dels mecanismes de tractament d'errors proporcionats per algun llenguatge de programació d'alt nivell.
  • RA4: Dissenyar i codificar una interfície gràfica d'usuari senzilla en un entorn de Desenvolupament Ràpid d'Aplicacions.

 

Metodologia de treball


Tots els conceptes teòrics de la matèria s'exposaran en classes de teoria (grups grans). En aquestes classes, i a discreció dels docents impartidors, també es resoldran exercicis i problemes de caire més pràctic. Així mateix, i sempre a discreció dels impartidors, es podrà demanar als estudiants que resolguin, de manera individual o en grup, problemes i/o exercicis breus. Aquestes activitats, breus i optatives, serviran a l'estudiant com a instrument d'autoavaluació del seu assoliment dels continguts de la matèria i podran ser utilitzades per part del docent per a prendre decisions sobre la qualificació final de l'estudiant bo i que mai en detriment de la qualificació numèrica calculada segons el sistema de qualificació especificat per l'assignatura.

Els conceptes de caire més pràctic i tot el que en essència es pugui considerar l'aplicació pràctica dels conceptes teòrics seran treballats de manera més intensiva en grups petits (de laboratori). En les sessions que es programin a aquest efecte es donaran les eines escaients per a resoldre les activitats programades bo i que s'espera que aquestes s'allarguin des del punt de vista temporal més enllà de les hores de laboratori i que, en conseqüència, els estudiants les hagin de finalitzar durant el temps d'aprenentatge autònom.

Es posarà a disposició dels estudiants activitats de caire totalment opcional que l'ajudin a preparar i a preparar-se per a les de caire obligatori.

Aquest curs, a causa de la situació generada per la COVID, algunes de les sessions de grup gran es faran en format híbrid: presencial i en línia (via streaming). Això permetrà que els estudiants puguin anar rotativament a les classes presencials, respectant el màxim d'estudiants per aula que imposen les mesures de distanciament. Quan no els toqui sessió presencial podran seguir la classe en línia des de casa.

Pel que fa a les sessions de pràctiques a espais més reduïts (com laboratoris, estudis o plató), si s'escau es treballarà simultàniament en diversos espais per tal de garantir que es compleixen les condicions establertes pels protocols de seguretat.

Continguts


1.- Introducció a la Programació Orientada a Objectes

  • Definició intuïtiva d’objecte
  • Abstracció i encapsulació
  • Objectes i classes
  • Atributs i mètodes
  • Instanciació d’objectes i invocació de mètodes

2.- Tècniques fonamentals de la Programació Orientada a l’Objecte: Herència i Polimorfisme

  • Extensió de classes: herència
  • Polimorfisme. Sobrecàrrega i reescriptura

3.- Conceptes avançats: interfícies i classes abstractes

  • Classes i mètodes abstractes
  • Interfícies

4.- Tractament d’errors

  • Excepcions
  • Llançament, captura i tractament d’excepcions

5.- Introducció a la programació de la interfície gràfica d’usuari

  • Programació en resposta a esdeveniments
  • Finestres i controls

Activitats d'aprenentatge


Es posa a disposició dels estudiants tot un seguit d'activitats de caire eminentment pràctic (exercicis curts, problemes...) que són la base de les activitats d'aprenentatge de l'assignatura. Aquestes activitats els estudiants/es les hauran de resoldre, sovint de manera no presencial, seguint les indicacions dels docents i també seran treballades a classe, ja sia com a exemples en les sessions de teoria, ja sia en les sessions de laboratori. Si bé aquestes activitats tindran caràcter optatiu (els docents no en verificaran de manera individualitzada la realització per part dels estudiants), seran imprescindibles per assolir els coneixements teorico-pràctics de l'assignatura.

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 (pràctiques i exàmens):

Les pràctiques seran realitzades en grups de dos estudiants. No necessàriament, la qualificació dels dos membres del grup ha de ser la mateixa, es tindrà en compte el grau de participació de cadascun d'ells en la confecció de cadascuna de les pràctiques.

PRÀCTICA 1

En aquesta pràctica, els estudiants i estudiantes hauran de codificar un programa que faci ús de classes d'objectes, subministrades pel professor i/o codificades per ells mateixos. L'objectiu de la pràctica és doble, per una banda codificar, provar i depurar noves classes d'objectes i per l’altra, usar els dos paradigmes de la programació, la programació orientada a objectes i la programació estructurada. L’estudiant haurà de resoldre un mateix problema dues vegades, haurà de fer dues versions:

  • Una primera fent ús del paradigma de la programació imperativa, seguint el model dels programes fets fins aleshores pels estudiants en l’assignatura precedent de programació.
  • Una segona versió, fent ús de la Programació l’Orientació a l’Objecte.

L’estudiant ha de comprendre les dues metodologies, entendre les diferencies i valorar el pros i contres de cadascuna.

Per implementar la segona versió l’estudiant haurà d’usar més elements del programari informàtic usat pel desenvolupament de programes, la nova implementació requereix de més elements dels que l’estudiant ha usat fins aleshores.

El problema que caldrà resoldre haurà estat posat a disposició dels estudiants i estudiantes amb anterioritat a la realització de la sessió de laboratori, amb el doble objectiu, que coneguin el problema que serà tractat i que n'hagin començat a dissenyar les solucions.

Els estudiants i estudiantes hauran de finalitzar, en les hores dedicades a l'aprenentatge autònom la totalitat dels problemes plantejats.

Aquesta activitat contribueix a l'assoliment dels resultats d'aprenentatge RA1 i RA2.

PRÀCTICA 2

En aquesta pràctica, els estudiants i estudiantes hauran de codificar un  programa que faci ús de classes d'objectes de les diferents  llibreries del llenguatge, i  d’altres classes codificades per ells mateixos. L'objectiu de la pràctica es centrarà en la codificació, prova i depuració d’un disseny de classes i el seu ús en l’escriptura d’un programa. L’estudiant haurà de codificar un disseny de classes usant els diferents elements de la programació orientada a objectes, els més bàsics i també el més complexes.

La complexitat de la feina a realitzar serà superior a la de la pràctica anterior.

El problema que caldrà resoldre haurà estat posat a disposició dels estudiants i estudiantes amb anterioritat a la realització de la sessió de laboratori, amb el doble objectiu que coneguin el problema que serà tractat i que n'hagin començat a dissenyar les solucions.

Els estudiants i estudiantes hauran de finalitzar, en les hores dedicades a l'aprenentatge autònom la totalitat dels problemes plantejats.

Aquesta activitat contribueix a l'assoliment dels resultats d'aprenentatge RA1 i RA2.

PRÀCTICA 3

En aquesta pràctica, els estudiants i estudiantes hauran de codificar un disseny de classes que facin ús de classes d'objectes donades pel llenguatge de programació i d’altres codificades per ells mateixos. L'objectiu de la pràctica es centrarà en la codificació, prova i depuració de noves classes d'objectes però fent més èmfasi al control d’errors mitjançant l’ús d’excepcions. 

El problema que caldrà resoldre haurà estat posat a disposició dels estudiants i estudiantes amb anterioritat a la realització de la sessió de laboratori, amb el doble objectiu que coneguin el problema que serà tractat i que n'hagin començat a dissenyar les solucions.

Els estudiants i estudiantes hauran de finalitzar, en les hores dedicades a l'aprenentatge autònom la totalitat dels problemes plantejats.

Aquesta activitat contribueix a l'assoliment dels resultats d'aprenentatge RA1, RA2 i RA3.

PRÀCTICA 4

Aquesta pràctica es dedicarà a la resolució de problemes relacionats amb la totalitat dels continguts de l’assignatura i amb especial èmfasi en el darrer: la programació de la interfície gràfica d’usuari. L’estudiant resoldrà dos enunciats:

  • En un haurà de programar des de zero tota la interfície gràfica i interactivitat demanada,
  • i en l’altre, usar una eina de desenvolupament d’interfícies gràfiques, entenen tota la lògica de la programació generada per l’eina, per modificar-la per incorporar la interactivitat demanda pel problema.

Els problemes que caldrà resoldre hauran estat posats a disposició dels estudiants i estudiantes amb anterioritat a la realització de la sessió de laboratori, amb el doble objectiu que coneguin els problemes que seran tractats i que n'hagin començat a dissenyar les solucions.

Els estudiants i estudiantes hauran de finalitzar, en les hores dedicades a l'aprenentatge autònom la totalitat dels problemes plantejats.

Aquesta activitat contribueix a l'assoliment dels resultats d'aprenentatge RA1, RA2, RA3 i RA4.

 

A nivell competencial les quatre pràctiques, que majoritàriament s’hauran de desenvolupar en temps no presencial, cobreixen les següents competències comunes i específiques de l’assignatura (entre parèntesi els aspectes més rellevants de cada competència als quals contribueix):

  • CIN1 (desenvolupar programari)
  • CIN3 (hàbits de treball efectius en els entorns de desenvolupament de software)
  • CIN5 (mantenir programari)
  • CIN6 (aplicar procediments algorísmics)
  • EFB3 (comprendre i dominar els conceptes de l’algorísmica) i
  • EFB4 (ús de programes informàtics)

 

PROVA ESCRITA I

Aquesta activitat serà unipersonal i avaluarà els dos primers continguts de l'assignatura. Amb aquesta avaluació s'avaluen els resultats d'aprenentatge RA1 i RA2.

PROVA ESCRITA II

Aquesta activitat serà unipersonal i avaluarà tots els continguts de l'assignatura. Amb aquesta activitat s'avaluen els resultats d'aprenentatge RA1, RA2, RA3 i RA4, però donant més pes als resultats d'aprenentatge no avaluats en la prova escrita I.

 

A nivell competencial aquestes dues proves, cobreixen les següents competències comunes i específiques de l’assignatura:

  • CIN1 (desenvolupar programari)
  • CIN6 (aplicar procediments algorísmics),
  • EFB3 (comprendre i dominar els conceptes de l’algorísmica i la seva aplicació per a resolució de problemes)

Per tal de superar (aprovar) les activitats avaluatives, els estudiants hauran de demostrar

  • Que han adquirit els coneixements teòrics relatius als continguts de l’assignatura i que la seva comprensió els permet de portar-los a la pràctica [MECES-2 punt a, punt c]
  • Que poden desenvolupar solucions a problemes que, si bé són semblants a d’altres vistos anteriorment, presenten aspectes que són nous [MECES-2 punt f]

En relació a la competència bàsica assignada a l’assignatura, aquesta queda coberta especialment pel que fa als aspectes que s’expliciten:

  • B2: resolució de problemes dins de la seva àrea d’estudi.

Finalment, i pel que fa  a les competències transversals associades a l'assignatura:

  • T1: (coneixement tercera llengua) es treballa a partir de les fonts documentals que els estudiants han de consultar, atès que totes elles es troben en anglès.
  • T2: (treball en grup) es treballa en les activitats de pràctiques que es realitzen en grups de dos estudiants que han de consensuar i contribuir les solucions de les activitats pràctiques.

 

Normes de realització de les activitats

Per a cada activitat, els docents n'informaran de les normes i condicions particulars que les regeixin.

Les activitats unipersonals pressuposen el compromís de l'estudiant de realitzar-les de manera individual. Es consideraran suspeses totes aquelles activitats en què l'estudiant no s'ajusti a aquest compromís,  independentment del seu paper (emissor o receptor).

Igualment, les activitats que s'hagin de realitzar en grups pressuposen el compromís per part dels estudiants que l'integren de realitzar-les en el si del grup. Es consideraran suspeses totes aquelles activitats en què el grup no hagi respectat aquest compromís amb independència del seu paper (emissor o receptor).

En les activitats realitzades en grup el docent pot, en base a la informació de què disposi, personalitzar la qualificació per a cada integrant del grup.

Qualsevol activitat no lliurada es considerarà puntuada amb zero punts.

És potestatiu dels docents acceptar o no lliuraments fora dels terminis que s'indiquin. En el cas que aquests lliuraments fora de termini s'acceptin, és potestatiu del docent decidir si aplica alguna penalització i la quantia d'aquesta.

Sistema d'avaluació


La qualificació final és la suma ponderada de les qualificacions de les activitats:

ACTIVITAT           PES

PROVA ESCRITA I    23%

PROVA ESCRITA II   45%

PRACTICA 1   8%

PRACTICA 2   8%

PRACTICA 3   8%

PRACTICA 4   8%

Amb les ponderacions anteriors, les activitats de laboratori (pràctiques) tenen un pes del 32%, les activitats de caire teòric tenen un pes del 68%.

Si la qualificació de la PROVA ESCRITA II és inferior a 4, la qualificació final de l’assignatura serà la d’aquesta activitat. L'assignatura quedarà suspesa, amb possibilitat de recuperació.

Per aprovar l'assignatura és necessari que l'estudiant:

  • com a mínim, hagi lliurat tres pràctiques, i què,
  • la qualificació mínima de tres de les pràctiques lliurades ha de ser un 4.

Si no es donen aquestes premisses l'assignatura quedarà suspesa i en aquest cas sense possibilitat de recuperar-la.

La recuperació només possibilita recuperar la qualificació de les activitats teòriques, PROVA ESCRITA I i II, i sempre que aquesta nova qualificació no sigui inferior a 4 s’aplicarà la mateixa ponderació descrita anteriorment. En cas contrari l’assignatura no es considerarà recuperada.

 

Bibliografia


Bàsic

Enric Sesa i Nogueras. POO: notes de classe i exemples. ESUPT Tecnocampus.

Lina Juan: Ampliació notes de classe. Exercicis. ESUPT Tecnocampus.

Complementary

Bertrand Meyer. Object-Oriented Software Construction. PRENTICE-HALL

Bruce Eckel. Thinking in Java. Prentice-Hall