Domanda:
Riutilizzare il vecchio codice per un nuovo incarico è considerato un auto-plagio? Come proteggerti se lo consideri e un partner di gruppo no?
01010110011001
2015-11-01 05:03:20 UTC
view on stackexchange narkive permalink

Sto frequentando un corso di perfezionamento in machine learning e sto lavorando con un altro studente della classe a un progetto finale. Nei suoi studi universitari, l'altro studente ha scritto del codice che ha svolto un compito simile e ha menzionato nella nostra riunione precedente che saremmo in grado di sfruttare gran parte di questo codice per il nostro progetto attuale, se lo volessimo. Ho risposto che credo che costituirebbe un inganno da manuale e un auto-plagio, ma l'altro studente non è d'accordo e crede che il riutilizzo del codice non costituirebbe un auto-plagio perché lo ha scritto lui stesso e sarebbe ridondante riscrivere ciò che lo aveva già fatto.

Ora, gli istruttori del corso hanno chiarito che non ci è permesso usare nessuna libreria esterna per eseguire determinate classi di algoritmi per questo progetto. Il codice precedente di questo studente rientrerebbe in questa categoria di strumenti proibiti, ma afferma che non si qualifica perché ha scritto lui stesso il codice (quindi non è una "libreria esterna"). Credo che questa sia un'iperbole, ma non è d'accordo. Vale anche la pena ricordare che questo codice è concesso in licenza con una licenza MIT, sebbene non sia affatto ampiamente utilizzato.

È arrivato al punto in cui mi sento a disagio andando avanti con il progetto riutilizzando il suo vecchio codice e non vuole lavorare sul progetto che considera ridondante. La mia preoccupazione è che se si scopre che non siamo autorizzati a riutilizzare il codice, il suo utilizzo potrebbe farci fallire il corso e influire negativamente sulla nostra reputazione. Anche se non veniamo scoperti, personalmente ritengo che non sarebbe etico copiare e incollare il vecchio codice e presentarlo come se fosse un nuovo codice per questo progetto corrente.

