Domanda:
Esistono strumenti per impedire agli studenti di barare a un esame di programmazione somministrato su computer?
Guillermo Guardastagno
2014-09-21 06:44:08 UTC
view on stackexchange narkive permalink

Sto insegnando un corso di introduzione all'informatica, in cui ci occupiamo principalmente di programmazione C. Mi è stato assegnato un laboratorio per insegnare il corso, ma ci sono più studenti che computer disponibili. Inoltre, non ho alcun controllo su quei PC e quasi tutti gli studenti hanno i diritti di amministratore su di essi. È anche comune che gli studenti portino il laptop in classe e si colleghino al Wi-Fi del campus, che non ho affatto controllo.

Gli esami sono piccoli algoritmi da risolvere e inizialmente stavo pianificando come fanno gli altri insegnanti del corso - per consentire agli studenti di utilizzare un computer (dal laboratorio o dal proprio) per verificare la correttezza dei loro algoritmi. Tuttavia, allo stato attuale delle cose penso sia piuttosto facile per gli studenti imbrogliare: potrebbero usare Facebook, la posta elettronica o qualsiasi strumento Internet per scambiare codice sorgente o informazioni.

Esistono strumenti software che può aiutare a consentire l'uso di un computer ma impedire comunque la collaborazione non autorizzata?

