Domanda:
Come comportarsi con gli studenti che mettono il loro lavoro (domestico) su GitHub
user2813274
2014-12-12 10:36:46 UTC
view on stackexchange narkive permalink

Sebbene l'utilizzo di GitHub per il codice sorgente sia generalmente qualcosa che amo incoraggiare, se uno studente mette lì i suoi compiti (di informatica), è generalmente facile per gli altri trovarli e copiarli, il che crea la tentazione di usarlo come "base di riferimento" "per i propri compiti (identici nella maggior parte dei casi), mentre comprendo i vantaggi dell'utilizzo di GitHub (controllo delle versioni, transizione tra macchine facilmente, capacità di lavoro di squadra) e il singolo studente che lo utilizza ha verificato che si tratta effettivamente del proprio account e sa spiegare bene il codice, mi sento ancora a disagio.

Qualcun altro ha risolto questo problema? come l'hai gestita? l'università ha una sorta di politica riguardo alla pubblicazione aperta di lavori creati dagli studenti? (anche se fa parte di un incarico)?

Come nota a margine, la mia politica generale per quanto riguarda i compiti "molto simili" è che chiunque lo abbia inviato per primo ottiene i punti e gli altri non ricevono alcun punto, tuttavia tendo a chiedere agli studenti di spiegare il loro codice e come funziona, perché hanno scelto X su Y, ecc. in questi casi prima.

modifica: sono stato informato che esiste una versione gratuita di github che gli studenti possono utilizzare per ospitare repository privati, e questa è probabilmente la linea di condotta che seguirò per il prossimo futuro, tuttavia, ci sono diversi svantaggi:

  1. Lo studente non sarà in grado di mostrare il proprio lavoro (ad esempio un link al proprio GitHub sul proprio curriculum)
  2. Lo studente non sarà uno studente per sempre , e quindi il repository non potrà essere privato gratuitamente a tempo indeterminato
  3. Ho pochissimo controllo (e interesse a controllarlo) una volta terminata la lezione, quindi lo studente potrebbe decidere di creare il repository pubblico al termine della lezione.
Bitbucket è gratuito.
Non possono pubblicarlo su GitHub su un repository privato non accessibile ad altri studenti?
I repository privati ​​di GitHub sono gratuiti per gli studenti: https://github.com/edu. Come insegnante, potresti anche essere in grado di ottenere cose. Lo chiamano "Richiedi uno sconto", ma per gli studenti l'affare è "Micro account (normalmente $ 7 / mese) con cinque archivi privati ​​mentre sei uno studente"
@yakatz - Penso che sarebbe la soluzione, la esaminerò - grazie!
Tieni presente che Github impiega un'eternità per elaborare un account educativo.
Che ne dici di un repository git locale? Se vuoi il backup su cloud, puoi usarlo insieme a Dropbox ecc.
Ad essere sinceri, i punti 2 e 3 su cui non hai assolutamente alcun controllo comunque. La cosa più semplice da fare sarebbe cambiare sottilmente l'assegnazione in modo che "la soluzione dell'anno scorso" non funzioni.
* "L'università ha una sorta di politica in merito alla pubblicazione di opere create dagli studenti apertamente?" * Sta a te dirci: la * tua * università ha una politica del genere?
@fkraiem no, attualmente non lo fa e consente ai professori di trattare come meglio credono, quindi la mia politica personale su incarichi simili. Chiedo quali politiche hanno le altre istituzioni.
Non vedo una grande differenza nel discutere il compito con i loro coetanei a pranzo, tranne per il fatto che il codice è più facilmente disponibile.
Vedo un'enorme differenza nel discutere il compito con i loro coetanei a pranzo, perché il codice è più facilmente disponibile.
"non fare nulla" sembra un'opzione ragionevole qui.
Otto risposte:
Anonymous Physicist
2014-12-13 05:16:54 UTC
view on stackexchange narkive permalink

Assegna agli studenti compiti in cui il loro lavoro deve affrontare uno dei loro interessi personali. Ad esempio, invece di avere ogni pizzaiolo del programma per studenti, chiedi a ogni studente di programmare una macchina per preparare il suo cibo preferito. Ciò renderà più difficile copiare e incollare. Inoltre, renderà gli studenti più interessati e il tuo voto più interessante.

