[AVVISI] modifica all'assegnamento dei bonus

andrea.sterbini (172780 points)
513 935 1789
asked Oct 22, 2019 in Avvisi by andrea.sterbini (172,780 points)
edited Oct 24, 2019 by andrea.sterbini
Come detto già altrove, il tempo di esecuzione (e quindi il bonus ad esso associato) viene calcolato SOLO se si superano tutti i test.
Questo per due motivi:

tecnico: spesso i programmi che non passano tutti i test hanno dei tempi di esecuzione totali molto grandi, e visto che la valutazione dei tempi avviene eseguendo 30 run, la VM va in blocco e non vengono completati i test. Aggiungere questi programmi a quelli di cui si calcola il tempo medio di esecuzione non modifica particolarmente la classifica, visto che sarebbero nella parte bassa della graduatoria.

di equità: calcolare i tempi per un programma che non passa tutti i test potrebbe portare qualcuno a prendere delle scorciatoie in cui si evita di calcolare il test più lento pur di ottenere un tempo complessivo minore, distorcendo la graduatoria (questi programmi potrebbero facilmente posizionarsi nella parte alta della graduatoria).

Il bonus assegnato per intricatezza minore l'anno scorso era calcolato per tutti quelli che superano il 24/30. Ci siamo resi conto che questo può portare alla realizzazione di programmi abbastanza inefficienti ma che recuperano un paio di punti col bonus spezzettando il programma in modo eccessivo fregandosene dell'efficienza e dell'eleganza.

Io e Monti abbiamo deciso di uniformare i due bonus, che d'ora in poi saranno assegnati SOLO se si superano tutti i test (al 1/3 migliore).

In questo modo si introduce un trade-off tra la riduzione della intricatezza e la riduzione dell'efficienza, visto che la suddivisione in pezzi piccolissimi diminuisce l'intricatezza aumentando i tempi mentre l'ottimizzazione esasperata diminuisce i tempi ma aumenta l'intricatezza.

Mi rendo conto che questo ridurrà la platea dei pretendenti al bonus, discuterò con Monti se aumentare la porzione della classifica che viene premiata (che ora è 1/3 di chi prende 30)

Aggiungo che è sempre possibile migliorare il voto di un HW svolgendo il corrispondente HW di recupero (vale il migliore dei due voti)

EDIT: abbiamo deciso di dare il bonus a metà di chi passa tutti i test invece che 1/3

9 Answers

plm (18850 points)
7 15 118
answered Oct 22, 2019 by plm (18,850 points)
Onestamente credo che sia un po' sbilanciato così, nel senso che i programmi dovranno essere praticamente "perfetti" e superare tutti i test. Questo vorrebbe dire che nell'eventualità che ci siano 150 studenti che riescono ad arrivare ad un algoritmo che soddisfi tutti i requisiti richiesti, circa una 40ina non riceveranno bonus (so che ci sono qualcosa come 300 e passa iscritti a q2a) . Il sistema secondo me è giustissimo, ma andrebbe aumentata la soglia di chi può ottenere i bonus, rendendo così il sistema equo veramente.
LUPOSaymon (2730 points)
1 3 27
answered Oct 22, 2019 by LUPOSaymon (2,730 points)
Condivido questa modifica pienamente,inutile ottenere dei bonus se il programma non funziona correttamente con tutti i test. Inoltre, anche io ho notato che conveniva rinunciare a qualche ottimizzazione per ottenere il bonus intricatezza, visto che tanto il tempo veniva calcolato solo se si passava tutti i test
E
Edward (25950 points)
2 4 172
answered Oct 22, 2019 by Edward (25,950 points)
Anche io condivido questa modifica, non ha molto senso dare bonus ad un programma che non passa tutti i test.

Con le regole vecchie, per il primo homework opzionale (che alla fine non genera un voto valido ai fini del corso, ma lo uso come esempio) era possibile scrivere un programma con bassa complessità ciclomatica che non superava il test tanti 1 (quindi poco efficiente), prendere 28 con 2 punti bonus, e quindi ricevere 30.
Mentre un programma che superava tutti i test, ma con una complessità cliclomatica maggiore e che si trovava verso la fine della classifica in termini di tempo, avrebbe comunque preso 30. Ossia lo stesso voto di un programma che non superava tutti i test.

Credo sia opportuno però, come dice lei verso la fine, aumentare la porzione della classifica che riceverà il bonus, vista la riduzione dei possibili idonei.
AndreaGasparini (18730 points)
6 12 118
answered Oct 22, 2019 by AndreaGasparini (18,730 points)
Mi trovo d'accordo con gli ultimi due commenti, per quanto riguarda questo homework facoltativo io per esempio avevo lasciato la prima soluzione scritta al volo subito dopo la pubblicazione della traccia e mi segnava un punteggio già superiore a 30 senza che ovviamente superassi il test con tanti 1, questo in nessun caso invoglierebbe uno studente a lavorare ancora sul proprio algoritmo per trovare una soluzione migliore se già si viene sufficientemente premiati in questo modo.
Tommaso Sgroi (12990 points)
6 11 91
answered Oct 22, 2019 by Tommaso Sgroi (12,990 points)