+1 Lo stesso problema esiste (tipicamente) nei componenti del laboratorio di fisica computazionale. In attesa di leggere le risposte.
Scusa ma questa domanda mi sembra fuori tema per due motivi. 1. * Esistono strumenti software che possono aiutare a utilizzare un computer ed evitare il plagio? * Se stai cercando software per impedire ai tuoi studenti di imbrogliare; puoi porre la tua domanda su [SoftwareRecommendations.SE] (http://softwarerecs.stackexchange.com). 2. La tua domanda non riguarda specificamente il mondo accademico, che dire di un manager di un'azienda che vuole testare i suoi dipendenti tramite un esame al computer?
Questa domanda sembra essere fuori tema perché è una richiesta di acquisto di software. Prova [softwarerecs.se] - ma guarda prima il loro meta, per le linee guida su come chiedere, lì.
[Questa domanda] (http://academia.stackexchange.com/q/8464/2692) potrebbe aiutarti poiché si tratta di software antiplagio sebbene non sia per la programmazione.
@Enthusiastic per [questo meta post] (http://meta.academia.stackexchange.com/questions/174/are-questions-on-software-on-topic), la comunità non considera le domande sul software come intrinsecamente fuori tema, se altrimenti sono domande OK (mirate, non troppo ampie)
Se il tuo datore di lavoro non ti fornisce le strutture corrette, non è colpa tua e non puoi essere ritenuto responsabile per le conseguenze del mancato possesso delle strutture corrette (supponendo che tu le abbia richieste). In definitiva, tutto ciò che puoi fare è essere il più vigile possibile e chiedere regolarmente agli studenti cosa sta facendo il loro codice per assicurarti che sappiano cosa fa e siano sicuri di ciò che sta facendo.
Gli esami sono piccoli algoritmi da risolvere e inizialmente _Io stavo progettando ... di consentire l'uso di un computer ... agli studenti per verificare la correttezza dei loro algoritmi._ - Perché? Gli studenti non dovrebbero essere in grado di capire da soli, prima di implementarli effettivamente, se i loro algoritmi sono corretti?
Fortemente in disaccordo con i voti vicini. Questa è una domanda sulla _pedagogia_ dell'informatica, non solo sui consigli sul software. Le questioni pedagogiche sono saldamente in tema.
Esame scritto. Sul serio. Stai insegnando informatica * scienza * (o almeno così dici) non alfabetizzazione informatica.
Se usano il proprio computer, di certo non dovresti mai considerare di costringerli a installare software lì ...
Mi faresti un favore per favore? Chiunque trovi "barare", mandaglielo a modo mio. Nel mondo reale della programmazione lo chiamiamo "problem solving" e non ne trovo abbastanza.
Non sono autorizzato a rispondere direttamente per qualche motivo; tuttavia sono autorizzato a commentare. Questo problema non ha soluzione. Le non-soluzioni commerciali fanno cose brutte alla macchina in questione mentre gli imbroglioni hanno semplicemente imparato a usare un altro computer o telefono cellulare e digitare la risposta.
Conosco alcuni insegnanti che usano un programma chiamato browser bloccato .. Non so davvero se funzionerebbe con i computer degli studenti. Se ci fossero abbastanza computer nel laboratorio potresti anche scollegare il cavo Ethernet ... spero che aiuti
Puoi cercare su Google "PRAKTOMAT" per vedere cosa è possibile fare. Anche se credo che questo progetto sia correlato a Java, potrebbe aiutarti con la tua valutazione.
A volte un approccio psicologico funziona meglio. Dovresti dire ai tuoi studenti che farai "MOSS" le loro risposte per trovare un codice simile: http://theory.stanford.edu/~aiken/moss/ (come qualcuno sotto indicato) Questo scoraggerà la collaborazione.
Un punto importante: gli esami di solito sono critici in termini di tempo, almeno nei miei corsi correvamo sempre al limite per finire tutte le domande nel tempo dato. Quindi non hai bisogno di niente di speciale per impedire loro di imbrogliare, rendilo solo un po 'difficile e dispendioso in termini di tempo, e la maggior parte delle persone non si preoccuperà e piuttosto investirà il loro tempo prezioso nella risoluzione dei problemi!
"quasi tutti gli studenti hanno i diritti di amministratore su di loro", non c'è nulla nel software che puoi fare in quel momento. Puoi risolvere questo problema a livello di rete con firewall appropriati, ma questo non ti aiuterà se lo studente sta utilizzando il proprio dispositivo e si connette a una rete che non controlli, quindi per quanto riguarda le soluzioni tecniche, non hai opzioni reali. Diritti di amministratore == fai quello che vuoi con il computer.
Nove risposte:
jfhc
2014-09-21 17:30:08 UTC
view on stackexchange narkive permalink

Nella mia università nel Regno Unito abbiamo due tipi di valutazione per la programmazione dei corsi. Passa / non supera le "esercitazioni" in cui agli studenti vengono affidati compiti di programmazione e viene esplicitamente consentito di discuterne tra loro e di effettuare ricerche online. Quando lo studente è pronto a presentare la soluzione, un dimostratore la esaminerà e farà domande, ecc. Per assicurarsi che lo studente capisca perché ha scritto il codice che ha scritto. Gli studenti non ottengono un voto per questo conteggio ai fini del voto complessivo dell'anno, ma sono tenuti a 'superare' le esercitazioni per superare l'anno.

Poi ci sono esami scritti senza accesso al computer. Ci sono domande sulla falsariga di "scrivere un codice che risolva questo problema", e anche più concettuali "perché è così? Quando lo useresti? domande. Per i bit di "codice di scrittura", i marcatori dedurranno pochissimi punti per semplici errori di sintassi e cose del genere. La domanda non è tanto "lo studente può scrivere un programma che verrà compilato al primo tentativo?" come "lo studente può inventare un buon algoritmo che risolva il problema e ne dia una ragionevole espressione nel codice?". Nota che questi corsi (presso la mia università) non sono mai per lingue specifiche; sono corsi come "programmazione funzionale" o "programmazione orientata agli oggetti" o "apprendimento automatico", che utilizzeranno ciascuno un linguaggio particolare, ma ci interessa di più che lo studente comprenda i concetti piuttosto che apprenda le complessità del linguaggio del corso.

Questo incoraggia anche gli studenti ad apprendere modi di progettare e scrivere programmi corretti in modo dimostrabile: se riescono a ragionare sui programmi a un livello più profondo dell'intuizione, allora scrivere programmi su carta è una prova migliore di ciò che permettere loro di sperimentare e testare fino a quando l'output "sembra corretto" per gli input che gli hanno fornito.

Questo sembra un buon modo per evitare di barare sui voti che contano e incoraggiare una solida comprensione del materiale importante del corso. Detto questo, molti studenti odiano dover scrivere codice su carta senza accesso a S.O. o un compilatore!

Dopo essermi laureato in un'università del Regno Unito dove abbiamo superato / non superato prove pratiche ed esami scritti a mano, non sono d'accordo con il tuo ultimo paragrafo. L'ho odiato non perché non avevo accesso a Internet, l'ho odiato perché un pezzo di carta non è un buon IDE. Spesso mi ci sono voluti 3-4 cicli di "scrivere del codice -> vedere una carenza risolvibile da una riga nel mezzo -> riscrivere l'intero esercizio, perché non c'è spazio". Questo è banale da fare anche nel Blocco note, ma così frustrante e richiede tempo sulla carta. Tuttavia non riesco a immaginare che i sorveglianti acconsentano mai a un esame con qualsiasi tipo di elettronica.
Comune anche negli Stati Uniti e anche nelle parti tecniche dei colloqui di lavoro. 2 dei miei ultimi 4 mi hanno fatto scrivere su carta o lavagna come avrei fatto determinate azioni in una lingua, e l'ultimo mi ha fatto domande specifiche per la lingua. Non deve essere compilato, ma dovrebbe avere senso!
Per quanto riguarda le domande "perché è questo il caso": odio sempre quando il mio professore fa una domanda come "perché questo codice si compila?" perché la mia risposta è sempre "perché non c'è errore!" `:)` Se hai intenzione di chiedere "Perché ___ fa ___?" domande, si prega di porle in una forma che ha solo una risposta specifica.
Anche la mia università in Nuova Zelanda era molto simile a questa, fino alle classi che usavano tutte la lingua che preferivano, tranne che senza la componente del "ragionamento" o qualsiasi interazione diretta con le persone che facevano il segno. Ricordo che all'epoca non mi piaceva scrivere codice su carta. Dopo essere stato nel mondo reale per un po ', però, ho scoperto che gli esami universitari sono l'unico posto in cui vorresti che un programmatore lavorasse da solo senza accesso a Internet. Non è la migliore preparazione per la realtà.
+1, questa potrebbe essere una lezione introduttiva di CS, ma significa semplicemente che è il momento migliore per insegnare agli studenti che CS non riguarda i computer!
@Magus:, ma poi, gli esami non sono destinati a preparare gli studenti alla realtà anche se il corso che stanno esaminando lo era. I modi in cui i programmatori vengono effettivamente valutati nella realtà probabilmente non sono adatti per la valutazione universitaria, anche se sarebbe divertente provarli. Metti 8 studenti in una stanza con una base di codice di 200k loc e un fascio di storie degli utenti e dì loro che hanno 2 settimane per chiudere quante più richieste di funzionalità in sospeso possibile con soddisfazione del team di QA ;-)
peter
2014-09-21 13:01:49 UTC
view on stackexchange narkive permalink

Considera due cose che sono (quasi) uniche per l'informatica:

  • la ricerca di metodi di programmazione su Internet è una pratica standard, con stackexchange.com che è il numero 1 per molti ricerche. Richiedere a qualcuno di memorizzare i dettagli non è una pratica industriale. Non prenderei in considerazione l'idea di accettare un lavoro di programmazione da nessuna parte che dice "nessun accesso a Internet". E ho premuto i riferimenti di funzione 10 volte al giorno per verificare cose come nome_funzione e nome_funzione o sostituire (ago, pagliaio) / sostituire (pagliaio, ago) mal di testa.

  • È molto probabile che 10 studenti restituiscano risultati quasi identici per algoritmi semplici. Semplicemente non ci sono molti modi per rispondere "scrivi una funzione per calcolare la media dei valori in un array". Vediamo: loop, sum, count. vars i, s, c. Se hai insegnato la formattazione del codice standard è del tutto possibile che tu possa ottenere 8/10 risposte assolutamente identiche ma zero imbrogli. Questo è un problema comune per i processori di cheat / plagio che non sono ottimizzati per CS.

Buona fortuna e torna con qualsiasi soluzione abbia funzionato per te.

"È abbastanza probabile che 10 studenti restituiscano risultati quasi identici per algoritmi semplici". Non sottovalutare l'immaginazione degli studenti ;-)
* "Richiedere a qualcuno di memorizzare i dettagli non è una pratica industriale." * Hmmm ... richiedere agli studenti di conoscere la sintassi e l'idioma della lingua *** è *** pratica standard. Allo stesso modo per conoscere le caratteristiche identificative e le applicazioni più comuni di strutture dati e algoritmi studiati in una classe introduttiva.
Con un limite di tempo difficile, non c'è abbastanza tempo per google tutto.
@dmckee - idiomi, certo. Ma la sintassi? Uso la sintassi di Google ogni giorno e sono considerato uno dei migliori programmatori, se non il migliore, della mia azienda.
Insegna c. Non lo uso regolarmente e l'unica cosa che devo cercare è la precedenza degli operatori meno comunemente usati. Sono d'accordo sul fatto che potrebbe essere necessario cercare la sintassi in un linguaggio grande, ma c è così piccolo che potresti chiamarlo "carino". Bene, cerco anche la sintassi del puntatore alla funzione se (FSM vieta) devo seguire quella strada.
@MassimoOrtolano, come qualcuno che ha valutato il lavoro degli studenti delle matricole CS, Peter è molto in gamba. Valutare i compiti è stato facile per me da fare rapidamente, poiché quasi tutti erano uguali. "Sì, questo è uguale al precedente, 100%!" Ovviamente non tutti gli studenti avevano lo stesso codice carattere per carattere, ma le somiglianze sono state sorprendenti nel corso dei 3 anni in cui ho svolto il lavoro. Ho dovuto avviare solo un'indagine sulla cattiva condotta accademica durante l'intero periodo, e si è rivelato essere un semplice errore con una stampante comune.
@BrianS: In realtà il tuo commento contiene indirettamente diversi punti interessanti che varrebbe la pena discutere, che dipendono anche dal paese, ma questo porterebbe troppo lontano la discussione. Tutto quello che posso dire qui è che al mio primissimo esame di insegnante, prima di valutare le prove, ho preparato una tabella che elencava quelli che pensavo fossero errori concepibili, con i voti corrispondenti da sottrarre; oggi, circa 15 anni dopo, è chiaro che ho sempre fallito nel prevedere possibili errori e che l'immaginazione degli studenti è di gran lunga più sviluppata della mia. PS: sono in un campo diverso da CS.
@peter: "Non prenderei in considerazione l'idea di accettare un lavoro di programmazione da nessuna parte che dice" nessun accesso a Internet "" - anche se ci sono alcuni lavori abbastanza rispettabili in cui l'accesso a Internet è uno sforzo così significativo che devi smetterla per ragioni banali. Ad esempio, un'azienda AV potrebbe avere un laboratorio senza accesso a Internet, punto. Se vuoi cercare qualcosa, esci dalla sicurezza e usi una macchina diversa. Oppure potrebbe essere un po 'più rilassato, con due macchine diverse che almeno si trovano nella stessa stanza.
@SteveJessop Non avrei obiezioni a una politica di sicurezza che diceva "questa scatola è per la codifica, l'altra scatola è per Internet". Funziona per me, funziona per loro, mostra che hanno un buon senso dell'equilibrio.
Davidmh
2014-09-21 16:54:07 UTC
view on stackexchange narkive permalink

In una delle mie materie di programmazione, ci erano consentiti gli appunti della classe, i nostri esercizi risolti e Internet; ma nessuna comunicazione con altri studenti (email, facebook ...). Non c'era niente che li bloccasse, solo il docente che vagava.

Veramente, non è così difficile da controllare: uno studente dovrebbe lavorare la maggior parte del tempo sull'IDE, e solo sporadicamente navigando. Se qualcuno sembra navigare troppo, puoi fare un'ispezione più approfondita. GMail o Facebook risplenderanno palesemente sullo schermo.

Ovviamente puoi essere più subdolo, come usare Lynx per inserire la tua posta. Ma in realtà, se riesci a farlo, probabilmente puoi scrivere un semplice algoritmo senza barare.

È molto facile scambiare codice tra gli studenti o anche un tutor esterno. Tutto ciò che uno studente deve fare è salvare un file nella casella a discesa, google drive ... che è condiviso. Nessun insegnante che cammina per la stanza se ne accorgerà mai.
Bloke Down The Pub
2014-09-22 01:22:04 UTC
view on stackexchange narkive permalink

Anche se potresti non considerarlo come uno strumento software: una distribuzione live di Linux personalizzata, che viene avviata direttamente da un supporto rimovibile e contiene solo gli strumenti di sviluppo necessari (nessun browser, forse anche rimuovere i driver ethernet / wifi) lo farebbero; basta farglielo avviare per l'esame.

(Se qualcuno è in grado - entro il limite di tempo e con gli strumenti forniti - di scrivere i driver e un browser, non solo ottiene un voto positivo ma un'offerta di lavoro .)

Sì, un Linux personalizzato conta come uno strumento software. O strumenti, se vuoi andare più a fondo. Inoltre, se vuoi andare più a fondo, metti Linux su un supporto riscrivibile e preimpostare l'IDE per scrivere su quel supporto. Quindi gli studenti possono consegnare i media alla fine del compito, se lo desiderano. Disabilitare anche il montaggio dei dischi rigidi.
Il nostro amministratore ha appena bloccato la distribuzione Linux installata, disabilitando le rotte di rete non locali (e questo era in un corso di networking, quindi avevamo bisogno di accedere a server specifici per testare il nostro lavoro). Certo, gli studenti non avevano i diritti di amministratore, sembra una pessima idea ...
Ant
2014-09-21 19:24:30 UTC
view on stackexchange narkive permalink

La soluzione impiegata dal mio professore è quella di consentire il libro di testo in classe (o qualsiasi altro foglio di carta), ma non l'accesso a Internet; nemmeno l'accesso al computer. L'intero esame era su carta.

L'esame stesso consisteva nello sviluppo di alcuni algoritmi, o forse nella creazione di alcune classi; cose per le quali il libro di testo è inutile, ma ti dà comunque l'opportunità di cercare nomi e concetti di base.

Come studente, penso che non ci sia niente di sbagliato in questo metodo. Ovviamente altri potrebbero non essere d'accordo.

+1 Stavo per suggerire carta. Penso che far fare agli studenti * alcuni * esami di informatica su carta sia un buon metodo di insegnamento. Oltre a prevenire la frode, aiuta a sfidare l'eccessiva dipendenza da Internet del mondo moderno (senza dire che sono migliore ovviamente). È anche un modo eccellente per assicurarsi che gli studenti abbiano acquisito la conoscenza; gli studenti non possono aspettarsi di utilizzare Internet ogni 5 minuti se ottengono un vero lavoro di programmazione: dovranno saperlo a memoria.
Questo. Non impareranno comunque la programmazione del mondo reale all'università, quindi perché preoccuparsi? Insegna loro i concetti e ignora gli "errori" di sintassi.
Cerchiamo di [continuare questa discussione in chat] (http://chat.stackexchange.com/rooms/17341/discussion-between-raphael-and-ant).
Bill Barth
2014-09-21 17:40:02 UTC
view on stackexchange narkive permalink

Le scuole di giurisprudenza risolvono questo problema da molti anni facendo acquistare agli studenti un software per gli esami che blocca i loro sistemi e consente loro di utilizzare il software per sostenere gli esami solo durante il periodo di esame. Tuttavia, si sono verificati problemi. Inoltre, gli esami della facoltà di giurisprudenza sono generalmente saggi o altre domande non funzionali, mentre un esame di programmazione potrebbe richiedere anche un compilatore. Non sono a conoscenza di una versione di questo che esista per consentire un editor di testo, un terminale e un compilatore.

Gli studenti devono pagare per un software che svolge una funzione che ci si aspetterebbe da un virus? Penso che preferirei scrivere il mio saggio sul tavolo col sangue.
@Pharap, non fa nulla del genere. Non mi piace la pratica, ma è un dispositivo anti-cheat piuttosto efficace che consente agli studenti di digitare un saggio su un dispositivo con cui hanno familiarità. È ragionevolmente efficiente e rende la valutazione più facile che superare esami scritti a mano scritti in fretta. Se hai una soluzione migliore, puoi guadagnare un po 'di soldi.
Direi che la capacità di bloccare un sistema sarebbe qualcosa che sarebbe in qualche modo vantaggioso per un virus. Se è semplicemente un elaboratore di testi / suite per ufficio a schermo intero che non si chiude fino a quando non è trascorso un certo periodo di tempo, non è poi così male. Personalmente penso ancora che non ci sia sostituto per far usare agli studenti i computer forniti (con detti computer che hanno una rigorosa gestione dei diritti applicata).
@Pharap, i tratti distintivi di un virus è che la sua invocazione non è volontaria e che esiste uno scopo dannoso. Essere in grado di eseguire è anche vantaggioso per un virus, ma non tutti gli eseguibili sono virus. Semplicemente non essere in grado di smettere non è sufficiente per evitare di barare; anche il resto della macchina deve essere bloccato. Alcuni consentono invece di eseguire esami con carta e penna se non si utilizza il software, ma la maggior parte degli studenti in questi giorni lavora in modo più efficace con la propria tastiera. Avere abbastanza laboratori pieni di computer per gli esami di giurisprudenza e poco altro è un costo proibitivo per molte scuole di legge.
Certo, la lavagna CMS fornisce un browser bloccato (utilizzato per sostenere quiz ed esami) che ha uno scopo simile: è possibile accedere solo al browser.
Massimo Ortolano
2014-09-21 13:31:02 UTC
view on stackexchange narkive permalink

Esistono strumenti software che possono aiutare a utilizzare un computer ed evitare il plagio?

Non posso rispondere alla domanda di cui sopra e sarei sorpreso dall'efficacia di un tale strumento. Quindi, suggerisco un'altra soluzione: fare gli esami su carta, scannerizzare i fogli alla fine degli esami, inviare le copie agli studenti e dare loro un paio di giorni per eseguire il debug dei loro programmi. Le differenze tra la versione cartacea e quella lavorativa possono così essere prese in considerazione per decidere il voto finale.

Per favore non farlo. Stiamo già producendo molti "programmatori" che non possono programmare per la vita di loro. Lascia che usino la letteratura durante l'esame, possono usarla comunque sul posto di lavoro ...
@Davor Non ho scritto nulla sul non consentire agli studenti di usare la letteratura durante l'esame. In effetti, non potranno utilizzare la letteratura online, ma potrebbero sicuramente portare i propri libri all'esame.
_Stiamo già producendo molti "programmatori" che non possono programmare per la vita di loro. Lascia che usino la letteratura durante l'esame, possono usarla comunque sul posto di lavoro._ - Oh, ironia.
Se l'obiettivo di progettazione di un corso di informatica * scienza * è produrre artigiani (programmatori), allora qualcosa non va.
@Raphael Come per molte discipline, i programmi CS hanno diversi obiettivi. Uno, ovviamente, è far progredire lo stato dell'arte, ma come effetto collaterale risultano un corpo di persone che troveranno lavoro come programmatori ma (si spera) apportino una conoscenza teorica più profonda rispetto ai loro coetanei meno specificamente istruiti. Una grande quantità di lavoro tecnico può essere svolto benissimo con persone che hanno un'istruzione e una formazione molto focalizzate sul compito, ma spesso è utile avere pochi pensatori profondi in giro.
@dmckee Anche se sono d'accordo con la tua ultima frase, l'implicazione "gli informatici a volte lavorano come programmatori, quindi dobbiamo insegnare loro a programmare" è un errore. Insegni agli ingegneri meccanici come saldare o agli ingegneri elettrici come saldare? (Non penso che dovremmo discuterne ulteriormente qui in quanto ci allontana dall'argomento dell'equazione.)
@Davor Le tue supposizioni (e conclusioni) sono sbagliate. I programmatori aspiranti non hanno affari in un'università scientificamente orientata. Perché andare a bussare alla torre d'avorio e chiedere un falegname? Chiedi ai programmatori di insegnare ai futuri programmatori (si chiama "apprendistato") e sia il tuo che il mio problema sono risolti. È divertente pensare che i ricercatori potrebbero fare il lavoro.
@Raphael - il problema è che le università non sono orientate scientificamente, ma solo singoli professori arroganti che non riescono a insegnare "artigianato". E il tuo suggerimento di insegnare agli ingegneri del software come idraulici mi dice quanto non hai idea di cosa stai parlando. Di nuovo, fermati, per favore.
@Davor Forse hai bisogno di un'esperienza interculturale. La tua affermazione è * decisamente * sbagliata qui in Germania. Abbiamo anche il nostro percorso di istruzione superiore per le scienze applicate, le nostre università sono orientate alla ricerca. Ma d'accordo, sembra che non valga la pena dedicare il mio tempo a "discutere" con te poiché non puoi dire la differenza tra programmatore, ingegnere del software e informatico.
L'obiettivo di progettazione di un'istruzione CS non dovrebbe essere quello di insegnare la programmazione, proprio come l'obiettivo di progettazione di una Lit. inglese. l'educazione non dovrebbe essere quella di insegnare l'ortografia. Questi sono semplicemente il modo naturale in cui esprimere il contenuto effettivo dell'educazione. E per rimanere in tema, vieteresti una lit. studente di utilizzare il correttore ortografico in Word ?!
einpoklum
2014-09-21 22:39:45 UTC
view on stackexchange narkive permalink

Beh, non ho verificato se ci sono strumenti software effettivi per questo, ma ti dirò cosa facevo. Il numero di approcci a una soluzione corretta è piuttosto limitato; se si tratta di un problema di tipo esame, dovresti aspettarti di ricevere molte risposte quasi identiche o addirittura identiche, come fa notare @Peter . Ma

l'ingegnosità dell'errore è infinita e la creatività di chi è fuorviato è sconfinata ...

Quindi errori + copia = facile da catturare. Se vuoi meccanizzare, verifica la presenza di errori di analisi / compilazione uguali o simili, o scelte identiche di identificatori di programmi che non vengono compilati o eseguiti come previsto.

Il problema sembra essere una collaborazione non autorizzata (ovvero gli studenti possono aiutarsi a vicenda condividendo le informazioni), non necessariamente gli studenti che consegnano un codice identico.
È difficile, se non impossibile, rilevare (o impedire) agli studenti di chattare nel laboratorio informatico. Lo studente che comprende i concetti consegnerà un codice simile ma funzionante (normale), lo studente che non lo farà consegnerà un codice rotto simile, che dovrebbe sollevare una bandiera rossa.
hojusaram
2014-09-22 13:32:06 UTC
view on stackexchange narkive permalink

Due di questi programmi sono MOSS e JPlag:

http://theory.stanford.edu/~aiken/moss/

Moss (per una misura della somiglianza del software) è un sistema automatico per determinare la somiglianza dei programmi. Ad oggi, l'applicazione principale di Moss è stata quella di rilevare il plagio nelle classi di programmazione. Dal suo sviluppo nel 1994, Moss è stata molto efficace in questo ruolo. L'algoritmo alla base di moss è un miglioramento significativo rispetto ad altri algoritmi di rilevamento dei trucchi (almeno rispetto a quelli a noi noti).

http://jplag.ipd.kit.edu/

JPlag è un sistema che trova somiglianze tra più set di file di codice sorgente. In questo modo può rilevare il plagio del software. JPlag non si limita a confrontare byte di testo, ma è a conoscenza della sintassi del linguaggio di programmazione e della struttura del programma e quindi è robusto contro molti tipi di tentativi di mascherare somiglianze tra file plagiati. JPlag attualmente supporta Java, C #, C, C ++, Scheme e testo in linguaggio naturale.

Strumenti simili a questi (non so esattamente quale) sono stati utilizzati in entrambe le scuole in cui sono stato. Gli studenti sono stati catturati e penalizzati anche dopo aver rinominato le variabili e cambiato l'ordine delle funzioni nel file.

Il problema sembra essere una collaborazione non autorizzata (ovvero gli studenti possono aiutarsi a vicenda condividendo le informazioni), non necessariamente gli studenti che consegnano un codice identico.
Le soluzioni a qualsiasi problema di esame con un ambito ragionevole sono * destinate * ad essere simili. La somiglianza sintattica è quindi un cattivo indicatore di barare.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...