Rende molto più difficile l'autografo
@user2813274 Fornire un feedback personalizzato aiuterà gli studenti ad apprendere di più, quindi ne vale la pena.
@user2813274: Che cos'è esattamente? Non sono un informatico, ma codice per divertimento. In qualche modo accede alla complessità del codice?
@user1997744 un autograder è un sito in cui gli studenti possono caricare il loro codice, farlo eseguire e fornire feedback se passa / fallisce - fondamentalmente lo stesso di un caso di test unitario, tuttavia posso tenere i casi di test nascosti agli studenti in modo che non lo facciano non codificare contro scenari specifici e perdere la soluzione generale.
@user2813274: Presumo che dopo aver esaminato il codice tu stesso? Perché due studenti possono ottenere la soluzione generale, ma un pezzo di codice potrebbe non essere così ben scritto, efficiente, ecc.
@user1997744 l'auto-selezionatore è uno strumento opzionale che gli studenti possono utilizzare prima di consegnare un compito (sebbene sia correlato abbastanza bene a come fanno in genere ..)
@user2813274 Un modo è inserire qualsiasi informazione personale (come gli interessi personali) in un blocco di commenti e quindi utilizzare alcuni software come MOSS di Stanford (e inviare anche qualsiasi altra versione dell'incarico che trovi online).
BrenBarn
2014-12-14 03:08:03 UTC
view on stackexchange narkive permalink

Penso che il tuo punto 1 sia fondamentalmente in contrasto con la prevenzione della condivisione / copia dei compiti. Se qualcuno può mostrare il proprio lavoro, può mostrarlo ai suoi compagni studenti. I punti 2 e 3 suggeriscono di voler riutilizzare lo stesso compito più e più volte quando insegni di nuovo alla classe, il che rende questo conflitto ancora più inevitabile. Non c'è modo di consentire agli studenti di condividere il proprio lavoro pubblicamente con chiunque desideri assumerli, mantenendolo anche segreto ai loro compagni studenti.

Non c'è niente che tu possa fare per mantenere tutto ciò che uno studente fa nel tuo classe nascosta per sempre. Penso che la soluzione migliore sia richiedere agli studenti di mantenere il loro lavoro privato durante la classe (utilizzando un account Github edu, Bitbucket, repository git locale, qualunque cosa), quindi lasciare che facciano quello che vogliono in seguito. Ciò significa che dovrai assegnarti nuovi compiti ogni volta che insegni in classe, ma penso che sia comunque una buona pratica.

Owen
2020-05-10 20:26:34 UTC
view on stackexchange narkive permalink

Ci sono molte cose da bilanciare qui e la soluzione "migliore" è in qualche modo soggettiva.

Tuttavia, a mio parere, il vantaggio educativo di consentire agli studenti di apprendere precocemente il controllo della versione supera di gran lunga l'aumento del rischio di esporre il proprio codice ad altri che potrebbero imbrogliare. Se i tuoi studenti hanno intenzione di continuare a lavorare come programmatori nell'industria, essere esperti nel controllo della versione è prezioso quasi quanto essere esperti nella codifica. La programmazione non è un compito solitario di questi tempi, dopotutto.

Un'altra cosa da considerare: nella mia università non esisteva una politica a livello di dipartimento sul controllo delle versioni pubbliche (e non ricordo che nessun professore avesse tale politica). Tuttavia, ricordo di aver sentito suggerire che la pubblicazione di codice su un GitHub pubblico violava la politica generale contro il plagio. Questo tipo di ambiguità fa male a tutti. Qualunque cosa tu decida è la strada giusta da percorrere, ti consiglio di dichiarare esplicitamente le tue aspettative rispetto al controllo della versione pubblica.

ssquidd
2020-05-11 02:31:57 UTC
view on stackexchange narkive permalink

Sembra che un punto che manca in questa discussione è che almeno negli Stati Uniti gli studenti possiedono il copyright del loro lavoro (non banale). In qualità di detentori del copyright possono riprodurre, distribuire e visualizzare le loro opere. Ovviamente possono anche creare opere derivate. Quindi la restrizione al diritto degli studenti potrebbe non essere nemmeno legale.

Il copyright richiede il superamento di una certa "soglia di originalità".Una soluzione a un semplice compito di programmazione potrebbe non essere abbastanza originale da garantire il copyright.
Se una soluzione a un semplice compito di programmazione non è sufficientemente originale da meritare il copyright, probabilmente non è sufficientemente originale che questo studente che pubblica il proprio lavoro sia importante nello schema di sovvenzione - soluzioni a semplici compiti di programmazione come questo sono prontamente disponibili online.
R. Ding
2020-05-11 16:35:01 UTC
view on stackexchange narkive permalink

Puoi provare il rilevamento automatico del plagio, come MOSS sviluppato da Stanford. Rileva somiglianze tra i file di codice, in qualche modo indipendentemente da come vengono denominate le variabili, dall'ordine di esecuzione, ecc. Quindi un essere umano potrebbe esaminare manualmente le somiglianze e giudicare se si tratta di un caso di plagio. Inoltre, come ricordo, MOSS consente l'input del codice base condiviso, il che significa che il "codice di avviamento" fornito a tutti gli studenti non conta ai fini della somiglianza.

"Cerca" di rilevare il plagio.Ci sono alcuni altri programmi là fuori, ma nessuno in realtà rileva tutti i plagi.
Debora Weber-Wulff
2020-05-12 02:21:03 UTC
view on stackexchange narkive permalink

La mia attenzione sulla programmazione dei compiti si è spostata sul fatto che gli studenti copiassero tutto ciò che vogliono da tutti i repository GitHub nel mondo, ma per fare riferimento a loro in un rapporto sul processo con cui hanno risolto il problema, scritto in frasi complete. Questa è vista come una punizione crudele e insolita dagli studenti del primo anno, ma quando gli ex studenti mi incontrano in città dopo la laurea è per questo che mi ringraziano, che ho insegnato loro a scrivere rapporti. E che i loro rapporti sono un ottimo riferimento per se stessi.

Non possiamo controllare questo comportamento, quindi dobbiamo cercare di educare le persone. Insegniamo loro a valorizzare il lavoro di altre persone citandolo o dando credito e insistiamo perché riflettano su ciò che hanno fatto. Quindi va bene dire: ho ricevuto questo codice da Nancy, e poi ho chiesto a Steve come mettere i widget su questo, e di conseguenza ho finalmente ottenuto che funzionasse. Questo mi rende più facile giudicare quale sia il contributo dello studente.

È più lavoro per me, quindi sono andato a far fare agli studenti la programmazione in coppia, assegnando loro partner casuali ogni settimana. Anche per loro è un buon esercizio e si conoscono meglio.

Erel Segal-Halevi
2020-06-30 01:38:31 UTC
view on stackexchange narkive permalink

La soluzione ottimale è accompagnare la classificazione automatica del codice con una revisione del codice faccia a faccia umana, in cui gli studenti devono spiegarti il ​​loro codice e puoi anche chiedere loro di apportare piccole modifiche onlile per verificare che sapere cosa hanno fatto. Se lo fai, non devi preoccuparti di copiare poiché la revisione del codice ti dirà quanto bene conoscono il materiale.

Il problema è che questa soluzione richiede molto lavoro - almeno 15 minuti per studente alla settimana. Non ho abbastanza budget per questo, quindi uso una soluzione non ottimale: assegno agli incarichi settimanali solo il 10% -20% del voto finale, in modo che l'incentivo a copiare sia minimo. Nel frattempo, mi assicuro che l'esame finale contenga domande molto simili ai compiti. Pertanto, gli studenti che hanno svolto i compiti da soli avranno un voto più alto nell'esame finale rispetto alle fotocopiatrici.

allo
2020-06-30 02:48:56 UTC
view on stackexchange narkive permalink

Ignoralo.

Sono compiti a casa e non esami. Gli studenti che lo usano senza capirlo rischiano di fallire l'esame e questo è un problema loro, non tuo. Sono tutti adulti e devono decidere da soli se vogliono imparare qualcosa o semplicemente copiare qualcosa.

Dato che i compiti di solito non influenzano il voto finale ma solo l'ammissione all'esame, non vale la pena di farlo cercare di prevenirlo.

E github è una cosa, ma gli studenti hanno file server interni e wiki e altri modi per organizzare come scambiare i compiti correnti o anche una serie completa di compiti dell'anno scorso.

Assicurati che tutto ciò che ottiene un voto effettivamente pertinente non venga svolto senza supervisione e sii un po 'più rilassato sui compiti che dovrebbero solo aiutare gli studenti a imparare e non vengono utilizzati per documentare le loro abilità come un esame graduato.

Se vedi effettivamente che il codice è stato copiato tra due studenti, potresti non accettarlo. Ma questo dovrebbe essere fatto confrontando le loro soluzioni non monitorando github. Possono copiare in privato o possono aver lavorato insieme e devi decidere in base all'invio del loro lavoro.

Quando saranno effettivamente in grado di riutilizzare il codice dell'anno precedente, potresti prendere in considerazione modificando le assegnazioni in modo che il codice non possa essere utilizzato senza almeno comprenderlo.



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...