Descripció
El projecte proposat als estudiants té les seguents caracteristiques:
- Es parteix d'un enunciat mínim per tal que l'estudiant tingui l'iniciativa per interpretar el que ha de fer el seu programa.
- El projecte és suficientment gran perquè un intent de solució "directe" no sigui factible.
- El projecte té un fort component algorísmic i d'estructures de dades.
- L'objectiu de l'estudiant ha de ser lliurar el seu programa, dins d'uns marges raonables, com a producte acabat i no tan sols com a una pràctica.
- Per a la seva implementació, es fomentarà l'ús de components creats per altres i l'aportació de components a altres projectes.
Per implementar aquest projecte, el sistema de treball serà el seguent:
- Els estudiants s'organitzen en grups de 3 persones, i els grups s'estructuren en macrogrups de 3 grups (els "clusters") de 9 persones.
- Cada "cluster" tindrà un profesor tutor assignat.
- Hi haurà 3 enunciats diferents cada quatrimestre que hauran de ser resolts tots ells per cada un dels "clusters" (un enunciat per a cada grup). Encara que els enunciats són diferents, presentaran suficients semblances com perquè tingui sentit identificar parts comunes que puguin ser desenvolupades una sola vegada i reutilitzades per tot el "cluster".
- Dins de cada grup, un estudiant i tan sols un és responsable de programar i provar cada classe.
Pla de desenvolupament
A l'inici del curs, els estudiants reben els enunciats dels projectes i tenen una setmana per organitzar-se en grups i "clusters".
Hi ha tres lliuraments al llarg del curs, separats per períodes de temps similars (entre quatre i cinc setmanes). L'esquema del contingut de cada un d'ells és el següent:
- Primer lliurament: especificació i anàlisi. Es lliurarà un enunciat ampliat en llenguatge natural, una descripció detallada de les funcionalitats a desenvolupar, un model del domini del problema i la lista de requeriments no funcionals del programa.
- Segon lliurament: disseny i principi de l'implementació. Aquesta entrega inclou el disseny de la possible part compartida entre els grups del "cluster" i la seva implementació. A més a més s'ha de implementar completament el model del domini.
- Tercer lliurament: programa final funcionant completament d'acord amb les especificacions del primer lliurament, acompanyat de la documentació tècnica i la documentació d'usuari del programa.
Els dos primers lliuraments són asíncrons, mentre que el lliurament final consisteix en una entrevista amb cada grup d'aproximadament una hora de durada, en la qual els estudiants fan una "demo" del seu programa i responen a les possibles preguntes del tutor.