Responsable: | (-) |
Altres: | (-) |
Crèdits | Dept. | Tipus | Requisits |
---|---|---|---|
9.0 (7.2 ECTS) | CS |
|
Responsable: | (-) |
Altres: | (-) |
L'objectiu general de l'assignatura és que l'estudiant sigui capaç d'escriure
amb fluïdesa programes correctes i llegibles que resolguin problemes de
dificultat elemental.
Hores estimades de:
T | P | L | Alt | L Ext. | Est | A Ext. |
Teoria | Problemes | Laboratori | Altres activitats | Laboratori extern | Estudi | Altres hores fora d'horari fixat |
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
2,0 | 1,0 | 3,0 | 0 | 3,0 | 3,0 | 0 | 12,0 | |||
- Funcions, accions, crides, pas de paràmetres (d'entrada, de sortida i d'entrada sortida; paràmetres reals i formals; pas per valor i per referència).
- Àmbit de les variables. - Descomposició funcional. - Ús de llibreries de funcions bàsiques. |
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
2,0 | 1,0 | 3,0 | 0 | 3,0 | 3,0 | 0 | 12,0 | |||
- Seqüències.
- Esquema de recorregut. - Esquema de cerca. - Esquemes híbrids. |
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
2,0 | 1,0 | 3,0 | 0 | 3,0 | 3,0 | 0 | 12,0 | |||
Introducció al disseny d'algorismes recursius
|
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
6,0 | 3,0 | 9,0 | 0 | 9,0 | 9,0 | 0 | 36,0 | |||
- Taules.
- Taules multidimensionals. - Tuples. - Estructuració i processament de dades amb taules i tuples. |
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
4,0 | 2,0 | 6,0 | 0 | 6,0 | 6,0 | 0 | 24,0 | |||
- Algorismes d'ordenació elementals (selecció, inserció i bombolla).
- Cerca dicotòmica. - Fusió de taules. - Ordenació per fusió. - Nocions d'eficiència |
|
T | P | L | Alt | L Ext. | Est | A Ext. | Total | ||
---|---|---|---|---|---|---|---|---|---|---|
0 | 9,0 | 6,0 | 0 | 21,0 | 20,0 | 0 | 56,0 |
Total per tipus | T | P | L | Alt | L Ext. | Est | A Ext. | Total |
20,0 | 19,0 | 36,0 | 0 | 51,0 | 50,0 | 0 | 176,0 | |
Hores addicionals dedicades a l'avaluació | 4,0 | |||||||
Total hores de treball per l'estudiant | 180,0 |
El curs s'organitza en 13 setmanes de classes, a raó de 6 hores setmanals. Cada
setmana hi ha una sessió de 3 hores de teoria/problemes i una altra sessió
de 3 hores de laboratori amb preseència parcial del professor. Es pretén que l'estudiant treballi pel seu compte una extensa col·lecció de problemes.
- El professor de teoria/problemes intercala l'exposició de nou material
teòric amb exemples i problemes. Es combina tant la part magistral, en la qual
el professor exposa, explica i exemplifica els conceptes de l'assignatura, com
la interacció amb els alummnes sobre les diverses alternatives que apareguin
durant la resolució dels problemes. Durant les classes de consolidació,
es treballen molts problemes.
- A les primeres sessions de laboratori, el professor descriu l'entorn de
programació. A partir d'aquell moment, la seva feina fonamental és donar suport
a l'estudiant amb les dificultats que se li plantegin, així com ajudar-lo a
polir el seu estil de programació.
- S'espera que a les sessions de laboratori, i durant les hores d'estudi
personal, els estudiants provin de resoldre els problemes de la col·lecció, i
que enviïn les seves solucions a un jutge automàtic que en comprovarà el
funcionament amb jocs de proves exhaustius. Al principi del curs, si el programa
enviat és incorrecte, el jutge proporcionarà algun exemple concret d'entrada per
al qual falli. Més endavant, el jutge només indicarà que un programa és erroni,
i serà responsabilitat de l'estudiant trobar el motiu i corregir-lo.
Addicionalment, l'estudiant farà bé de mostrar regularment els seus programes
(funcionin o no) als professors, per tal que aquests n'avaluïn la qualitat.
Al càlcul de la nota final de l'assignatura intervenen les notes següents (totes elles sobre 10).
NF = nota final de l'assignatura
NA = nota d'una prova de resolució de problemes nous
NL = nota de les proves de resolució de problemes de llistes tancades a laboratoris
NE = nota de l'examen final.
La nota NL es calcula com a mitjana ponderada de les notes de 3 proves consistents a resoldre un exercici de programació. La resolució es farà durant les classes de laboratori i es farà amb l'ús d'un avaluador automàtic que es descriurà més avall. Per a cada prova, l'exercici serà escollit d'una llista coneguda amb antelació per l'estudiant. Per presentar-se a cadascuna de les proves serà imprescindible haver enviat amb èxit a l'avaluador automàtic un nombre mínim (establert per a cada prova) de problemes de la llista; altrament, la nota de la prova serà No Presentat. Les tres proves tindran pesos 20%, 40% i 40% en el càlcul de la nota NL.
La nota NA s'obtindrà de la resolució d'un altre exercici de programació. Al igual que les proves de la nota NL, s'avaluarà mitjançant l'avaluador automàtic. A diferència d'elles, l'exercici a resoldre no serà necessàriament de cap llista publicada amb antelació (serà un problema nou), i es farà alhora per tots els grups de l'assignatura, fora d'hores de classe, en un interval de temps establert per la Facultat a l'efecte.
La nota NE provindrà d'un examen fet a final de curs, que es resoldrà en paper, sense ordinador ni avaluador automàtic.
La nota NF es calcula com:
NF = màxim( 40% NE + 20% NA + 40% NL, 70% NE ).
L'avaluació mitjançant l'avaluador automàtic funciona de la següent manera:
Un problema es defineix amb un enunciat i un o més jocs de proves públics. Resoldre un problema consisteix a escriure un programa correcte (segons els criteris comentats a continuació) que superi tots els jocs de proves, tant públics com privats. Quan un estudiant tingui un programa que consideri correcte, l'enviarà a un jutge automàtic que, en pocs segons, li retornarà un veredicte sobre el comportament del seu programa, que en particular indicarà de manera distinta si passa tots els jocs de proves públics i els privats. Si al final de l'examen no s'ha enviat cap programa que superi tots els jocs de proves públics, la nota és 0.
Altrament, els professors corregiran manualment l'últim programa enviat que superi tots els jocs de proves públics i privats. Si aquest no existeix, es corregirà l'últim que superi tots els jocs de proves públics. Si es detecta que l'estudiant s'ha saltat les regles bàsiques de programació fixades amb claredat durant el curs, o si el programa no compleix els requeriments de l'enunciat, o si l'algorisme usat per resoldre el problema és manifestament inadequat, la nota és 0.
Altrament, sigui V la valoració, entre 0 i 5, donada pels professors al programa corregit (en funció de la claredat, l'estil, etcètera). Es calcularà també una penalització P del problema per enviaments erronis de la següent manera: S'afegirà a P 1 punt per cada enviament al jutge que no superi els jocs de proves públics, i 0,3 punts per cada enviament que superi els jocs de proves públics però no els privats, quedant-ne exclosos fins a 3 enviaments (els tres amb penalització més gran, si n'hi ha d'ambdós pesos). La nota del problema és max(V+5-P,0) si el programa passa tots els jocs de proves públics i privats, i max(V+2,5-P,0) si no passa tots els jocs de proves privats.
Qualsevol intent de frau realitzat durant el curs comportarà l'aplicació de la normativa acadèmica general de la UPC i l'inici d'un procés disciplinari.
(-)