Informació general


Idiomes d'impartició


  • Català

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.

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.

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:

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

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

  • CT1: (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.
  • CT2: (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%

Si la qualificació de la PROVA ESCRITA II té una qualificació  inferior a 4 la qualificació final de l’assignatura serà la d’aquesta activitat.

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

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, a l’igual que, si un estudiant o estudianta no ha realitzat les pràctiques de l’assignatura aquesta no pot ser recuperada.

 

Bibliografia


Bàsica

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


Complementària

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

Bruce Eckel. Thinking in Java. Prentice-Hall