Come riescono i professori a discernere chi copia e chi no?

D
Double_F (800 points)
2 4 9
asked Nov 4, 2017 in Funzionamento degli homework by Double_F (800 points)
closed Nov 6, 2017 by andrea.sterbini
Non so se altri si trovano nella stessa situazione, ma sono sinceramente curioso di sapere come lavora il software che usano i professori per capire chi ha copiato e chi no, dato che per entrambi gli homework ho lavorato insieme ad altri 2 studenti (il che non mi pare affatto sbagliato dato che mi sembra di ricordare che fu addirittura detto in una delle prime lezioni che il lavoro di squadra non solo non è proibito ma è addirittura incentivato) e tutti insieme siamo giunti ad una conclusione, per la quale avevamo lavorato ognuno in egual misura.

Il che non può di certo chiamarsi "copiare", ciononostante la prova di laboratorio la devo fare lo stesso, sebbene  abbia lavorato agli homework onestamente, e da questo nasce la mia curiosità di sapere come funziona il software "anticopiatura", perchè sinceramente mi pare assurdo essere accusato di aver copiato e dover sostenere una prova ulteriore per colpa di un programma.

(Ci tengo a specificare che ovviamente non sto chiedendo informazioni per aggirarlo, gradirei piuttosto maggiore chiarezza così da potere "scendere a patti" col software ed evitare l'insorgere di problemi analoghi, se tutto ciò è stato già detto a lezione e me lo sono perso, mi scuso anticipatamente per il post inutile).
843 views
closed with note: answered

4 Answers

Best answer
giorgio.belli (10140 points)
17 74 98
answered Nov 4, 2017 by giorgio.belli (10,140 points)
selected Nov 5, 2017 by Double_F
Ciao, non so darti una spiegazione in termini di codice del software che assegna i cartellini, però credo che il software confronta ogni compito con gli altri andando a guardare le successioni di operazioni che svolgono, posizione dei blocchi etc.. in pratica se due programmi fanno le stesse operazioni in momenti simili significa che sono quasi uguali.
Quando questa soglia supera l'80% scatta il cartellino.
Spero di averti dato qualche info in piu :)
D
Double_F (800 points)
2 4 9
commented Nov 5, 2017 by Double_F (800 points)
edited Nov 5, 2017 by Double_F
Ti ringrazio molto per la risposta :)
Ma se il software lavora davvero così, non c'è il rischio che due persone scrivano un codice simile e poi si prendano il cartellino anche se magari non si sono mai parlati? Perché a pensarci bene, se le soluzioni ottimali per questi primi homeworks sono poche, ed essendo tanti gli studenti del corso, la probabilità che succeda non mi sembra neanche così infima.
giorgio.belli (10140 points)
17 74 98
commented Nov 5, 2017 by giorgio.belli (10,140 points)
ovviamente il software lavorerà con molti controlli non semplicemente come ti ho spiegato io, comunque credo che le possibilità di realizzare dei controlli nello stesso punto del codice e nello stesso momento sia veramente bassa se non ci si parla anche perche per scattare il cartellino devi superare una soglia abbastanza alta di somiglianza.
Non so darti spiegazioni troppo precise perche ovviamente non so come sia fatto il software.
Buona giornata
split (8700 points)
15 59 79
answered Nov 4, 2017 by split (8,700 points)
se stai chiedendo come funziona il software che riconosce programmi "uguali" non ne ho idea, ma non credo che qualcuno te lo dirà, anche se non è difficile immaginarlo. per quanto riguarda il lavorare insieme, è sempre stato consigliato, ma un conto è arrivare ad un'idea insieme, un conto è anche solo dirsi a voce senza vedere lo scritto, come poter sviluppare quell'idea. una volta che arriviamo a una conclusione, tu magari  mi hai anche detto come la faresti tu, con quali cicli con quali criteri e quali controlli; se io da solo avrei avuto una idea peggiore, poi non mi viene da farla, mi viene da fare la tua, perché è più efficiente, e lì anche se chiami tutte le variabili in modi diversi può scattare un giallo. quindi il senso di lavorare insieme credo sia "arrivare ad imboccare una buona strada insieme" e non "percorrerla insieme"...in questa immagine copiare sarebbe proprio "ti prendo in braccio e ti porto io"... non so se si capisce cosa intendo spero di si.
D
Double_F (800 points)
2 4 9
commented Nov 5, 2017 by Double_F (800 points)
"se io da solo AVESSI avuto un'idea peggiore"

Comunque sia, qui non si sta parlando della correttezza o meno del modus operandi, qui si sta parlando di come si può "accusare" qualcuno di aver copiato, quando quello che ha fatto non corrisponde neanche alla definizione fornita dalla lingua italiana del verbo "copiare".
split (8700 points)
15 59 79
commented Jun 23, 2018 by split (8,700 points)
a distanza di tanto tempo sono ricapitato qui per caso.. e posso ribadire che in questo caso è "se io avrei". c'è la falsa credenza che il condizionale non va mai col se, non ho mai capito perché.
il senso è "se a me, da solo, mi sarebbe venuta una idea"... (nel caso in cui io fossi stato da solo mi sarebbe venuta...)
http://forum.accademiadellacrusca.it/forum_5/interventi/1377.shtml.html
andrea.sterbini (172780 points)
514 935 1789
answered Nov 4, 2017 by andrea.sterbini (172,780 points)
Permettimi di partire da più lontano.