Completamente d'accordo, superare i test richiesti dovrebbe essere la base per ottenere i bonus. Un codice che non ne supera uno o va in timeout è evidente che è inferiore a un codice che invece li supera tutti... Ma con i bonus quantomeno per quest'homework, se non si supera un test potenzialmente si potrebbe arrivare a un punteggio pari o addirittura superiore rispetto a uno che invece i test li supera tutti nel tempo prestabilito, ciò rende in'equo il metro di giudizio. Pienamente d'accorto nell'apportare delle modifiche.

Christian (15220 points)
2 4 77
answered Oct 22, 2019 by Christian (15,220 points)
Anche io sono pienamente d'accordo con la modifica, compresa una eventuale estensione della porzione di classifica che riceverebbe il bonus. Durante questo primo homework ho effettuato due consegne, la prima che passava 15 test su 16 con cc bassa e la seconda che passava 16 test su 16 con cc alta ed effettivamente la differenza era minima.. (avendo preso il bonus cc alla prima)
J
Jan Rogala (7260 points)
3 4 37
answered Oct 23, 2019 by Jan Rogala (7,260 points)
Magari il metodo di assegnazione dei bonus per l'anno scorso andava piu che bene dato che vi erano 3 esercizi per ogni homework con meno di 10 test ognuno. Ma dato che quest'anno vi sarà solo un esercizio ad homework penso che avrà una miriade di test per verificare l'efficacia del codice. Modifica secondo me giusta
Tom Grobusch (13960 points)
2 2 10
answered Oct 23, 2019 by Tom Grobusch (13,960 points)
Allora, d'accordo sono, ovviamente non ha senso considerare tempo di esecuzione e intricatezza. Però il problema che vedo è che così questo bonus non ha troppo senso, visto che si può prendere soltanto quando uno ha già 30/30. Quindi forse ci dovrebbe essere un abbassamento del voto che uno ottiene con 16 su 16 test superati, perchè senò a che mi serve il 34, se già con 32 ho praticamente 30 e lode? Quindi penso che così sia già un step nella direzione giusta, ma secondo me ancora non ha tantissimo senso
AndreaGasparini (18730 points)
6 12 118
commented Oct 23, 2019 by AndreaGasparini (18,730 points)
il voto finale degli homework fa media ponderata con il voto dell'esame finale, perciò 34 non è assolutamente uguale a 32 e nessuno dei due garantisce 30 e lode come voto finale
Tom Grobusch (13960 points)
2 2 10
commented Oct 23, 2019 by Tom Grobusch (13,960 points)
Comunque chi riesce a prendere 32 probabilmente non prenderà mai meno di 30, quindi è soltanto la possibilità per i bravissimi di poter prendere un voto più basso senza tante consequenze. Quindi rende la possibilità di prendere un voto alto più facile solo a quelli che già ce l'avevano. Non so se mi sono spiegato, ma non mi sembra troppo giusta come cosa
andrea.sterbini (172780 points)
513 935 1789
commented Oct 23, 2019 by andrea.sterbini (172,780 points)
Il bonus è sul singolo esercizio.
Non è pensato solo per i più bravi, si può essere bravi su un esercizio e medi su altri.
Un 32 o 34 su un esercizio permette di stressarsi di meno sugli altri.
E naturalmente, come ha detto @AG, il voto finale è la media ponderata di HW (1/3) e esame in laboratorio (2/3)
Tom Grobusch (13960 points)
2 2 10
commented Oct 23, 2019 by Tom Grobusch (13,960 points)
Queste cose le ho capite, comunque non mi sembra giusto che le persone che già sono brave abbiano la possibilità di rilassarsi dopo. Così la divisione tra i bravi e quelli bravissimi diventa solo più grande più homework si fanno. E questo solo per capirci lo dico dalla vista di uno che ha preso 34 a questo primo homework. Quindi non pensare che vorrei solo avere un voto più alto, ma seriamente non mi sembra veramente giusto. Alla fine comunque non mi interessa troppo ed è una decisione dei professori ovviamente, doveva soltanto essere una cosa per riflettare e non volevo dire che ci sia un modo più giusto, sinceramente non saprei come si potrebbe migliorare.
a
a.pietroluongo (11250 points)
15 38 131
answered Dec 2, 2019 by a.pietroluongo (11,250 points)
[quote]EDIT: abbiamo deciso di dare il bonus a metà di chi passa tutti i test invece che 1/3[/quote]

Salve Professore,

Penso che si sia dimenticato di aggiornare le Regole del corso
andrea.sterbini (172780 points)
513 935 1789
commented Dec 2, 2019 by andrea.sterbini (172,780 points)
Grazie, ora dovrebbe essere a posto