Dades generals

Curs acadèmic:
2017
Descripció:
Disseny modular. Conceptes avançats d'orientació a objectes. Casos pràctics. Desenvolupament d'un projecte de programació.
Crèdits ECTS:
5

Grups

Grup A

Durada:
Semestral, 2n semestre
Professorat:
MIQUEL BOFILL ARASA  / FRANCISCO CASTRO VILLEGAS
Idioma de les classes:
Català (100%)

Competències

  • CT04 Treballar en equip
  • CC3 Capacitat per avaluar la complexitat computacional d'un problema, conèixer estratègies algorítmiques que poguin conduir a la seva resolució i recomenar, desenvolupar i implementar aquella que garanteixi el millor rendiment d'acord amb els requisits establerts.
  • CIS3 Capacitat de donar solució a problemes d'integració en funció de les estratègies, estàndards i tecnologies disponibles.

Continguts

1. Conceptes bàsics en el disseny de programes.

          1.1. Descomposició i abstracció. Formes d'abstracció.

          1.2. Modularització.

          1.3. Disseny descendent vs Disseny ascendent.

2. Orientació a objectes.

          2.1. Herència vs Subtipatge.

          2.2. Utilització vs Refinament.

          2.3. Polimorfisme vs Genericitat.

          2.4. El principi de substitució. Compatibilitat de les especificacions.

3. Documentació, verificació i proves.

          3.1. Documentació vs Especificació formal.

          3.2. Ajuts per entendre les implementacions: funció d'abstracció i invariant de la representació.

          3.3. Eines de suport.

4. Casos pràctics de disseny d'aplicacions.

Activitats

Tipus d’activitat Hores amb professor Hores sense professor Total
Anàlisi / estudi de casos 10,5 0 10,5
Classes expositives 10,5 0 10,5
Classes pràctiques 12 0 12
Prova d'avaluació 3 0 3
Resolució d'exercicis 0 15 15
Treball en equip 14 60 74
Total 50 75 125

Bibliografia

  • Liskov, Barbara (2000 ). Program Development in Java : Abstraction, Specification,and Object-Oriented Design . Boston: Addison-Wesley. Catàleg
  • Coad, Peter (1999 ). Java design : building better apps and applets (2nd ed.). Upper Saddle River, N.J.: Yourdon Press. Catàleg
  • Preiss, Bruno R (2000 ). Data structures and algorithms with object-oriented designpatterns in Java . New York: John Wiley and Sons. Catàleg
  • Leiserson, Charles Eric Rivest, Ronald L. Cormen, Thomas H. Stein, Clifford (cop.2001 ). Introduction to algorithms (2nd ed.). New York: McGraw-Hill. Catàleg

Avaluació i qualificació

Activitats d'avaluació:

Descripció de l'activitat Avaluació de l'activitat %
Petits exercicis de laboratori. Es valorarà l'adequat ús de les tècniques i de les eines a l'abast. Cada exercici s'haurà de lliurar en el termini d'una setmana a partir de la data que es proposi. UN COP PASSAT AQUEST TERMINI NO S'ACCEPTARÀ EL LLIURAMENT DE CAP EXERCICI. AQUESTS EXERCICIS NO ADMETEN RECUPERACIÓ. 15
Projecte de programació. S'avaluarà a partir de diversos lliuraments de material (programes i/o documentació) distribuïts al llarg del curs. La nota estarà determinada pel grau d'assoliment dels objectius pactats amb el professor durant les sessions de monitorització. Els terminis de lliurament de les diferents parts s'indicarà en el propi enunciat del projecte. UN COP PASSAT AQUESTS TERMINIS NO S'ACCEPTARÀ EL LLIURAMENT DE CAP MATERIAL. EL PROJECTE NO ADMET RECUPERACIÓ. 50
Examen. Es valorarà cada pregunta per separat. Les respostes es puntuaran en funció del grau d'assoliment de les competències corresponents. L'examen pot cobrir tant aspectes teòrics com pràctics. No s'exigirà nota mínima per fer la mitjana ponderada amb les altres qualificacions. L'EXAMEN NO ADMET RECUPERACIÓ. 35

Qualificació

- La nota final de l'assignatura s'obté de la següent manera:

Nota final = Pràctiques petites (15%) + Projecte (50%) + Examen (35%)

- Totes les activitats d'avaluació que no siguin presentades en els terminis establerts seran qualificades amb "no presentat". No hi ha cap activitat recuperable.

- No s'exigirà nota mínima de cap de les activitats d'avaluació. L'assignatura quedarà aprovada si i només si el resultat de la mitjana ponderada de les qualificacions és major o igual a 5 sobre 10.

- Criteris específics del projecte:

El projecte de programació es desenvoluparà obligatòriament en grup. El professor monitoritzarà un cop per setmana el projecte, a partir de l'inici del seu desenvolupament. Cada grup haurà de discutir setmanalment amb el "client" (el professor) aspectes com ara les delimitacions del projecte i els mètodes i tècniques d'implementació, rebent el feedback necessari. Al mateix temps, cada grup haurà de proposar nous objectius de cara a la setmana vinent. La monitorització es farà en hores de laboratori, i han d'assistir-hi tots els alumnes. En cas de no poder-hi assistir, l'alumne haurà de concertar una cita alternativa amb el professor. Altrament es considerarà el projecte com a interromput.

La interacció amb el "client" (el professor) a l'hora de definir l'especificació de les funcionalitats i usos del programa, i la discussió de la implementació del programa amb un programador "expert" (el professor), influiran en la qualificació del projecte.

L'avaluació del projecte podrà tenir en compte tant l'aportació individual de l'alumne com els resultats del seu grup. Això implica que no tots els components d'un grup tindran necessàriament la mateixa nota.

Criteris específics de la nota «No Presentat»:
L'alumne obrindrà la nota de "No Presentat" només en el cas que no hagi fet el darrer lliurament del projecte i no s'hagi presentat a examen.

Observacions

IMPORTANT:
Aquesta assignatura té EDA com a correquisit. Això significa que cap alumne s'ha de matricular d'aquesta assignatura si no s'ha matriculat també d'EDA (o bé ja té aprovada EDA d'un curs anterior). Cursar Projecte de Programació sense haver cursat EDA no té gaire sentit, i aniria en perjudici de l'alumne sense cap mena de dubte. Indirectament, atès que MTP2 és un prerequisit d'EDA, això implica que cap alumne amb MTP2 no aprovada pot matricular-se d'aquesta assignatura.

L'objectiu principal d'aquesta assignatura és el de practicar la programació d'aplicacions de mitjana escala, incloent el disseny, la documentació, la implementació i les proves. Es treballaran tant els aspectes lligats a la qualitat del producte final (eficiència, correcció, reusabilitat de components, ...) com al propi procés per arribar-hi (organització de l'equip de treball, documentació, proves, prototipatge, ...).

L'alumne haurà d'aplicar coneixements i habilitats adquirits en les assignatures prèvies de "Metodologia i tecnologia de la programació" i "Estructures de dades i algorísmia", i complementar-los amb nous coneixements adquirits pel seu compte (en particular del llenguatge de programació Java) amb la guia del professor.

Assignatures recomanades

  • Estructures de dades i algorítmica
  • Metodologia i tecnologia de la programació I
  • Metodologia i tecnologia de la programació II