L'obiettivo del corso è farvi imparare a programmare Python sufficientemente. E' nostra convinzione che si impari a programmare solo programmando, e programmando parecchio. Per questo il corso è incentrato su molto lavoro da fare a casa, con un occhio anche all'efficienza ed alla "eleganza" del codice.

Chi imita il codice di altri (anche in buona fede) "resta al bordo della piscina" e non impara a nuotare.
Per questo controlliamo automaticamente quanto i vostri programmi siano simili e poi ci spulciamo a mano quelli che superano una certa soglia.

Collaborare è ottimo se riguarda idee, soluzioni, trucchi, algoritmi, ma NON scrivere il codice. Il codice dovete scriverlo autonomamente, non per noi, ma perchè solo così vivrete sulla vostra pelle la decina di scelte tecniche che si nascondono nell'usare una certa struttura dati, di un certo modo di scandire gli input o di un certo modo di usare un for.

Una volta in piscina dovete dare voi le bracciate nell'acqua, perchè poi in mare sarete da soli.
Gianluigi (1420 points)
7 17 30
commented Nov 5, 2017 by Gianluigi (1,420 points)
Molto belle le metafore, e il fatto che un professore parli cosi' agli studenti :)
D
Double_F (800 points)
2 4 9
commented Nov 5, 2017 by Double_F (800 points)
La ringrazio della sua risposta, seguirò il suo consiglio.
o
orlandoalessio1998 (7730 points)
4 24 36
answered Nov 4, 2017 by orlandoalessio1998 (7,730 points)
edited Nov 4, 2017 by orlandoalessio1998
Ciao,
Ho gia letto la risposta del prof, condivido in pieno il suo pensiero e volevo giusto aggiungere una piccola esperienza personale.

Nei due HW consegnati ,io e il mio gruppo di lavoro, non abbiamo fatto altro che parlare di vari approcci per riuscire a risolvere i problemi riscontrati eppure non siamo mai incappati nel cartellino. Di solito noi agiamo così:
i primi giorni lavoriamo da soli (chi inizia prima, chi dopo) dopodichè quando riusciamo a risolvere i primi esercizi iniziamo a confrontarci, se qualcuno ha una qualche sorta di problema lo aiutiamo (non da codice .. solo pseudocodici e tecniche di debugging) fino a quando non si raggiunge un determinato obiettivo.

Capita che qualcuno non riesca a finire uno dei propri HW in tempo...capita, io stesso per risolvere il 2nd es dell HW2 ci ho messo due giorni (la sera del 31 e tutto l'1), ho parlato con il gruppo.. avoja se ci ho parlato, ma non ho mai usato i loro codici ne tantomeno ho usato le loro idee per creare il mio.. le ho usate per capire il perchè del mio errore ( alla fine ho cambiato totalmente metodo perchè un problema ne creava un'altro ahah). Abbiamo parlato della possibilità di usare determinate funzioni, abbiamo parlato delle varie condizioni e di come impostarle al meglio, abbiamo parlato dei casi limite di ognuna delle condizioni, ma alla fine ognuno di noi ha avuto Intricatezza diversa, velocità diversa, in pratica, programmi diversi...

L'obiettivo del lavorare insieme è l'uso della ragione, il troubleshooting, il trovare la risposta nel miglior modo possibile.. e questo può essere fatto in gruppo.. ma non può essere fatto DAL gruppo.. è questa la chiave principale.. so che il limite è molto flebile ma questo è.. e se fatto bene non viene, giustamente, sanzionato con cartellino.
D
Double_F (800 points)
2 4 9
commented Nov 5, 2017 by Double_F (800 points)
Copio e incollo parte di una mia risposta ad un commento più sopra:

Qui non si sta parlando della correttezza o meno del modus operandi, qui si sta parlando di come si può "accusare" qualcuno di aver copiato, quando quello che ha fatto non corrisponde neanche alla definizione fornita dalla lingua italiana del verbo "copiare".
andrea.sterbini (172780 points)
514 935 1789
commented Nov 5, 2017 by andrea.sterbini (172,780 points)
edited Nov 5, 2017 by andrea.sterbini
Chiaramente io non so se i compiti che ho segnalato sono "copiati", quello che so, guardandoli, è che sono così simili da essere indistinguibili (ed abbiamo tenuto le soglie di somiglianza molto molto alte, con i valori normali avremmo segnalato più del doppio di compiti).
Nel dubbio risolvo la questione permettendovi di "dimostrare sul campo" che sapete programmare (che è l'unico obiettivo del corso).
Credo che questa sia la soluzione di compromesso più fair nei confronti di tutti.

BTW: le regole erano chiare fin dall'inizio.
o
orlandoalessio1998 (7730 points)
4 24 36
commented Nov 5, 2017 by orlandoalessio1998 (7,730 points)
In risposta a doublef:
Io, infatti ho parlato del modus operandi per un motivo...
Come si può distinguere il lavoro di uno da quello di unaltro se essi stessi lavorano all'unisono? L'unico modo per far sì che due compiti siano diversi è lavorando in modi diversi .. a volte il subconscio è veramente potente, basta poco che si inizia a lavorare e a pensare allo stesso modo.

Sempre ad esempio il secondo esercizio del primo hw mi era stato dato come esercitazione da un mio vecchio prof di informatica ... Allora ero ancora inesperto e non trovai la soluzione, così la cercai su internet e scoprii la ricorsione
La scorsa settimana, quando provai a riscrivere da solo quel codice usai pari pari lo stesso metodo visto su internet .. senza neanche accorgermene (dopo, per sicurezza, riscrissi il codice)