Non sono sicuro di come procedere . Ho provato a contattare la professoressa del corso qualche tempo fa (recentemente è stata in viaggio per alcune conferenze e lo sarà per un po ') ma non ho avuto sue notizie. Inoltre, gli assistenti tecnici del corso non sono stati disposti a valutare la situazione.

Ho le seguenti domande:

  1. La situazione di cui sopra è generalmente considerata un auto-plagio? Perché o perché no?
  2. L'atto di cui sopra è generalmente consentito in un contesto accademico?
  3. Supponendo che tu sia nella mia posizione e prendi in considerazione il riutilizzo del codice per ingannare e / o non etico, qual è il modo migliore per procedere; sia in termini di come fare progressi nel progetto, come scendere a compromessi con il mio compagno di gruppo, sia come proteggermi se il mio compagno di gruppo si rifiuta di muoversi.
Se le persone votando la domanda potessero spiegare perché, sarebbe utile. Sembra che io stia fraintendendo il concetto di auto plagio, e se qualcuno potesse spiegare perché lo apprezzerei.
Tra le altre ragioni, hai reso questo * molto fortemente * moralistico per qualcosa che nella migliore delle ipotesi è un caso limite.
Ancora una volta, se è così, definisci l'auto-plagio. Non vedo come questo non si adatti alla definizione di un T.
Parte del problema è che l'auto-plagio è in qualche modo mal definito, specialmente per qualcosa come il codice. Questo fa parte del problema: hai tracciato alcune linee molto nette e hai iniziato a lanciare un linguaggio molto moralistico attorno a qualcosa che è nel migliore dei casi mal definito.
Traccio linee nette attorno a un argomento tagliente. Se si tratta di barare (a quali altri studenti ho chiesto hanno convenuto che lo sia), in quale altro modo dovrei gestirlo? La morale è spesso un'area grigia, ma viene affrontata con severità. Ecco perché le persone entrano nei forum e chiedono le opinioni di altre persone su di loro.
Se ti senti a disagio a lavorare con qualcuno perché, a tuo giudizio, sta facendo qualcosa di non etico che potrebbe intralciarti, allora ** smetti di lavorare con lui. **
Se il tuo compagno di classe dice la verità, qualunque cosa tu faccia, sarà ispirato da questo codice scritto. Poiché è la sua conoscenza, può usare questa conoscenza. Forse, non prendendo il codice scritto interamente lo stesso ma alcune parti di esso. Nel campo dell'economia teorica, le persone usano il loro codice scritto per molti articoli. È auto-plagio? A proposito, se è davvero il suo codice, non puoi trovarlo in una libreria o da qualche altra parte. Quindi, è davvero un auto-plagio? Inoltre, non trovo corretto il tuo giudizio preliminare sul tuo compagno di classe. Per sicurezza, la cosa migliore è parlare con il tuo professore.
La tua comprensione dell'auto-plagio a parte, la tua asserzione che non è etico in * tutti * i casi è semplicemente ingiustificata. Solo perché hai nominato un concetto non significa che tu abbia giudicato correttamente la moralità di quel concetto. Sarebbe fantastico se ci fosse un nome per questo errore logico fin troppo comune, ma citarlo ironicamente come sostituto per spiegare perché è un errore sarebbe un esempio di se stesso.
Apprezzo le persone su questo thread che in realtà mi hanno dato consigli su come procedere; vale a dire inviare una richiesta al professore, attendere un riscontro e nel frattempo fare altri lavori sul progetto. Come ho detto nella domanda, le ho mandato un'e-mail qualche tempo fa e ho appena ricevuto risposta. Ha affermato che se dovessimo riutilizzare il suo codice sarebbe considerato un imbroglio e avremmo fallito il corso.
Dai miei occhi, sebbene sia ovvio che molti di voi saranno fortemente in disaccordo, la lezione da imparare qui è che * dovreste * trattare seriamente le questioni "marginali" dell'integrità accademica. Pensa alla cautela. Non c'è motivo di presumere che tutti abbiano la tua stessa idea di ciò che costituisce imbroglio, auto-plagio, qualunque cosa. Molte delle risposte sono state: "Non lo considero barare, quindi non è barare". Realisticamente, "barare" è qualunque cosa il professore giudichi che sia. Grazie ancora alle persone che hanno offerto risposte pertinenti alle mie domande.
Penso che tu stia ottenendo risposte che non sono quelle che stavi cercando perché il modo in cui la domanda è formulata non è molto accurato. Un "compagno di classe che rifiuta di riconoscere l'auto-plagio" sarebbe uno che vuole nascondere il fatto che il codice viene riutilizzato, o che insiste per usarlo anche dopo che hai sentito dall'istruttore che non è consentito. Quello che hai * qui * è un compagno di classe che non è d'accordo sull'interpretazione delle regole del corso, che è una questione completamente diversa. Penso che una [modifica] al post sia necessaria.
@LightnessRacesinOrbit Anche se sono pienamente d'accordo sul fatto che l'OP sia eccessivamente moralista sul punto, puoi [in effetti plagiarti] (https://en.wikipedia.org/wiki/Plagiarism#Self-plagiarism), anche se devo ammettere che in realtà non si applicano al caso di OP.
Suggerirei anche che nel contesto di codice più complesso, anche se il tuo collega non userà il codice precedente in modo esplicito, sarebbe istintivamente incline a implementare soluzioni concettualmente simili. In effetti, per essere coerente con il tuo desiderio, il tuo compagno di squadra dovrebbe sforzarsi di sviluppare soluzioni volutamente diverse. Il fatto è che in un ambiente analitico e di sviluppo software, specialmente lavorando sotto pressione, sarai incline a riutilizzare concetti che conosci. Anche se il tuo collega non guarda il codice, l'esperienza influenzerà il suo approccio al problema.
@ff524 Ho modificato la domanda. Ti sembra che sia più preciso e chiaro? In caso contrario, non esitare a modificarlo ulteriormente.
Hai menzionato in altri commenti sulle risposte che non ti interessano le risposte alla domanda "Il riutilizzo del vecchio codice per un nuovo incarico è considerato un auto-plagio?" - hai cambiato idea su questo?
@ff524 ho, dato che la mia opinione sull'argomento era chiaramente piuttosto parziale e sembra rilevante per come dovrei procedere con il mio partner di progetto.
Allora sì, questo titolo mi sembra molto più preciso. Grazie per il chiarimento.
Ho appena letto le modifiche al corpo del post. "Considera che questo sia ..." e "Dovrebbe essere ..." mi sembrano entrambi troppo basati sulle opinioni (vedi [aiuto / non-chiedere]). Dato che questa domanda ha già attirato qualcuno vicino voti, suggerisco di cambiarlo per chiedere qual è la convenzione ("Questo di solito è considerato ...") piuttosto che quali sono le opinioni delle persone.
Ho ulteriormente modificato la domanda
Penso di aver appena assistito al mio primo caso di "sealioning" - http://wondermark.com/1k62/
Ops. Una volta ho usato il segmento di codice "i ++;" in uno dei miei vecchi progetti. Ora non sono più autorizzato a utilizzare quel segmento di codice!
Per il nostro corso Language & Compilers 2 il professore ** si aspetta ** che riutilizzi il codice che hai scritto per LC1. Dato che devi scrivere un front end completo (fino alla generazione di codice intermedio) da zero in circa 180 ore (nota: ore diritte, ovvero 180/24 = 7,5 giorni di lavoro continuo. Il tempo di sonno viene conteggiato per le ore utilizzate ). Se hai già il parser e il typechecker pronti puoi riuscire ad aggiungere la parte di generazione del codice in quel momento, riscrivere tutto è semplicemente impossibile.
Non penso che il plagio sia particolarmente rilevante qui. Si tratta solo di segnare. Qual è la politica della tua università sul codice precedentemente contrassegnato? Recentemente ho completato un Master in cui è stato esplicitamente dichiarato che non era consentito essere contrassegnato per lo stesso codice più di una volta. Tuttavia, questo non vuol dire che non si possa costruire sul codice precedente (annotando quale codice è stato preso da altrove) e ottenere i contrassegni per il nuovo lavoro.
Posso capire perché faresti questa domanda: l'auto-plagio è un problema difficile da definire. Tuttavia, in CS, il riutilizzo del vecchio codice è generalmente accettato, incoraggiato anche, quando sarebbe utile, e fintanto che si fa riferimento al fatto che viene utilizzato il vecchio codice che * sai * funziona, non vedo un problema. Dovresti comunque eseguirlo dal professore, ma se ti sforzi di assicurarti che il vecchio codice funzioni nella nuova impostazione, non vedrei alcun problema con quello, e spero che nemmeno il tuo professore non lo faccia .
Vorrei aggiungere perché la tua definizione di auto-plagio non è realmente applicabile, soprattutto al codice. In CS, i documenti sono spesso basati su alcuni programmi / librerie e successive misurazioni delle prestazioni. Quindi supponiamo che un autore codifichi un programma del genere e pubblichi un articolo basato su di esso. Se lui / lei decidesse di usare di nuovo il codice e di estenderlo e pubblicare un nuovo articolo a riguardo, andrebbe benissimo (e nessuno si aspetterebbe che l'autore ricodifichi di nuovo la stessa roba). Tuttavia, sarebbe auto-plagio se le immagini oi paragrafi venissero semplicemente incollati per la nuova pubblicazione
Devo essere d'accordo con la leggerezza qui. "Auto-plagio" è un termine sciocco, che fa venire in mente un atto atroce esattamente come "rapinare la propria casa".
@MasonWheeler: Beh, se quella casa è affittata a qualcun altro.
OK, anche se è discutibile se questo costituisca del tutto plagarismo, puoi coprirti interamente (in termini di etica) affermando in modo chiaro e inequivocabile che stai usando questo codice e mostrando chiaramente quali parti provengono da esso. A quel punto non stai più commettendo plagio al 100%, te stesso o altro, e non ci sono problemi di * etica * o * onore * al riguardo. Il professore può scegliere di * trattenere o detrarre punti * per il codice riutilizzato, ma fintanto che sei chiaro, aperto e onesto sulle fonti, non può essere plagio (illecito disciplinare). (Il bit di licenza MIT è assolutamente irrilevante)
Nove risposte:
jakebeal
2015-11-01 06:22:10 UTC
view on stackexchange narkive permalink

Cosa dovresti fare? Dovresti chiedere al professore educatamente e senza imporre il tuo giudizio preliminare sul fatto che questo sia o meno proibito dalle regole della classe. Non sei in grado di esprimere questo giudizio. L'unica persona che può dare una sentenza definitiva è il professore che ha stabilito le regole.

Consiglio un approccio come:

Il mio compagno di squadra ha precedentemente creato un codice che sarebbe molto applicabile a questo progetto. Possiamo usare quel codice o conta come una libreria esterna e dovremmo invece scriverlo di nuovo come esercizio?

Mentre aspetti una risposta, ti consiglio di procedere in due modi in parallelo:

  1. Implementa una nuova versione della libreria da zero, mentre
  2. Il tuo partner si basa sulla libreria esistente.

In questo modo, ottieni il valore educativo di costruire la biblioteca, piuttosto che utilizzare la libreria preesistente, e il tuo partner può andare avanti senza che nessuno di voi si blocchi in attesa del risultato.

Penso che suggerire di riscriverlo sia un po 'sciocco. Prima di tutto, cosa significa fermare un gigante ctrl-a, ctrl-c? Se il mio obiettivo è riscrivere qualcosa che ho scritto prima, difficilmente lo chiamerei plagio. Secondo, qual è il vantaggio di riscriverlo effettivamente? Solo così puoi controllare qualche casella di controllo mentale?
@DavidGrinberg La risposta suggerisce che l'OP riscrive il codice, non il suo collega che originariamente ha scritto la libreria. Questo è riprodurre i risultati di qualcun altro e nella maggior parte dei casi una buona esperienza di apprendimento.
Inoltre, l'OP potrebbe ottenere ottimizzazioni durante la ricostruzione della biblioteca, quindi indipendentemente dal fatto che si tratti di plagio o meno, avrà comunque un valore educativo
Dato che l'altro studente ha pubblicato il suo lavoro, vorrai sicuramente discuterne con il professore. Anche se lo convincessi a riscriverlo da zero, è probabile che sarebbe abbastanza simile da attivare qualsiasi strumento antiplagio utilizzato dal professore.
Il processo di * refactoring * nella propria libreria sarebbe quasi certamente vantaggioso in molti modi - e una grande opportunità per migliorare il codice stesso e dare un'altra occhiata a ciò che fa e capire qual è il punto. A quel punto, non è più auto plagio in nessuna misura, imo. Questo è totalmente diverso dal codice di copypasting in tutto il nuovo progetto.
@DavidGrinberg Il programmatore professionista interviene: riscrivere il proprio codice è un ottimo esercizio. Puoi sempre renderlo più elegante, più flessibile, più veloce, migliore, anche se non lo riscrivi in ​​un nuovo linguaggio o framework. Qualsiasi programmatore di talento potrebbe riscrivere le sue preziose librerie più e più volte se non vincolato dal tempo e dalla ragione. Con moderazione, è un ottimo modo per diventare un programmatore migliore.
+1 Chiedere al professore è una risposta alla prima domanda realistica di OP, e se il prof consente la copia, la seconda domanda di OP (nel titolo) non è valida. Se il prof non consente la copia, la risposta alla seconda domanda di OP è semplicemente "Dì al tuo compagno di squadra di non usare il vecchio codice, poiché lo dice il prof".
@DavidsaysReinstateMonica C'è un vantaggio.Una grande quantità di codice scritto può essere migliorato.È una mentalità che uno sviluppatore dovrebbe avere, che proprio come il lavoro che è stato scritto prima può essere riutilizzato, può anche essere migliorato ed ampliato.Il fatto che il compagno di squadra voglia schiaffeggiarlo così com'è porta un po 'di arroganza che vedo come un tratto di personalità negativo di compiacenza.Non potevo aspettarmi un codice ben mantenuto da qualcuno del genere.
Fomite
2015-11-01 06:00:20 UTC
view on stackexchange narkive permalink

Come qsp, non sono dell'opinione che questo sia un auto-plagarismo.

Né penso che sia una "libreria esterna" in nessun senso significativo della parola. Del resto, cosa ti aspetti che faccia davvero - ha già scritto il codice per farlo, anche se lo ha scritto di nuovo da zero, non gli è permesso riferirsi ad altre cose che ha fatto? costantemente guardo indietro al vecchio codice (l'ho fatto in modo intelligente l'anno scorso ...). Dove tracci la linea: puoi guardare indietro al tuo vecchio codice se non ricordi qualcosa di semplice, ma sai di averlo fatto prima?

Se vuoi sostenere che tu non imparerai nulla se è già fatto e implementato, potrei capirlo. Il problema è che hai cercato di rendere questo un problema etico quando è nel migliore dei casi discutibile, e ad essere sincero, se usassi il linguaggio che hai usato sul tuo partner con me, probabilmente avveleneresti il ​​nostro lavoro anche relazione.

C'è una linea molto sottile tra fare riferimento al tuo vecchio lavoro e copiare e incollare metà di un progetto precedente. Le persone dimenticano le cose nel tempo, e se conosce già il materiale non penso che sia irragionevole aspettarsi che lo reimplementi. Questa non è l'industria privata, questo è un corso di laurea in cui tutti devono seguire le stesse politiche.
@110100101110101 Sulla base dei tuoi commenti e voti, non sono sicuro che tu non stia solo cercando qualcuno che sia d'accordo con te.
Inoltre, non vedo come l'uso di un linguaggio come "barare" e "comportamento non etico" sia di cattivo gusto se si tratta di un caso limite. Stai dicendo che le persone dovrebbero gettare al vento la prudenza? Ho frequentato istituti in cui gli studenti hanno fallito i corsi per questo * esatto * motivo. Letteralmente perché hanno copiato e incollato il codice.
Nessuno ha risposto alla mia domanda, hanno solo detto "non è barare". Non conosci le polizze del mio istituto, né i dettagli della mia situazione. Se aggiorni la tua risposta per rispondere alla mia domanda, invertirò il mio voto negativo.
Sto dicendo * non è chiaro che stia tradendo *. Se uno studente viene da me e dice "Ho già scritto il codice che fa grandi parti di X, posso semplicemente usarlo?" la risposta sarebbe sì. Non puoi convincere gli assistenti a rispondere e il Prof. non è intervenuto. L'unica autorità che dichiara che sta barando sei tu. Ci hai chiesto, e molte persone hanno detto "Non pensiamo davvero che sia un imbroglio". Questa è una risposta ... semplicemente non è quella che ti piace.
Lo capisco, ma ancora una volta, questo non risponde alla domanda su come gestirlo se * è * barare. Questa era la mia domanda. Supponi che sia plagio. come ti proteggi? Tutto quello che hai detto è stato, "stai avvelenando il tuo rapporto con il tuo pari". Francamente, questo non è d'aiuto. Inoltre, nessuno ha detto: "Non pensiamo davvero che sia un imbroglio". Questo è il punto. Nessuno degli istruttori è intervenuto.
@110100101110101 Questa domanda (che differisce da quella che hai effettivamente chiesto a imho) sarebbe chiusa su questo sito, perché è teoricamente. La tua supposizione che si tratti di plagio è considerata non valida da quasi tutti qui, quindi in breve direi che la tua supposizione non è corretta. Ogni ragionamento basato su un presupposto errato è puramente teorico e privo di valore e sarà anche errato, quindi qual è il punto nel rispondere? Anche se non accetti l'opinione predominante qui, per favore ammetti almeno che rifiutiamo la tua assunzione.
All'università, riutilizzo regolarmente il codice di progetti precedenti (sia altri progetti di classe o codice che ho scritto al lavoro e ho il permesso di usare dal mio datore di lavoro). Non c'è niente da guadagnare dalla riscrittura esattamente qualcosa che hai già risolto - ed è un'ottima pratica per lo sviluppo del mondo reale in cui questo genere di cose è previsto e banale.
Dan Romik
2015-11-01 09:41:05 UTC
view on stackexchange narkive permalink

La tua domanda solleva interessanti questioni di onestà, lavoro di squadra e psicologia. Esaminiamo come alcune di queste idee interagiscono nella tua situazione.

Ora, gli istruttori del corso hanno chiarito che non siamo autorizzati a utilizzare alcuna libreria esterna per eseguire determinate classi di algoritmi per questo progetto . Il codice precedente di questo studente rientrerebbe in questa categoria di strumenti proibiti, ma afferma che non si qualifica perché ha scritto lui stesso il codice (quindi non è una "libreria esterna"). Credo che questa sia un'iperbole, ma è assolutamente in disaccordo.

Ok, quindi tu e il tuo partner non siete d'accordo su qualcosa; questo non è un evento raro durante una collaborazione. Tuttavia, mi sembra che tu stia affrontando questo dibattito da un punto di vista che presume che ci sia una qualche verità oggettiva qui, e inoltre sento molto fortemente che quella verità è dalla tua parte: il vecchio codice del tuo partner logicamente ti sembra che lo sia una biblioteca esterna e hai difficoltà a credere che qualcuno possa onestamente pensare diversamente, a meno che non sia motivato dalla pigrizia o dall'interesse personale. Beh, in realtà penso che sia tutt'altro che vero; non solo non è ovvio per me e per alcuni degli altri utenti qui se il vecchio codice conterà come "libreria esterna" o se riutilizzarlo conta come auto-plagio, ma penso che anche il professore del corso potrebbe non esserne sicuro e doverlo fare pensa un po 'quando viene posta questa domanda (e lo dico come un professore che ha una certa esperienza nel ricevere domande insolite che non mi aspettavo dai miei studenti in relazione alle politiche del mio corso). Quindi, un primo consiglio che ti darei è di attenuare un po 'la tua retorica. Sì, forse riutilizzare il vecchio codice è una cattiva idea e sarà visto come disonesto, soprattutto se fatto senza riconoscerlo. Sei abbastanza ragionevole se ti preoccupi di questo e della tua reputazione. Dovresti certamente controllare questo, ma prima di iniziare a gettare parole come "iperbole", è una buona idea essere un po 'più umile, fare meno supposizioni ed essere più aperto alla possibilità che altre persone molto ragionevoli possano non essere d'accordo con te su questo.

Siamo arrivati ​​al punto in cui io e l'altro studente non possiamo guardare negli occhi questo problema, e sono preoccupato che se si rifiuta di accettare semplicemente che dobbiamo fare tutto il lavoro per questo progetto [...]

Penso che tu debba ricordare che il tuo partner è un membro del tuo team . Non sei il suo capo e non puoi pretendere che faccia le cose esattamente come vuoi o che accetti il ​​tuo modo di pensare. Inoltre, questo progetto non è solo un esercizio di programmazione, ma ha anche lo scopo di insegnarti il ​​lavoro di squadra - l'arte di lavorare in squadra, che è qualcosa che è molto apprezzato dai datori di lavoro, in alcuni casi molto più della programmazione specifica o dell'apprendimento automatico magia. Quando parli di lui "che si rifiuta di accettare semplicemente che dobbiamo [fare le cose a modo mio]" e dici che sei arrivato a un punto in cui tu e il tuo partner siete vicini a non essere completamente incapaci di lavorare l'uno con l'altro, vedo questo come incapacità di stabilire un lavoro di squadra efficace. I disaccordi emergeranno in qualsiasi progetto collaborativo; ora stai mettendo alla prova la tua capacità di elaborarli in modo efficace, parlando al membro del tuo team, e anche ascoltandolo ed essendo aperto ad ascoltare e accettare il suo punto di vista.

Nessuno ha risposto alla mia domanda, hanno solo detto "non è barare". [...] questo non risponde alla domanda su come gestirlo se è barare. Questa era la mia domanda. Supponi che sia plagio. Come ti proteggi?

Bene, se tutto ciò che vuoi è una risposta alla tua domanda letterale e non ti interessa ascoltare ulteriori analisi: se avessi un partner di progetto che fosse un imbroglione e non potevo convincerlo a non barare, non avrei collaborato con lui. Andavo dal mio professore e chiedevo di collaborare con qualcun altro, o di ricevere un progetto da solista se questa è l'unica opzione pratica, e spiegavo che lavorare con l'attuale partner è eticamente insostenibile per me.

Tuttavia, se sei disposto a prendere in considerazione ulteriori analisi, mi permetto di esprimere la mia opinione che stai facendo la domanda sbagliata. Sulla base della mia comprensione della tua situazione, penso che tu sia troppo sicuro di avere ragione e che il tuo partner abbia torto, e in questo caso, rifiutarsi di collaborare con lui si rifletterà male su di te, poiché indicherà che tu non hai buone capacità di lavoro di squadra, il che fa parte di ciò che questo progetto intende testare e aiutarti a sviluppare.

Per riassumere, il fulcro della tua domanda è in realtà una semplice questione di come interpretare un corso policy che vieta l'uso di librerie esterne in un progetto di programmazione. Quando i professori scrivono le politiche del corso non sempre pensano a tutti i possibili scenari che potrebbero sorgere, quindi non è raro che esistano ambiguità. Quando ciò accade, la cosa migliore da fare è semplicemente chiedere al professore (ma per favore chiedi cortesemente e in un modo neutrale che non presuma quale sia la risposta corretta), quindi segui le sue istruzioni. Se lo fai, non vedo come la tua reputazione possa essere danneggiata.

qsp
2015-11-01 05:44:59 UTC
view on stackexchange narkive permalink

Temo che tu stia interpretando in modo errato "auto-plagio". Lo scopo del progetto del corso è aiutare gli studenti a comprendere gli algoritmi. Ecco perché il professore non consente l'uso di biblioteche esterne, tuttavia, nel tuo caso, il tuo partner ha implementato il compito da solo (se il suo partner in undergraduate lo ha fatto, è una storia diversa). Quindi non bara qui.

In realtà, per questo progetto è meglio che tu ti prenda la responsabilità di svolgere il compito che il tuo partner ha svolto. Perché lui ha già compreso appieno il compito e tu no.

Grazie per la vostra risposta. Se ho frainteso l'auto-plagio, forse potresti definirlo nella tua risposta? Mi sembra che tu stia affermando che, poiché lo scopo di un corso è insegnare, il riutilizzo del suo codice esistente non si adatterebbe alla definizione di auto-plagio. Inoltre, forse veniamo da contesti accademici diversi, ma non ho mai frequentato un istituto in cui agli studenti fosse permesso di riutilizzare il proprio lavoro dei semestri precedenti. Se non altro, in genere è espressamente vietato.
@110100101110101 Sta * riutilizzando * il suo codice senza * alcuna * modifica, o sta semplicemente scegliendo di non riscrivere la ruota? Perché sono stato in molte classi che presumono assolutamente che tu costruirai cose che hai imparato prima.
Uno studente dovrebbe essere autorizzato a consegnare lo stesso identico saggio per più corsi se l'argomento generale è lo stesso? Questa è la definizione stessa di auto-plagio. Non vedo come l'obiettivo del corso di insegnare gli algoritmi cambierebbe la situazione.
@Fomite vuole copiare e incollare più della metà del codice base
@110100101110101 Quindi, quando lo accusi, usi un linguaggio come `` A uno studente dovrebbe essere consentito di consegnare lo stesso identico saggio '', ma sta riutilizzando solo `` più della metà '' ...
@Fomite, ok, riformulo, dovrebbe uno studente essere autorizzato a copiare e incollare metà di un saggio e consegnarlo come se fosse un lavoro originale?
Parlare di "un saggio" è del tutto fuorviante. Riutilizzare codice scritto prima e che si rivela utile per un nuovo progetto è certamente diverso; se ciò sia accettabile o meno dipende dalle linee guida della classe (ma la mia ipotesi è che sì). Sto solo dicendo.
@110100101110101, Direi che lo scopo di una classe è che gli studenti imparino il materiale. Se lo studente in questo caso ha utilizzato questo algoritmo in una classe precedente, ovviamente ha imparato il materiale. L'unica domanda importante per un incarico dovrebbe essere "Questo progetto è esclusivamente il lavoro degli studenti?". In questo caso, la risposta è "sì".
@110100101110101 Se ti è vietato riutilizzare lavori precedenti in un corso di informatica, questo è solo un altro modo in cui il mondo accademico è completamente fuori contatto con la realtà. Agli studenti dovrebbe essere * richiesto * di riutilizzare il lavoro precedente. Come riutilizzare il codice in modo efficace dovrebbe essere una parte importante del programma.
@KevinKrumwiede Sono d'accordo e non sono d'accordo.Nel mondo reale, non è necessario reinventare la ruota.Gli studenti dovrebbero essere assolutamente istruiti sul fatto che l'uso di codice esistente precedente e aperto per le implementazioni è una buona cosa.Tuttavia, se il punto è dimostrare che lo studente ha una padronanza della teoria sufficiente per progettare una nuova implementazione, allora penso che sia valido richiedere un codice nuovo di zecca.Se il professore è abbastanza ragionevole, può consentire il codice, ma dare un voto migliore per "migliorare e ridisegnare la logica" in modo che sia rinnovata dalla vecchia.
Peter
2015-11-01 19:12:57 UTC
view on stackexchange narkive permalink

Per quanto riguarda le regole fatte dal professore, la lettera della legge è chiara in quanto consente assolutamente sia la tua interpretazione che quella del tuo collega. Quindi ignoralo e cerca intento”.

In termini di intento, quello che possiamo fare è fare un'ipotesi plausibile, ma un modo molto più semplice per scoprirlo è semplicemente chiedi a chi ha stabilito la regola.

Joel Reyes Noche
2015-11-01 11:27:08 UTC
view on stackexchange narkive permalink

Nella scrittura accademica formale, il problema dell'auto-plagio viene risolto citando le fonti che sono state utilizzate, anche se le fonti sono dello stesso autore. Penso che non sarebbe immorale riutilizzare il codice scritto in precedenza dal tuo compagno di gruppo fintanto che il tuo compagno di gruppo dichiara esplicitamente al tuo professore che il codice è stato scritto dal compagno di gruppo per un corso precedente. Chiedi al tuo professore se questa disposizione è accettabile e non viola le norme della scuola.

Sumurai8
2015-11-02 00:08:31 UTC
view on stackexchange narkive permalink

Non vedo quale sia il problema. Se hai già scritto del codice per visualizzare in modo ordinato determinati dati o chiedi input all'utente, è sciocco non riutilizzare questo codice. Assicurati solo di aggiungere un commento sopra le funzioni o i blocchi di codice che sono stati riutilizzati ed elenca brevemente che sei l'autore e dove l'hai usato in precedenza.

Se il corso stesso è per l'apprendimento riguardo agli algoritmi, non è saggio riutilizzare qualsiasi codice che avesse a che fare con gli algoritmi. Prima di tutto, probabilmente non è adattato al problema in questione. Secondo, non impari molto con il copia-incolla. Se hai già completato il corso, il professore probabilmente ti avrebbe dato il permesso di saltare il compito pratico. Se il professore non lo ha fatto, è probabile che voglia che tu rifaccia almeno quella parte.

Detto questo, riutilizzando (parte del) codice per la costruzione e l'attraversamento degli alberi quando necessità di implementare un algoritmo di ricerca va bene per quanto mi riguarda. Gli alberi non sono così difficili da implementare, ma è noioso dover scrivere di nuovo quel codice e potrebbe introdurre bug che hai già risolto in precedenza. Probabilmente stai studiando informatica e non stai cercando di ottenere una laurea in Dattilografia. Risolvere problemi che hai già risolto prima non è produttivo. Spendi quell'energia per comprendere e implementare le nuove cose. Se hai già realizzato molto del progetto, dedica del tempo a rifinirlo o chiedi un progetto più impegnativo. Ancora una volta, assicurati che non ci possa essere un malinteso sulla provenienza del codice inserendo un commento con l'autore, la posizione della fonte e la possibile licenza sopra il codice che è stato riutilizzato.


Questo detto, penso che dovresti imparare due cose da questo:

  • Assicurati che tu e il tuo partner siate sulla stessa pagina all'inizio del progetto. Sembra che tu abbia rimandato il lavoro al progetto fino a quando non è stato troppo tardi per tirarti indietro.
  • Se ci sono differenze incolmabili tra te e il tuo partner, hai comunque l'obbligo di finire il progetto prima della scadenza. Non sederti a litigare tra loro, ma lavora sul progetto da solo e incoraggia il partner a fare lo stesso. Se le differenze non sono colmabili in futuro, potrebbe essere necessario consegnare il progetto da solo. Assicurati di chiarire quale parte hai fatto con il tuo ex partner e quale parte hai fatto da solo.
einpoklum
2015-11-05 04:14:53 UTC
view on stackexchange narkive permalink

Preferisco una risposta più succinta.

La situazione di cui sopra è generalmente considerata un auto-plagio? Perché o perché no?

No , perché: 1. Non è una pubblicazione, nessuno può plagiare nulla. 2. Non stai fingendo di aver prodotto risultati di ricerca originali in questo incarico.

L'atto di cui sopra è generalmente consentito in un contesto accademico?

nella mia esperienza (come studente e assistente tecnico). Davvero, non ci interessa questo genere di cose. Progetti e compiti a casa sono una cortesia per voi studenti, per aiutarvi a raggiungere una migliore comprensione del materiale; e i voti sono solo un meccanismo statistico approssimativo.

Supponendo che tu sia nella mia posizione ... qual è il modo migliore per procedere ...?

Dovresti "imbrogliare" in questa situazione. Anche se "non ti sembra giusto", oggettivamente non si tratta di barare ed è accettabile per tutti gli altri interessati.

Per i contrari: beh, _qualcuno_ deve dirgli che :-)
_Le risposte di tutti sono fantastiche, ma lunghe._ E vedo che hai deciso di adottare l'approccio opposto su entrambi i fronti.
* Dovresti "barare". Anche se "non sembra giusto" *. Indipendentemente da ciò che pensa "di tutti gli altri interessati" (sono impressionato dal fatto che tu legga nel pensiero e puoi leggere i pensieri di tutti gli altri), questo è un consiglio terribile.
beh, ho indicato questa freccia. ancora lasciato a -2.
@DanRomik: ha riformulato quella frase per renderla meno, diciamo, sprezzante. Tuttavia, sarebbero apprezzate critiche più costruttive.
@110100101110101: Il fatto che pensi che questo sia un "pessimo consiglio" è più il problema che stai affrontando che altro. La "terribilità" è, con tutto il rispetto, una tua impressione errata. Per quanto riguarda la lettura della mente, non lo faccio, sto estrapolando in base alla mia esperienza e a ciò che hai descritto. Nota anche che ho detto "su tutti" ...
dwoz
2015-11-02 06:32:07 UTC
view on stackexchange narkive permalink

Immagina il problema in questo modo: ogni lezione che segui, è come se fossi un appaltatore per quella classe, scrivendo codice per la "compagnia" che gestisce quella classe. Quindi, quando finisci il semestre e passi al concerto successivo (cioè inizia il nuovo semestre e ora sei in questo progetto), il problema che hai qui è che, in linea di principio, il tuo partner non possiede quel codice. Non è del tutto vero, ma è essenzialmente lo stesso tipo di problema!

Puoi portare concetti da un posto all'altro, ma non puoi portare CODICE da un posto all'altro e è lo stesso nel mondo accademico (a quanto pare così in questa circostanza, comunque!). La risposta definitiva è che tu e il tuo partner dovete adottare quello che viene chiamato un approccio "green-field" al codice che vuole portare avanti ... dovete riscriverlo di nuovo.

Inoltre , il cosiddetto problema dell'auto-plagio è molto reale e un problema molto comune. Non puoi semplicemente riprendere il lavoro accademico svolto per una classe e ripresentarlo per un'altra classe ... se vieni beccato, di solito è un grosso problema. Puoi cavartela andando COMPLETA DIVULGAZIONE e citazione completa (a te stesso come autore precedente) ma è qualcosa che richiede un intervento diretto e prescritto PRIMA di consegnarlo, con il professore coinvolto. Ad alcuni andrà bene, ad altri decisamente no. È la loro chiamata.

Il mio suggerimento? Proponi insieme al tuo partner di reimplementare la sua API esistente con un nuovo codice. Porta il codice all'istruttore, dì che è quello che intendi e ottieni la sua prima benedizione.

Non sono d'accordo qui. Ci sono diversi motivi per seguire un corso, imparare e certificarsi (ottenere crediti). A volte hai semplicemente studenti che conoscono il materiale ma per ragioni diverse da loro hanno bisogno dei crediti. Va benissimo per loro fare leva sulle conoscenze precedenti. In un mondo perfetto gli sarebbe stato semplicemente dato il merito del lavoro che hanno svolto. Sfortunatamente ciò accade raramente, quindi devono farlo. Inoltre, anche se lo studente riscrive il codice, non può davvero sfuggire di averlo fatto prima.
Attualmente sto riscrivendo del codice MOLTO SOLIDO che ho scritto in precedenza. È incredibile quanto sia "orribile" quel codice precedente, dopo un po 'di tempo e una nuova prospettiva! Basti dire che sì, ci sono solo così tanti algoritmi e solo così tanti modi per scuoiare un gatto. Se hai già scritto qualcosa e ora devi farlo di nuovo, uscirà allo stesso modo. Nessuna domanda a riguardo. Ma basti anche dire che ci sono ragioni molto valide per dover riscrivere!
Non sostengo che la ripetizione non migliori. È solo che è un po 'sbagliato chiedere a una persona di rifare il lavoro quando altri non lo stanno rifacendo. Le persone possono avere altre priorità. Sono lì per imparare fino a un certo standard. Oltre a ciò, è l'iniziativa degli studenti. Lo scolaro non può pretendere questo, il tuo non valutare lo studente dal suo pieno potenziale solo dal livello relativo rispetto ad altri e da un certo livello di obiettivo.
Questa risposta si basa su una falsa premessa. A seconda dei contratti in essere, * potresti essere in grado di portare il tuo codice da un posto all'altro *.
@RubberDuck, dopo molti anni di lavoro nell'industria del software, ho scoperto che è esattamente zero volte, quel codice che ho scritto per il mio datore di lavoro è disponibile gratuitamente dopo che me ne sono andato. Tranne, ovviamente, il codice che è stato rilasciato al pubblico come codice GPL. Indipendentemente da ciò, non è pertinente alla domanda, che è: "qual è il desiderio del professore qui?"
@dwoz hai trascurato il caso in cui stai lavorando su un contratto per scrivere un programma per qualcuno. Se il contratto è scritto "correttamente", * puoi * conservare il diritto di riconfezionare, ridistribuire, riutilizzare quel codice. Ovviamente, se sei * impiegato * da qualcuno, un sano ufficio legale si assicurerà che possieda tutta la proprietà intellettuale creata mentre siamo al lavoro.


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