Frage:
Stellen zwei Zeilen kopierten Codes ein Plagiat dar?
TheSmartWon
2017-12-07 04:48:24 UTC
view on stackexchange narkive permalink

Ich habe zwei Codezeilen aus der OpenJDK-Quelle für ein Datenstrukturprojekt für Studenten kopiert (und nicht zitiert). Der Codevergleich zeigt jedoch eine alarmierende Ähnlichkeit (40%). Hier ist der Nebeneinander-Vergleich mit meiner Datei.

Aus diesen Gründen möchte mein Professor mir -100% auf die Aufgabe geben, was zu einem Rückgang führen würde meine Gesamtnote um 15%, was wahrscheinlich dazu führt, dass ich die C-Wand nicht schaffe (abhängig davon, wie gut ich bei der Abschlussprüfung abschneide). Aus diesem Grund (und aus meinem Bewusstsein) habe ich beschlossen, Berufung einzulegen.

Ich glaube jedoch, dass der größte Teil der Ähnlichkeit im Bericht auf das Kopieren der Zeilen 142-152 zurückzuführen ist:

  statischer int-Hash (int h) {h ^ = (h >>> 20) ^ (h >>> 12); return h ^ (h >>> 7) ^ (h >>> 4);}  

Ich habe diese beiden Zeilen nicht zitiert, wollte sie aber später löschen.

Tatsächlich kann diese gesamte Funktion entfernt werden, ohne das Programm zu beeinträchtigen, was zu diesem Dateivergleich führt.

Dann nur Die Zeilen 114-126 sind ein Problem:

  MyEntry<K, V> [] newArr = new MyEntry [newSize]; // Copyfor (int i = 0; i < data.length; i ++) {MyEntry<K, V> e = data [i]; if (e! = null) {data [i] = null; do {MyEntry<K, V> next = e.next; int j = e.hash% newSize; e.next = newArr [j]; newArr [j] = e; e = weiter; } while (e! = null);  

Dieses Snippet ist jedoch mein eigenes. Ich habe diese Zeilen geschrieben, ohne auf HashMap.java zu verweisen, und dies ist ein gängiger Algorithmus für die Verkettung, den ich gründlich erklären kann und den ich seit Jahren kenne.

Ja, ich weiß, dass die Tatsache, dass ich die beiden anderen Zeilen kopiert habe, meine Integrität beeinträchtigt und die 20% zunächst zu 40% gemacht hat. Wie kann ich das beweisen?

Ich bin mir nicht sicher, wie ich diesen ganzen Fall vor einem Student Conduct Board verteidigen soll, das sehr wenig über Programmierung weiß. Meine Anhörung im Vorstand ist in einem Monat. Stellen diese beiden Codeausschnitte ein Plagiat meines gesamten Projekts dar? Entspricht -15% meiner Gesamtnote?

Nebenbemerkungen:

  • Unsere Projekte sind ziemlich umfangreich, da wir java.util nicht verwenden dürfen. * (wie 1k + Zeilen für jedes Projekt in 8 Tagen), und ich habe keinen anderen Code kopiert. Ich würde sagen, dass die eigentliche Implementierung der Datenstruktur nur etwa 1/5 unserer pro Projekt aufgewendeten Zeit in Anspruch nehmen soll.
  • Über 30% der Klasse wurden im Laufe des Semesters wegen Verstößen gegen die akademische Integrität bei Projekten gemeldet. und der frisch graduierte Professor scheint nicht zu glauben, dass er selbst oder seine Aufgaben das Problem sind. Ich hätte die Warnung vor diesem letzten Projekt des Semesters verstehen sollen ...
Kommentare sind nicht für eine ausführliche Diskussion gedacht.Diese Konversation wurde [in den Chat verschoben] (http://chat.stackexchange.com/rooms/69853/discussion-on-question-by-thesmartwon-does-two-lines-of-copied-code-constitute-p).
Dies ist die Art von Chaos, die mich dazu gebracht hat, die Akademie zu verlassen.
Ich möchte darauf hinweisen, dass dieses umstrittene Stück wörtlich [hier] (https://stackoverflow.com/questions/19016928/can-anyone-explain-me-the-logic-behind-this-hash-function) und [hier] (https://stackoverflow.com/questions/9335169/understanding-strange-java-hash-function).
@Gryph Es gibt einen größeren Streit, siehe den oben genannten Chat.
Einige der neueren Kommentare deuten darauf hin, dass Sie die kulturellen Normen in Bezug auf Plagiate im Westen nicht aufgegriffen haben.Ich weiß also nicht, ob dies völlig außerhalb der Basis liegt, aber ein Grund, warum jemand die Normen hier möglicherweise nicht kennt, ist, wenn er aus Asien stammt, z.ein internationaler Student oder ein Einwanderer, der als Erwachsener zur Schule zurückgekehrt ist.Jemand, der in Asien aufgewachsen ist, hätte verständlicherweise einige seiner kulturellen Normen über Plagiate während seiner frühen Ausbildung aufgegriffen, die sich stark von den westlichen Normen unterscheiden.Dies würde Sie nicht vom Haken kriegen, aber es könnte ein mildernder Faktor sein.
Zehn antworten:
#1
+55
Jack Aidley
2017-12-07 10:44:26 UTC
view on stackexchange narkive permalink

Es ist sehr wahrscheinlich, dass Sie plagiiert haben, und wenn dies der Fall ist, sollten Sie Ihren Fehler besser erkennen, als weiter zu streiten.

Wenn Sie sich Ihren Code ansehen, gibt es eine großartige Möglichkeit Deal, der anscheinend aus der HashMap.java-Datei übernommen wurde. Ich vermute sehr, dass Sie mit diesem Code begonnen und ihn dann geändert haben, um Ihren Code zu erstellen, oder ihn beim Schreiben Ihres eigenen Codes genau als Vorlage befolgt haben. Die hervorgehobenen Codeabschnitte haben einiges davon aufgegriffen, aber andere Abschnitte ähneln auch stark der anderen Datei, obwohl sie leicht veränderte Kommentare und Reihenfolge aufweisen.

Wenn dies der Fall ist, ist der Code, den Sie uns gezeigt haben, derselbe Nicht Ihre eigene Originalarbeit, sondern eine plagiierte Version von HashMap.java. In den beiden Zeilen, die nicht verbunden sind, befindet sich eine rauchende Waffe der Verbindung, die für das Panel wahrscheinlich schlüssig ist. Ihr Punkt, dass sie unnötig sind, wird tatsächlich gegen Sie zählen, weil Sie nicht erklären können, warum sie überhaupt da sind. Unabhängig davon, ob dies Ihre Absicht war oder nicht, wird das Gremium (und Ihr Professor) Ihre geänderten Kommentare und Bestellungen wahrscheinlich als Versuch ansehen, Ihre Spuren zu verwischen und Ihr Plagiat vor automatisierten Tools zu verbergen.

Das Gremium zeigt eher Nachsicht gegenüber einem Schüler, der zumindest zerknirscht zu sein scheint und erkennt, dass er einen Fehler gemacht hat, als gegenüber einem Schüler, der angesichts scheinbar sehr starker Beweise das Fehlverhalten bestreitet.

Oh, ich leugne nicht, es als Referenz zu verwenden, was im Lehrplan erlaubt ist.Meine Behauptung ist, dass ich vergessen habe zu zitieren / die Notwendigkeit des Zitierens nicht gesehen habe, weil ich neu in der Wissenschaft bin, die Aufgabe sich dafür bot und ich es gewohnt bin, Aufgaben in Bezug auf die hobbesten Projekte, die ich ausleihen kann, so zu behandelnfrei von GPL-Code, nicht von akademischen, die seine Verwendung verbieten.Die Behauptungen, die mein Professor gegen mich erhoben hat, wiesen jedoch nur auf das MOSS hin, nicht auf die gesamte Akte. Deshalb frage ich nur nach den beiden Zeilen.
Ich habe tatsächlich einen guten Grund, diese Zeilen zu schreiben.Wir mussten viele zwei Zeichenketten (d. H. "AB") hashen.Ohne die Hilfs-Hash-Funktion gab es viele Kollisionen, und ich befürchtete, dass mein Code bei der automatisierten Bewertung eine Zeitüberschreitung aufweisen würde, was die Entwicklung aufgrund der Funktionsweise unseres automatisierten Jenkins-Sortierers um ein Vielfaches verzögern würde.Ich habe es aufgenommen, weil ich, nachdem ich gelernt hatte, wie es funktioniert, es cool fand und mein Projekt es nutzen konnte.Ja, ich fühle mich jetzt zerknirscht, als mir klar wird, dass die Wissenschaft andere Standards hat, die mir wirklich nicht klar gemacht wurden.
@TheSmartWon, Ich würde empfehlen, dass Sie auch in Zukunft, selbst für Hobbyprojekte, bei denen Sie nicht beabsichtigen, den Code zu verbreiten, weiterhin Code zitieren, den Sie von einem anderen Ort ausgeliehen haben.Wenn Sie sich später dazu entschließen, Ihren Code ohne diese Zitate zu veröffentlichen oder zu verkaufen, vergessen Sie möglicherweise, was von wo ausgeliehen wurde (und laufen Gefahr, die Lizenz zu verletzen).
@TheSmartWon 1) Das MOSS identifizierte viel mehr als nur zwei Zeilen.2) Sie sollten wissen, dass das Kopieren von Code, den Sie selbst schreiben sollen, eine Aufgabe betrügt. Das ist nur gesunder Menschenverstand. 3) Sie haben diese Zeilen nicht geschrieben. 4) Ich glaube nicht, dass Sie tatsächlich Angst davor hatten, dass das Zeitlimit überschritten wird.Für mich riecht diese Aussage nach mehr Vertuschungsversuchen.
@immibis 1) Sehen Sie sich das zweite MOSS im OP an.2) Ich habe es selbst geschrieben - unter Verwendung einer Quelle und einige meiner eigenen Änderungen vorgenommen.3) Einverstanden.4) Ich habe keinen Grund hier zu liegen.Ich denke wie ein Ingenieur (ich fand die Funktion cool und ich hatte eine gute Verwendung dafür!), Also habe ich sie benutzt, nicht als Student, der versucht, "seine eigene Arbeit" abzugeben.
@TheSmartWon 1) Der gleiche, der 3 weitere Abschnitte identifiziert?2) "Verwenden einer Quelle und Vornehmen einiger Änderungen" bedeutet nicht "selbst schreiben".4) Ihr Grund zu lügen ist zu versuchen, Bestrafung zu vermeiden.Es ist eine normale Reaktion, alles zu tun, damit es so aussieht, als ob man nicht bestraft werden sollte.Ein Ingenieur würde eine Funktion auch nicht verwenden, nur weil er "dachte, sie sieht cool aus".Sie wissen auch bereits, dass Aufgaben Ihre eigene Arbeit sein müssen;Wenn Sie sich nicht daran erinnern können, die Arbeit anderer Menschen nicht abzugeben, haben Sie ein Problem.
1) Ja.Sprechen Sie darüber, wenn Sie möchten.2) Ich stimme zu.Wir empfehlen jedoch, die Java-API als Vorlage zu verwenden.4) Wenn ich versucht hätte, eine Bestrafung zu vermeiden, hätte ich diesen Beitrag nicht gemacht.Ich möchte, was in den Augen der Wissenschaft fair ist.4.2) Sie haben meine zweite Klausel "... und ich [habe die Funktion verstanden] und sie gut genutzt" nicht erkannt.Ingenieure berücksichtigen ständig die Optimierungen anderer Personen, insbesondere in OSS!
Hier ist die Absicht ein so schwieriges Thema, wenn es um Plagiate geht.Wollte der Angeklagte plagiieren?Zu wissen, dass eine Idee, ein Zitat oder ein Code zu einer anderen Entität gehört, und obwohl die Regeln bekannt sind, entscheiden sie sich immer noch dafür, sie ohne Zitat zu verwenden.Wenn die Klasse niemals das Zitieren von Code betonte (und auf der Grundlage der Frage und der Kommentare von OP bis jetzt), würde es den Anschein haben, dass solche Konventionen nie gelehrt, aber dennoch durchgesetzt wurden.Wenn Sie eine Regel festlegen, ohne sie zu erklären, wie wäre es fair, wenn die Schüler sie nicht verstehen / befolgen?
@TheSmartWon Ich glaube nicht, dass ernsthafte OSS-Programmierer in Bezug auf geistiges Eigentum annähernd so beiläufig sind wie Sie.Ich bin sowohl Mitglied der Apache Software Foundation als auch Committer bei einigen ASF-Projekten.Um ein Committer zu werden, musste ich eine rechtliche Vereinbarung unterzeichnen, die unter anderem besagt: "Sie repräsentieren, dass jeder Ihrer Beiträge Ihre ursprüngliche Schöpfung ist" und "Sie repräsentieren, dass Ihre Beitragseinreichungen vollständige Details einer Lizenz eines Drittanbieters enthalten oderandere Einschränkungen ... die Ihnen persönlich bekannt sind und die mit einem Teil Ihrer Beiträge verbunden sind. "
@FrankFYC "Es scheint, dass solche Konventionen nie gelehrt, aber dennoch durchgesetzt wurden". Das Konzept "Nicht betrügen, indem man die Arbeit anderer kopiert" ** ist keine "Konvention" und muss nicht gelehrt werden.Es ist offensichtlich (tatsächlich ist es in so ziemlich jedem akademischen / universitären Regelwerk zu finden).
@AndreaLazzarotto Ich bin nicht anderer Meinung als die Aussage, dass Plagiate falsch und unethisch sind und bestraft werden sollten (in einigen Fällen streng).Aber vielleicht waren meine Worte eher verwirrend als aufschlussreich.Wenn die Behauptung hier Plagiat mit den folgenden Teilen ist: Wissen - wusste der Angeklagte, was Plagiat ist, Absicht - und entschied sich dennoch zu plagiieren, dann kann die Jury (Studentenausschuss) OP als angeklagt für schuldig erklären.Die Verteidigung, die OP vorbringen kann, ist, dass die derzeitige Definition von Plagiat nicht gut funktioniert, wenn es um Computerprogrammierung geht, sowie die Tatsache, dass (Fortsetzung)
Ein häufig verwendeter Mechanismus, mit dem Studenten ihre Quellen zitieren können (z. B. eine Bibliographie), wurde vom Professor nicht gefordert.Ein weiteres Argument wäre, dass der Professor während der Notenüberprüfungen ein anderes Fakultätsmitglied anwesend hatte, was einen möglichen Verstoß gegen FERPA darstellt.Ein weiteres Argument ist die relativ hohe Anzahl von Behauptungen über akademisches Fehlverhalten in der Klasse - was darauf hindeuten könnte, dass der Professor keine Anstrengungen unternommen hat, um seine Klasse über Plagiate speziell über das Programmieren von Zitaten aufzuklären.
@FrankFYC Ich bin nicht einverstanden mit der Verteidigung, es ist ziemlich strittig.Ich selbst habe CS studiert und uns wurde nie eine bestimmte Anweisung gegeben, nicht zu plagiieren.Wir wussten, dass es falsch war und es gilt auch für Code.Zugegeben, ich bin in einem anderen Land und hier ist Plagiat eine Straftat, daher könnte die Situation etwas anders sein als in den USA.
@AndreaLazzarotto Genau mein Punkt.Plagiate sind eine schwerwiegende Anklage.Es ist nicht einfach festzustellen, ob eine Person ein Verbrechen begangen hat oder nicht.In diesem Fall verwendete der Professor nur einen einzigen Test, um festzustellen, ob der Student plagiiert war oder nicht.Wäre das fair?Darüber hinaus hat der Professor angeblich gegen die US-Datenschutzgesetze verstoßen, indem er einem anderen Fakultätsmitglied erlaubt hat, die Note des Studenten zu sehen.Der Professor hat auch eine absurd hohe Rate an Fällen akademischer Integrität in der Klasse.Würden Sie sich nicht fragen, wie der Professor die Klasse unterrichtet (Fortsetzung)
kann die Entscheidungsfindung des Schülers beeinflussen?Wenn Sie unmögliche Ziele setzen, egal wie gut gemeint, ohne ein Mittel, um dies ethisch zu erreichen, wie viele würden sich entscheiden, abzuweichen und zu betrügen?Nur eine Person zu haben, die die einseitige Macht hat, festzustellen, wer betrogen hat, ist möglicherweise voller Missbrauch.Und schließlich, und ich stimme Ihnen voll und ganz zu, ist Plagiat ein ernstes Problem.Das heißt aber nicht, dass jemand automatisch ohne Beweise und eine gründliche Untersuchung schuld ist.Unschuldig bis nachweislich schuldig - das ist das amerikanische Justizsystem (manchmal unvollkommen, aber es ist alles, was wir haben).
@PersonX Es ist auch sehr hilfreich, diese Zitate zu haben, wenn Sie in einem Jahr auf Ihren Code zurückblicken.Es ist ziemlich einfach, den Link, den Sie sich ansehen, einfach in einen Kommentar einzufügen.Es bietet auch den zusätzlichen Vorteil, wenn Sie möchten, dass andere von Ihrem Code lernen, um daraus zu lesen.
@FrankFYC: Abhängig von der Klassengröße ist diese Rate nicht "absurd hoch".Ich bin ein Grader für eine Klasse von normalerweise einem Dutzend Menschen, und in den meisten Jahren hatte ich drei Fälle von offensichtlichem Plagiat (solche, bei denen die Schüler die Sätze und Fehler des anderen in der Grundrechenart kopierten).Wenn nächstes Jahr ein zusätzlicher Schüler beschließt, seine Bemühungen mit einem Klassenkameraden zu teilen, wäre es plötzlich ein außergewöhnliches Ereignis?(Wir setzen diese Schüler hin, wir werfen ihnen nicht das ganze Buch beim ersten Mal zu, und ihre Rechtfertigung ist immer, dass sie zu viele Aufgaben aus anderen Klassen haben, die nicht genug Zeit lassen.)
#2
+41
Tom van der Zanden
2017-12-07 21:11:30 UTC
view on stackexchange narkive permalink

Der Titel Ihrer Frage "Sind zwei Zeilen kopierten Codes ein Plagiat?" ist meiner Meinung nach nicht genau.

Ich denke, es wird Ihnen sehr schwer fallen, zu argumentieren, dass dies nicht der Fall ist Es war kein Plagiat. Die Ähnlichkeiten zwischen Ihrem Code und HashMap.java enden nicht in den beiden Zeilen oder bei einem einzelnen "gemeinsamen Algorithmus".

1) Sie haben genau dieselbe Standardkapazität und denselben Ladefaktor ausgewählt:

  / ** Muss eine Potenz von 2 sein * / private static final int DEFAULT_CAPACITY = 16; / ** Der Lastfaktor * / private static final float DEFAULT_LOAD_FACTOR = 0.75f;  

versus

  // Die anfängliche Standardkapazität - MUSS eine Potenz sein von zwei. static final int DEFAULT_INITIAL_CAPACITY = 16; // Der Ladefaktor, der verwendet wird, wenn im Konstruktor keiner angegeben ist. statisches endgültiges Float DEFAULT_LOAD_FACTOR = 0.75f;  

Tatsächlich bedeutet der Kommentar "Muss eine Potenz von 2 sein" bereits, dass Sie auf frischer Tat ertappt werden, weil es tatsächlich gibt Kein guter Grund zu verlangen, dass die Kapazität in Ihrem Code eine Zweierpotenz ist. Die Tatsache, dass die Größe eine Zweierpotenz ist, wird nur für eine Optimierung in der HashMap.java-Version des Codes verwendet, und diese Optimierung wird in Ihrem Code nicht verwendet. Sie haben wahrscheinlich Glück, dass das Student Conduct Board nicht viel über Programmierung weiß.

2) Die beiden Methoden get sind sehr ähnlich:

  public V get (K key) {if (key == null) return null; int hash = key.hashCode ()% data.length; // System.out.printf ("% d% d% s abrufen \ n", key.hashCode (), Hash, // key.toString ()); für (MyEntry<K, V> e = Daten [Hash]; e! = null; e = e.next) {if (e.hash == Hash && (e.getKey () == key || key.equals (e. getKey ()))) return e.getValue (); } return null;}  

versus

  public V get (Objektschlüssel) {if (key == null) return getForNullKey (); int hash = hash (key.hashCode ());
für (Entry<K, V> e = table [indexFor (Hash, table.length)]; e! = null; e = e.next) {Object k; if (e.hash == hash && ((k = e.key) == key || key.equals (k))) return e.value; } return null;}  

Es scheint seltsam, dass Sie beide genau die gleiche, sehr spezifische Methode für den Schlüsselvergleich ausgewählt haben (zuerst die Hashes, dann die Zeiger der Schlüssel und schließlich using key.equals).

3) ... ebenso wie die put -Methode:

  public MyEntry<K, V> put (K-Taste) , V-Wert) {int hash = key.hashCode (); // System.out.printf ("Hinzufügen von% d% d% s \ n", key.hashCode (), Hash, key.toString ()); int i = Hash% data.length; // Kollisionen für (MyEntry<K, V> e = data [i]; e! = Null; e = e.next) {if (e.hash == hash && (e.getKey () == key || key.equals (e.getKey ()))) {MyEntry<K, V> old = e; e.setValue (Wert); alt zurückkehren; }} addEntry (Hash, Schlüssel, Wert, i); return null;}  

versus

  public V put (K-Schlüssel, V-Wert) {if (key == null) return putForNullKey (Wert); int hash = hash (key.hashCode ()); int i = indexFor (Hash, table.length); für (Entry<K, V> e = Tabelle [i]; e! = null; e = e.next) {Objekt k; if (e.hash == Hash && ((k = e.key) == key || key.equals (k))) {V oldValue = e.value; e.value = value; e.recordAccess (this); return oldValue; }} modCount ++; addEntry (Hash, Schlüssel, Wert, i); return null;}  

4) ... ebenso wie die Methoden add und wachsen -

  void addEntry (int Hash, K Schlüssel, V Wert, int BucketIndex) {MyEntry<K, V> e = Daten [BucketIndex];
data [BucketIndex] = new MyEntry<> (Hash, Schlüssel, Wert, e); keyList.add (Schlüssel); if (Größe ++ > = Schwelle) grow ();} / ** * Wächst das Array 2x aktuelle Größe * / private void grow () {int newSize = 2 * data.length; @SuppressWarnings ("nicht markiert") MyEntry<K, V> [] newArr = new MyEntry [newSize]; // Kopieren für (int i = 0; i < data.length; i ++) {MyEntry<K, V> e = data [i]; if (e! = null) {data [i] = null; do {MyEntry<K, V> next = e.next; int j = e.hash% newSize; e.next = newArr [j]; newArr [j] = e; e = weiter; } while (e! = null); }} data = newArr; Schwelle = (int) (newSize * DEFAULT_LOAD_FACTOR);}  

versus

  void addEntry (int Hash, K-Schlüssel, V-Wert, int BucketIndex) { Entry<K, V> e = Tabelle [BucketIndex]; Tabelle [BucketIndex] = neuer Entry<> (Hash, Schlüssel, Wert, e); if (Größe ++ > = Schwelle) Größe ändern (2 * table.length);} void transfer (Entry [] newTable) {Entry [] src = table; int newCapacity = newTable.length; für (int j = 0; j < src.length; j ++) {Entry<K, V> e = src [j]; if (e! = null) {src [j] = null; do {Entry<K, V> next = e.next; int i = indexFor (e.hash, newCapacity); e.next = newTable [i]; newTable [i] = e; e = weiter; } while (e! = null); }}}  

Natürlich ist eine HashTable eine ziemlich häufige Datenstruktur und es gibt nur so viele Möglichkeiten, einen bestimmten Algorithmus zu implementieren. Die beiden kopierten Zeilen zeigen jedoch, dass Sie HashTable.java definitiv als Ausgangspunkt für Ihre eigene Implementierung verwendet haben, und die weiteren Ähnlichkeiten im Design, in unlogischen Kommentaren und in der Codestruktur lassen vermuten, dass Sie mehr als nur eine genommen haben wenig "Inspiration" von HashTable.java.

Beachten Sie, dass sowohl Ihre als auch ihre Put- und Get-Methoden eine for-Schleife verwenden, um über eine verknüpfte Liste zu iterieren, während die Grow / Transfer-Methoden eine while-Schleife verwenden das Gleiche tun. Es scheint seltsam, dass beide Codeteile unabhängig voneinander dieselbe Entscheidung treffen würden.

Unsere Projekte sind ziemlich umfangreich, da wir java.util nicht verwenden dürfen. * (Wie 1k + Zeilen für jedes Projekt in 8 Tagen), und ich habe keinen anderen Code kopiert. Ich würde sagen, dass die eigentliche Implementierung der Datenstruktur nur etwa 1/5 unserer Zeit pro Projekt in Anspruch nehmen soll.

Es scheint klar, dass Sie HashMap.java nicht verwenden durften. und wenn Sie eine Hash-Tabelle verwenden wollten, müssten Sie Ihre eigene implementieren. Durch Kopieren großer Teile von HashMap.java haben Sie versucht, diese Einschränkung zu umgehen. "Es ist nur ein kleiner Teil des Projekts" nimmt nicht die Tatsache weg, dass Sie Code genommen haben, der nicht Ihre eigene Arbeit war, und versucht haben, ihn als Ihre eigene auszugeben (obwohl die Erwartung war, dass Sie dies schreiben würden Teil der Aufgabe selbst).

Wenn die Aufgaben angesichts der zugewiesenen Zeitspanne wirklich unrealistisch wären, wäre es besser gewesen, eine fehlerhafte Lösung einzureichen. Wenn viele Studenten eine fehlerhafte Lösung eingereicht hätten, hätte der Professor möglicherweise die Möglichkeit in Betracht gezogen, dass die Aufgabe zu schwierig war. Wenn das Plagiat unbemerkt geblieben wäre, hätte der Professor möglicherweise (fälschlicherweise) festgestellt, dass die Aufgabe von angemessener Schwierigkeit ist, und die Schüler bestraft, die (versucht) haben, die Aufgabe fair und gemäß den Regeln abzuschließen.

Die Strafen für Plagiate können je nach Institution sehr unterschiedlich sein. -100% Ihres Auftrags könnten schwerfällig sein, aber in unserer Einrichtung könnte die Strafe zwischen 0% des Auftrags liegen, ein automatischer Fehler für den betreffenden Kurs, der 12 Monate lang von Ihrem Studium ausgeschlossen wird. Plagiate werden in den meisten Institutionen ähnlich behandelt wie das Betrügen einer Prüfung, und die Strafen können streng sein. Wenn die einzige Strafe 0% für die plagiierte Aufgabe wäre, würde es nicht schaden, zu versuchen, zu plagiieren, wenn Sie die Aufgabe trotzdem nicht bestehen würden, ohne auf Plagiate zurückzugreifen.

Es ist mir ein bisschen unangenehm, große Mengen an Quellcode in eine Antwort zu schreiben (scheint für akademia.SE nicht thematisch zu sein), aber dies scheint die einzige Möglichkeit zu sein, dem Fragesteller zu erklären, wie schwer das Kopieren ist (die Aussage über"nur zwei Zeilen" scheint es herunterzuspielen).
Außerdem wies die Inkonsistenz anderer darauf hin, dass das OP behauptete, der kopierte Teil sei nicht einmal verwendet worden.Teilweise deutet dies auf ein Problem hin, da es dann keinen Sinn macht, warum es überhaupt enthalten ist, und wie auch ausgeführt, die Behauptung nicht einmal wahr ist und darauf hinweist, dass das OP den Code nicht wirklich versteht.
Ja.Dieser Schüler wäre ein Toast, wenn er diesen Code in meiner Klasse abgeben würde.
Um es klarer auszudrücken, meiner Meinung nach sehen diese Codebeispiele wie Kopieren und Einfügen mit einigen geringfügigen Umgestaltungen aus.Immer wenn eine einfache for-Schleife in der HashTable verwendet wird, wird sie auch vom Schülercode verwendet.Immer wenn eine for-Schleife im Iteratorstil verwendet wird, wird sie auch vom Schülercode verwendet.(die Schleifen mit e.next (), ich habe diesen Stil außerhalb des JDK im modernen Code noch nie erlebt).Sogar die eigentümliche Art, geschweifte Klammern nach einer Zeile wegzulassen, wenn Anweisungen und Schleifen kopiert werden.
Das OP muss sich bewusst sein, dass ein Student Conduct Board, das nicht über viel Programmierkenntnisse verfügt, möglicherweise einen erfahrenen Java-Programmierer einladen kann, den Code zu überprüfen.Wenn ich der Professor wäre und der Student behaupten würde, der Code sei nicht von HashMap abgeleitet, würde ich auf eine Überprüfung durch Experten drängen.
Ich leugne nicht, dass mein Code von HashMap.java abgeleitet ist.Ich bestreite, dass "es klar zu sein scheint, dass Sie HashMap.java nicht verwenden durften", und ich würde nachdrücklich argumentieren, dass ich nicht wusste, wie viel davon ich verwenden könnte, dass die Notwendigkeit des Zitierens nicht klargestellt wurde(Ich bin neu in der Wissenschaft) und dass ich nicht versucht habe, das Lernen bei der Aufgabe zu umgehen, sondern stattdessen beschlossen habe, das Rad nicht neu zu erfinden.Sie sind der Meinung, dass ich den Code nicht verstehe, aber ich verstehe.
@TheSmartWon 1) Die Unkenntnis der Plagiatsregeln wird dem Conduct Board wahrscheinlich kein sehr überzeugendes Argument liefern.2) Ihnen wurde gesagt, dass Sie in java.util nichts verwenden können. *.Für einen externen Beobachter sieht es so aus, als hätten Sie im Grunde genommen die relevanten Teile der Quelle von java.util.HashMap kopiert und leicht modifiziert, keine eigene Arbeit.Sogar * mit * einem Zitat, das Sie in Schwierigkeiten bringt.3) Stimmt es, dass Sie einen Kurs über grundlegende Datenstrukturen belegen?In diesem Fall nehmen Sie im Grunde genommen "Wheel Building 101" und das Rad neu zu erfinden ist genau das, was Sie tun sollen.
@TomvanderZanden 1) Ich stimme im Allgemeinen zu, aber in der Informatik (wo Ingenieurwesen und Wissenschaft eine Brücke schlagen) würde ich sagen, dass es etwas Raum zum Streiten gibt, insbesondere angesichts des unklaren Lehrplans.2) Keine Ablehnung hier.Wenn ich ein Zitat hätte, warum würde mich das in Schwierigkeiten bringen?Der Professor sagte, ein Zitat "könnte genug gewesen sein" in unserem Treffen.3) Ja, ich nehme an einem Kurs über grundlegende Datenstrukturen teil.Die Neuerfindung des Rades ist jedoch NICHT genau das, was wir tun sollen, sondern wir müssen das Rad neu erfinden und ein voll funktionsfähiges Fahrrad mit einer sehr exakten Lackierung und einem sehr exakten Styling herstellen.Im Unterricht sprechen wir nur über Theorie
Wenn Sie der Meinung sind, dass das Ableiten Ihres Codes von java.util.HashMap ohne Zuordnung zusätzlich zu den @TomvanderZanden's-Punkten zulässig ist, müssen Sie möglicherweise erklären, warum Sie die von Ihnen vorgenommenen Änderungen vorgenommen haben.Warum haben Sie beispielsweise den Kommentar zu "size ()" von "Gibt die Anzahl der Schlüsselwertzuordnungen in dieser Zuordnung zurück" geändert.zu dem mehrdeutigen "Gibt die Größe des Arrays zurück"?
@TheSmartWon In der Ausbildung kann man immer argumentieren, dass "jemand dieses Problem bereits gelöst hat, warum sollte ich es erneut lösen?", Beginnend mit Mathematikübungen in der Grundschule.Und der Lehrer dort wird auch wütend auf Sie, wenn Sie nur die Lösung kopieren oder einen Taschenrechner verwenden, anstatt selbst zu rechnen.
@Kapep Ich stimme Ihnen voll und ganz zu, nur eine kleine Sache ... "Sogar der eigentümliche Stil, geschweifte Klammern nach einer Zeile wegzulassen, wenn Anweisungen und Schleifen kopiert werden.": Dieser Stil ist nicht eigenartig, er ist ziemlich normal.
@AndreaLazzarotto Ok, vielleicht ist eigenartig nicht das richtige Wort, aber ich verbinde diesen Stil mit Legacy-Code oder Java-Code, der von Programmierern mit Hintergrundinformationen in C. Suns Java-Code-Konventionen von vor 20 Jahren geschrieben wurde.Ich kenne keine modernen Richtlinien für den Java-Code-Stil, die dies fördern.Ich glaube, ich habe nur einen ähnlichen Stil gesehen, bei dem die gesamte Aussage in einer einzigen Zeile stehen muss, wenn geschweifte Klammern weggelassen werden.
Aber wenn ich noch einmal darüber nachdenke, ist es für den Schüler möglicherweise nicht fair, auf Codierungsstile hinzuweisen.Das Programmieren ist für viele Anfänger bereits schwierig genug, und bei Codestilen müssen Sie einige Erfahrungen sammeln, bevor Sie die Vorteile eines Stils gegenüber dem anderen verstehen.Ich kann den Schülern nicht wirklich die Schuld geben, dass sie sich an (veraltete) Codekonventionen von Standardbibliotheken halten.
@Kapep ja, schließlich ist es nur wichtig, den Schülern beizubringen, die öffnende geschweifte Klammer auf dieselbe Linie wie das Wenn / Für / Klasse / Was auch immer zu setzen.Einige Leute bestehen darauf, es auf eine neue Linie zu setzen.Jedes Mal, wenn dies getan wird, stirbt ein Welpe.:(
@TomvanderZanden Ich mag die Regeln Ihrer Institution für den Umgang mit Plagiaten wirklich sehr.An meiner Universität war die Bestrafung wie "böser Junge! Tu das nicht!", Also hatte ich es satt, das Richtige zu versuchen, während alle mit Betrug davonkamen, und ich hörte ganz auf.
#3
+23
Dmitry Savostyanov
2017-12-07 05:58:06 UTC
view on stackexchange narkive permalink

Plagiat bedeutet, die Arbeit eines anderen als Ihre eigene zu übergeben. Soweit ich weiß, haben Sie die Arbeit eines anderen als Ihre eigene bestanden. Zu Ihrer Verteidigung geben Sie eine Liste von Anweisungen an:

  • Das plagiierte Codefragment ist klein.
  • Das plagiierte Codefragment ist nicht erforderlich.
  • Die Aufgaben des Professors sind schwierig.
  • Der Professor hat gerade seinen Abschluss gemacht.
  • Das Student Conduct Board weiß wenig über Programmierung.

Ich kann nicht sehen, wie welche von ihnen sind für das betreffende Thema relevant. Die zentrale Frage lautet: Haben Sie die Arbeit eines anderen ohne Referenzen in Ihrer eigenen verwendet? Wenn Sie dies getan haben, haben Sie plagiiert und stehen vor Konsequenzen. Lerne die Lektion und wiederhole den Fehler nicht noch einmal.

Nicht jedes Plagiat ist gleich und sollte nicht gleich behandelt werden.Eine Einheitsstrafe ist normalerweise eine schlechte Idee.
Wir wissen nicht, ob -100% eine Einheitsstrafe ist, da wir keine Details zu anderen Plagiatsfällen in dieser Klasse kennen.
In diesem Fall handelt es sich um eine Einheitsstrafe.Er hat das mit 3 anderen Leuten gemacht, die ich in der Klasse kenne.Ich verstehe, dass ich plagiiert habe, ich sehe es einfach nicht als große Sache an und es stellen sich andere Fragen.
@TheSmartWon Sie kommentieren "Ich sehe es einfach nicht als große Sache" ist ein sehr starkes Argument für eine hinreichend schwerwiegende Konsequenz, dass Sie es in Zukunft als große Sache sehen werden.
@PatriciaShanahan Nun, lassen Sie mich umformulieren.Ich verstehe nicht, warum es in der realen Welt eine große Sache sein würde.Ich habe tatsächlich mehr gelernt, indem ich diese beiden Codezeilen verwendet habe (ich habe gelernt, wie sie funktionieren!), Als wenn ich sie weggelassen hätte.Ich denke nur, die Frage ist, was mein (unbeabsichtigtes) Plagiat verdient.
@TheSmartWon In der realen Welt ist das Verständnis und die Einhaltung von Lizenzregeln eine wirklich große Sache.Das Einfügen von Code mit inkompatiblen Lizenzierungsregeln in das Produkt Ihres Arbeitgebers kann zu ernsthaften rechtlichen Problemen führen.
@PatriciaShanahan Ich stimme zu, die Lizenzierung ist wichtig, und es gibt OSS-Quellcode, den ich verwenden kann und nicht, wenn ich für ein bestimmtes Unternehmen an einem bestimmten Projekt arbeite.Ich respektiere und benutze Lizenzen sowohl bei der Arbeit als auch in meiner eigenen Arbeit.In diesem Fall habe ich [GPL2-Code] (https://tldrlegal.com/license/gnu-general-public-license-v2) kopiert, was völlig in Ordnung wäre, solange ich meinem Projekt eine Kopie der Lizenz beigefügt hätteund gab die Quelle frei.Zufälligerweise stimmen beide mit meinem Projekt überein.Der Uni ist das allerdings egal.
@TheSmartWon Die akademische Welt baut darauf auf, Kredite dort zu vergeben, wo sie fällig sind.Sie nehmen keine Anerkennung von den Werken anderer.Deshalb hält die Universität es für eine große Sache ...
@TheSmartWon Es wird immer Regeln für die Verwendung des Codes anderer Personen geben.Die Regeln hängen davon ab, wie Sie den Code verwenden, sowie vom Urheberrecht und den Lizenzen des Codes.Wenn Sie eine Übung im College einreichen, gilt die Regel, den gesamten Code zu bestätigen, den Sie nicht geschrieben haben.
Im strengsten Fall wäre jeder Code, der eine Zeile mit "i ++;" enthält, ein Plagiat, mit Ausnahme der allerersten historischen Verwendung dieser Zeile.Ich hoffe, es ist offensichtlich, wie lächerlich es wäre, wenn es so gehandhabt würde.Es sollte eine klar definierte Grenze geben, aber ich habe noch nichts davon gehört ...
@vsz, unabhängige Vervielfältigung ist kein Plagiat.Plagiat ist das absichtliche Kopieren der Arbeit eines anderen ohne ordnungsgemäße Anmerkung.
@vsz Die Verwendung von i ++ ist kein Plagiat, es sei denn, man hat es tatsächlich plagiiert.Die zentrale Frage lautet: "Hat der Schüler die Arbeit selbst geschrieben oder hat er die Arbeit eines anderen als seine eigene bestanden?"Die Position "Ja, ich habe zwei Zeilen kopiert, aber es ist keine große Sache und wie werden Sie es beweisen?"ist unreif, imho.
Wenn einer meiner Schüler zwei Codezeilen kopieren würde, die für seine Arbeit nicht wirklich wichtig sind, würde ich das einfach ignorieren.Ich kann voll und ganz verstehen, warum der Student dies für "keine große Sache" hält.Eigentlich versuche ich meinen Schülern beizubringen, _less_ zu zitieren, z.nicht so etwas wie "Java ist eine Programmiersprache [13]" schreiben.Es ist wichtig, dass alle Hauptideen (die nicht Ihre eigenen sind) richtig zitiert und anerkannt werden, aber all diese winzigen Dinge, die entweder allgemein bekannt oder klar sind, wenn Sie fünf Minuten lang darüber nachdenken, benötigen keine Quelle.
@aeismail: Die milde Bestrafung in diesem Fall ist sicherlich nicht zu hart.Wie in den meisten Fällen sind die Universitäten viel zu großzügig im Umgang mit Studenten, die plagiiert oder auf andere Weise betrogen haben.Das bloße Anwenden einer Strafe basierend auf der aktuellen Aufgabe, anstatt einen Fehler für das gesamte Modul zu geben, ist ungefähr so mild, wie es eine Strafe für Plagiate jemals sein sollte.
@TheSmartWon: ** GPL2 muss zitiert werden ** (dh wenn Sie Ihre abgeleitete Arbeit unter derselben Lizenz veröffentlichen müssen, bedeutet dies nicht "eine neue Kopie der GPL2-Lizenz von FSF", sondern "die Lizenz, mit der Sie sie erhalten haben"den von Ihnen verwendeten Code, einschließlich der Autorenidentifikation ") Die GPL hat mehrere Regeln für die Bearbeitung der Autorenliste bei der Veröffentlichung eines abgeleiteten Werks - Sie können es nicht alleine lassen (was die Schuld für Ihre Fehler an die ursprünglichen Autoren weitergibt) und SieIch kann keine Leute daraus entfernen (was den ursprünglichen Autoren die Anerkennung für ihre Arbeit raubt).** Sie sollten die Lizenz unbedingt lesen. **
#4
+20
Frank FYC
2017-12-07 05:44:41 UTC
view on stackexchange narkive permalink

Fragen, die Sie sich stellen müssen:

  • Haben Sie Ihre Quellen zitiert?

Obwohl das Thema Plagiat verschiedene Bereiche umfasst, sind es nicht alle Bereiche das Gleiche. Ein Programm zu schreiben ist nicht dasselbe wie einen Aufsatz zu schreiben. Obwohl beide ähnliche Denkkomponenten haben, sind Grammatik = Tabulatoren / Leerzeichen, Substantive = Objekte, Präpositionen = Zeiger usw. Funktionell sind sie unterschiedlich. Haben Sie im Rahmen Ihrer Aufgabe angegeben, dass Sie die Codeabschnitte aus einer Open Source-Bibliothek erhalten haben? Auch wenn es kein formelles Zitat war, vielleicht innerhalb der Kommentare, die auf die Bibliothek verweisen?

  • Auf wie viele Arten kann eine Person ein bestimmtes Ziel realistisch erreichen?

Wenn die Aufgabe darin bestand, eine Liste von ganzen Zahlen zu summieren. Wäre es ein Plagiat, wenn der Code von 10 Programmierern sum (object) verwenden würde?

ein gängiger Algorithmus zum Verketten, den ich gründlich erklären kann

Hier sind Sie Sie müssen argumentieren, dass es einen Punkt gibt, an dem ein bestimmter Code zu allgemeinen Informationen geworden ist, aber Sie müssen nachweisen, dass er tatsächlich häufig ist. Ein Nicht-Experte hätte nicht das Hintergrundwissen, um anzunehmen, dass das, was Sie sagen, richtig ist. Sie müssten Beispiele angeben. (Denken Sie an Hello World, wem gehört es wirklich?)

IANAL, aber es ist Es scheint, dass das eigentliche Gesetz selbst kompliziert ist.

Über 30% der Klasse wurden im Laufe des Semesters wegen Verstößen gegen die akademische Integrität bei Projekten gemeldet, und der neu graduierte Professor scheint nicht zu denken selbst oder seine Aufgaben sind das Problem.

Ein Professor für Informatik ist kein Anwalt, aber er oder sie hat sicherlich die Fähigkeit, Fragen der Informatik zu verstehen und sich selbst zu fragen, ob oder nicht Es handelt sich um eine böswillige Absicht. Wenn die Plagiatsansprüche mit einem einfachen Dokument behoben werden können, in dem Sie Ihre Quellen zitieren (Bibliotheken, Open Source-Projekte, Github-Repos), sollten die Ansprüche sinken.

Wissen und Lernen finden nicht im luftleeren Raum statt.


Vielen Dank dafür. Wie ich bereits sagte, ist mir das Zitieren von Code fremd (und ich programmiere seit meinem achten Lebensjahr), und ich habe diese Zeilen NICHT (aber sollte) zitiert. Das Vergessen, zwei Zeilen zu zitieren und Plagiate für das gesamte Projekt zu begehen, sind jedoch zwei verschiedene Dinge, insbesondere bei einem Projekt dieser Größe. Wie würden Sie das angehen?

Sie argumentieren, dass die aktuellen Tests zur Feststellung von Plagiaten (z. B. in Englisch) beim Programmieren und Erstellen von Skripten, Zitieren und Dokumentieren von Plagiaten nicht gut funktionieren Quellen ist funktional unterschiedlich. In einem Aufsatz soll zitiert werden, woher Sie die Idee haben. In einem Programm soll dokumentiert werden, wie Sie mit dem Codeausschnitt Ihre Ziele erreichen können. Der Zweck verschiebt sich von "Kredit geben, wo es fällig ist" zu "wie dies helfen wird und was es tut".

Schauen Sie sich vor diesem Hintergrund "Hallo Welt" an. Es ist eine allgemein bekannte Einführung in Programmiersprachen. Aber kein erfahrener Programmierer muss es "zitieren", um es zu verstehen. Es ist in allen Sprachen "gemeinsam" geworden. Ein spezifischer Compiler in C, der es ihm ermöglicht, einen Roboterarm zu steuern, ist jedoch für einen erfahrenen (unabhängig von der Sprache) Programmierer nicht häufig genug, um ihn leicht zu erkennen, weshalb Dokumentation erforderlich ist. In der Welt von Java liegt es jedoch an Ihnen, nachzuweisen, dass der Code, den Sie "häufig" verwenden, nicht als zitierbedürftig angesehen wird.

Was den Fall anbelangt, können Sie argumentieren, dass Ihre Handlungen nicht die traditionellen Definitionen darstellen und auf Plagiate prüfen. Erwarten Sie jedoch nicht, dass Ihr Publikum (Kollegen) angesichts der Schwere und der Berechtigung des Klägers (Ihres Professors) etwas versteht. Ein anderer Weg wäre zu argumentieren, dass die Schwere der Bestrafung - 100% - nicht mit dem Umfang des angeblichen Plagiats übereinstimmt. Es wird behauptet, nicht bewiesen. Bis ein endgültiges Urteil gefällt ist, kann es diskutiert werden.

Ein einseitig aufgrund von Plagiaten gescheiterter Student würde und sollte bei einer „höheren Behörde“ angefochten oder zumindest von einem Gremium von sachkundige Personen (im Vergleich zu Laien). Sie haben angegeben, dass diese Klasse einen (meiner Meinung nach enormen) Prozentsatz an Plagiatsansprüchen aufweist. Obwohl ich keine Statistiken für meine Aussage habe, sind 30% lächerlich hoch. In meiner akademischen Karriere war Plagiat ein seltenes Ereignis. Ein weiterer Punkt, den Sie ansprechen können, ist, ob der Professor das Konzept des traditionellen Plagiats falsch auf ein Gebiet anwendet, in dem es sich grundlegend unterscheidet.

Ein weiteres Argument, das Sie vorbringen können, ist, dass das Zitieren von Code nie gelehrt / betont / erwartet wurde vom Professor in der Klasse. Ihnen wurde beigebracht, was Plagiat vorher war, höchstwahrscheinlich beim Verfassen von Aufsätzen, aber Sie haben nie gelernt, wie es auf das Codieren angewendet wird. Obwohl diesem Argument möglicherweise ein oder zwei Beine fehlen (insbesondere im Bereich von, sollten Sie bereits wissen), aber wie wäre es sinnvoll, Sie für etwas zur Rechenschaft zu ziehen, auf das Sie noch nie achten sollten?


Danke, das ist ein guter Punkt. Er benutzt nur MOSS von Stanford, wie ich es im OP verlinkt habe. Ich kenne seinen Grenzwert für die prozentuale Ähnlichkeit nicht, bevor er Menschen beschuldigt.

Ein solcher Plagiatsdetektor ist ein Werkzeug , um die Glaubwürdigkeit zu verleihen, dass X plagiiert wurde, a Werkzeug unter vielen. Es ist keineswegs ein End-All-All-Test, um Plagiate festzustellen.

Nehmen Sie zum Beispiel einen Atemanalysetest für DUIs vor. Wenn ich Mohn aß und positiv getestet habe, gibt es dann mildernde Faktoren? Wenn alles, was Ihr Professor verwendet, um Plagiate zu bestimmen, ein Werkzeug ist, fragen Sie, ob Werkzeuge fehlerhaft sein können oder nicht.

Obwohl dies mehr Rhetorik und Logik als Programmieren ist, kann niemand jemals behaupten, dass es sich um ein Programm handelt ist perfekt. (Außer COBOL, weil es zu 100% perfekt ist) Wenn es also tatsächlich die einzige Metrik ist, die Ihr Professor verwendet, welche Möglichkeit besteht dann für falsch positive Ergebnisse? Wäre es nur eine unfaire Bestrafung von Studenten, wenn ein Programm feststellt, dass sie betrogen haben?

Lesen Sie vor diesem Hintergrund Ihr Studentenhandbuch, wenn Sie einen akademischen Berater durch den Prozess haben können. Wenden Sie sich auch an Ihren Ombudsmann, falls Ihre Schule einen hat. Dieses Büro kann Fragen wie diese vermitteln, wenn die Institution dies zulässt.

Meiner Meinung nach wäre eine Gruppe von Kommilitonen (ohne juristischen oder programmtechnischen Hintergrund) nicht am besten geeignet, um festzustellen, ob Programmierplagiate aufgetreten sind.


Klarstellen, ist -100% tatsächlich 0%? Oder gibt Ihnen Ihr Professor nicht nur 0% für die Aufgabe, sondern bestraft Sie auch zusätzlich mit einem zusätzlichen Betrag? Das heißt, A + B + C = 100 (A = 20, B = 20, C = 60), 0% auf A bedeuten insgesamt 80%, a -100% auf A bedeuten insgesamt 40%. - Frank FYC

Er bestraft mich zusätzlich mit einem zusätzlichen Betrag. Ich würde keine Null für das Projekt erhalten (was sich meine Note leisten könnte), aber tatsächlich wird meine Gesamtnote MEHR verletzt als die 7%, die das Projekt wert ist. –TheSmartWon

Schwierige Sache hier ... (angesichts des Updates) Wenn das Board zu Ihren Gunsten entscheidet, bedeutet dies nicht, dass der Professor Sie so behandeln würde, wie er / sie andere Studenten bewegen würde nach vorne. Möglicherweise werden Sie noch genauer unter die Lupe genommen.


@ user2264247 Er hat das MOSS heute etwa 5 Minuten lang mit mir angesehen (genau das, was ich im OP gepostet habe), und er konzentrierte sich nur auf diesen Hash Funktion. Er wusste nicht einmal, was die Funktion tat, bevor wir uns unterhielten, also glaube ich nicht, dass er sie zuvor überprüft hat. Er und seine Kollegin (idkwhy sie war im Raum) erklärten, dass mein gesamtes Programm des Plagiats schuldig ist und dass sie mich beschuldigen würden, weil ich zwei Zeilen kopiert habe. Sie schienen wirklich nicht zweimal darüber nachzudenken oder sich darum zu kümmern , wahrscheinlich aufgrund der großen Anzahl von Fällen, die sie durchlaufen. - TheSmartWon

@FrankFYC Dieser Kollege und er veröffentlichen auch gemeinsam Artikel und unterrichten Begleiterkurse. Sie sind gute Freunde. Es ist nur sein Name, der mich im "Integritätsverletzungsbericht" beschuldigt, aber ich werde diesen Punkt mit Sicherheit ansprechen. Ich habe keine Ahnung, was sie in dem Raum tat. Alles, was sie getan hat, war schnell, alle meine Argumente zurückzuweisen, die mein Professor möglicherweise anderweitig gehört hat. Es machte ihr Freude, mich in jedem Punkt, den ich ansprach, als falsch zu beweisen. Es war irgendwie sadistisch. Ich war wie ein anderes Insekt, das in ihrem Netz gefangen ist! - TheSmartWon

Wenn dies die Vereinigten Staaten wären. Lesen Sie mehr über FERPA. Ich bin kein Experte, aber ich würde annehmen, dass es ein Verstoß wäre, wenn Ihr Professor einem anderen Fakultätsmitglied erlaubt, Ihre Noten zu sehen. Dies könnte die Handlung sein, die in ihrem Gesicht explodiert. Wenn Sie in den USA sind, stellen Sie sicher, dass sich beide Professoren im selben Raum wie Sie befanden, als Sie den Bericht besprochen haben.

Siehe aeismails Antwort auf eine Frage

Würden Sie angesichts der Anzahl anderer Fälle annehmen, dass der andere Professor auch in diesen Fällen war? Wie in war der andere Professor in die Note eines anderen Schülers eingeweiht?

Sie können alles ablehnen, was sie wollen, aber wenn mehr als ein Schüler behauptet, dass beide Professoren im Raum waren, wäre dies tatsächlich a Sammelklage (ha, entschuldigen Sie das Wortspiel).

Dokumentieren Sie alles und vereinbaren Sie einen Termin mit dem FERPA-Koordinator Ihrer Universität (wie eine Abteilung, die für den Empfang eingerichtet wurde) FERPA-Beschwerden).

Danke dafür.Wie ich bereits sagte, ist mir das Zitieren von Code fremd (und ich programmiere seit meinem achten Lebensjahr), und ich habe diese Zeilen NICHT (aber sollte) zitiert.Das Vergessen, zwei Zeilen zu zitieren und Plagiate für das gesamte Projekt zu begehen, sind jedoch zwei verschiedene Dinge, insbesondere bei einem Projekt dieser Größe.Wie würden Sie das ansprechen?
Sie argumentieren, dass die aktuellen Tests zur Feststellung von Plagiaten (z. B. in Englisch) beim Programmieren und Erstellen von Skripten nicht gut funktionieren.Der Dokumentationsgrad ist funktional unterschiedlich.In einem Aufsatz soll zitiert werden, woher Sie die Idee haben.In einem Programm soll dokumentiert werden, wie Sie mit dem Codeausschnitt Ihre Ziele erreichen können.Der Zweck verschiebt sich von "Kredit geben, wo es fällig ist" zu "wie wird dies helfen".
Schauen Sie sich vor diesem Hintergrund "Hallo Welt" an.Es ist eine allgemein bekannte Einführung in Programmiersprachen.Aber kein erfahrener Programmierer muss es "zitieren", um es zu verstehen.Es ist in allen Sprachen "gemeinsam" geworden.Ein spezifischer Compiler in C, der es ihm ermöglicht, einen Roboterarm zu steuern, ist jedoch ** nicht ** häufig genug, damit ein erfahrener (unabhängig von der Sprache) Programmierer ihn leicht erkennt, weshalb Dokumentation erforderlich ist.
Was den Fall anbelangt, können Sie argumentieren, dass Ihre Handlungen nicht die traditionellen Definitionen darstellen und auf Plagiate prüfen.Erwarten Sie jedoch nicht, dass Ihr Publikum (Kollegen) angesichts der Schwere und der Berechtigung des Klägers (Ihres Professors) etwas versteht.Ein anderer Weg wäre zu argumentieren, dass die Schwere der Bestrafung - 100% - nicht mit dem Umfang des angeblichen Plagiats übereinstimmt.Es wird behauptet, nicht bewiesen.
Ein Student, der einseitig aufgrund von Plagiaten scheitert, würde und sollte an eine „höhere Behörde“ appelliert oder zumindest von einer Gruppe sachkundiger Personen (im Vergleich zu Laien) überprüft werden.Sie haben angegeben, dass diese Klasse einen (meiner Meinung nach enormen) Prozentsatz an Plagiatsansprüchen aufweist.Obwohl ich keine Statistiken für meine Aussage habe, sind 30% lächerlich hoch.In meiner akademischen Karriere war Plagiat ein seltenes Ereignis.Ein weiterer Punkt, den Sie ansprechen können, ist, ob der Professor das Konzept des traditionellen Plagiats auf ein Gebiet falsch anwendet, in dem es sich grundlegend unterscheidet.
Danke, das ist ein guter Punkt.Er benutzt nur [MOSS] (http://theory.stanford.edu/~aiken/moss/) von Stanford, wie ich es im OP verlinkt habe.Ich kenne seinen Grenzwert für die prozentuale Ähnlichkeit nicht, bevor er Menschen beschuldigt.
Hat Ihr Professor genauere Gründe angegeben, warum Sie des Plagiats beschuldigt wurden?Über den von Ihnen angegebenen Link: "Insbesondere ist es ein Missbrauch von Moss, sich ausschließlich auf die Ähnlichkeitswerte zu verlassen. [...] Aber die Werte sind sicherlich kein Beweis für Plagiate. Jemand muss sich noch den Code ansehen."
Die kopierte Hash-Funktion scheint mir das einzig Verdammte zu sein, aber es sind buchstäblich 2 Zeilen tatsächlichen Codes, die eine rein mathematische Funktion ausführen.Wenn Ihr Plagiat mit einem Aufsatz verglichen wird, ist dies wie das Vergessen, ein einziges Zitat im gesamten Aufsatz zu zitieren. Zu Ihrer eigentlichen Verteidigung möchten Sie sich möglicherweise auf Unschuld verlassen, bis Ihre Schuld bewiesen ist, und diese Kontrapunkte nicht anführen, es sei denn, er weist tatsächlich auf sie als Gründe für Ihre Schuld hin.(dh Hasch könnte unbemerkt bleiben, also kein Grund, dem Feuer Treibstoff hinzuzufügen) Er könnte auch schlecht aussehen, wenn er versehentlich zugibt, MOSS als Beweis zu betrachten.
@user2264247 Er hat heute ungefähr 5 Minuten lang mit mir auf das MOSS geschaut (genau das, was ich im OP gepostet habe), und er hat sich nur auf diese Hash-Funktion konzentriert.Er wusste nicht einmal, was die Funktion tat, bevor wir uns unterhielten, also glaube ich nicht, dass er sie zuvor überprüft hat.Er und seine Kollegin (idk, warum sie im Raum war) gaben an, dass mein gesamtes Programm des Plagiats schuldig ist und dass sie mich beschuldigen würden, weil ich zwei Zeilen kopiert habe.Sie schienen wirklich nicht zweimal darüber nachzudenken oder sich darum zu kümmern, wahrscheinlich aufgrund der großen Anzahl von Fällen, die sie durchlaufen.
Ja, ein Bibunal (Zwei-Personen-Tribunal) ist nicht unbedingt ein unparteiischer Richter.Auf jeden Fall etwas zu beachten.
@FrankFYC Dieser Kollege und er veröffentlichen auch gemeinsam Artikel und unterrichten Begleiterkurse.Sie sind gute Freunde.Es ist nur sein Name, der mich im "Integritätsverletzungsbericht" beschuldigt, aber ich werde diesen Punkt mit Sicherheit ansprechen.Ich habe keine Ahnung, was sie im Raum tat, alles, was sie tat, war schnell alle meine Argumente zurückzuweisen, die mein Professor sonst vielleicht gehört hätte.Es machte ihr Freude, mich in jedem Punkt, den ich ansprach, als falsch zu beweisen. Es war irgendwie sadistisch.Ich war wie ein anderes Insekt, das in ihrem Netz gefangen ist!
@FrankFYC Um Ihre letzte Änderung zu beantworten, kann das Board über meine Bestrafung entscheiden.Sie können mich bestrafen, bis ich den Kurs nicht bestanden habe, oder ganz auf die Ansprüche verzichten.
Hat der Professor Berufung gegen die Entscheidung des Vorstandes eingelegt?
Und was ist dein Land?
@FrankFYC Meine Güte, danke für all die Hilfe.Ich bin in den USA und nicht sicher, welche Rolle der Professor vorantreibt.Ich überprüfe das jetzt.Ich weiß nur, dass er dem Büro für studentisches Verhalten Beweise (das erste MOSS, das ich verlinkt habe) vorlegen muss und dass sie mir in zwei Tagen eine E-Mail senden werden, in der der Prozess ausführlicher beschrieben wird.
@FrankFYC Ich habe gerade die Übersicht über den Prozess gelesen, den er durchlaufen hat.Interessanterweise heißt es während des Besprechungsschritts: "Es ist nicht erforderlich, eine andere Fakultät oder einen anderen Mitarbeiter als Zeugen bei sich zu haben."Sein Teil des Berichts scheint zu enden, nachdem er die Unterlagen beim Büro eingereicht hat, und das Büro kümmert sich vermutlich von dort aus darum.
Nicht notwendig = / = du bist ** nicht ** erlaubt.Sie können, und ich würde es sehr empfehlen.Finden Sie ein vertrauenswürdiges Fakultätsmitglied, das bereit wäre, für Sie zu bürgen.Was die Tatsache betrifft, dass Sie in den USA sind, herzlichen Glückwunsch, Sie haben jetzt eine mögliche FERPA-Verletzung durch den betreffenden Professor.
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackexchange.com/rooms/69821/discussion-between-thesmartwon-and-frank-fyc).
Lassen Sie uns [diese Diskussion im Chat fortsetzen] (http://chat.stackexchange.com/rooms/69825/discussion-between-frank-fyc-and-thesmartwon).
#5
+10
Nat
2017-12-07 21:26:19 UTC
view on stackexchange narkive permalink

Möglicherweise möchten Sie Ihre Berufung zurückziehen (falls möglich).

Auf den ersten Blick erscheint Ihre Argumentation völlig vernünftig. Wenn Sie also zwei Codezeilen kopiert haben (vorausgesetzt, dass dies zulässig war), aber einfach kein Zitat eingefügt oder vergessen haben, es zu entfernen (wie Sie behauptet haben), kann dies im Grunde genommen zu einem ehrlichen Fehler führen -par mit einem Tippfehler. Ein solcher Fehler wäre unglücklich, verdient aber kaum eine größere Bestrafung.

Wie andere jedoch bemerkt haben, sieht es bei näherer Betrachtung des Codes so aus, als hätten Sie den ursprünglichen Code vollständig kopiert und sind dann aus dem Weg gegangen um zu versuchen, diese Tatsache zu verschleiern. Dies führt dazu, dass alle Sympathien aus dem Fenster gehen. Wenn überhaupt, steigen Sie möglicherweise zu leichtfertig aus.

Aber dann gibt es Ihre Anziehungskraft. Die Berufung selbst scheint auf einer unehrlichen Prämisse zu beruhen, ähnlich wie diese Frage. Es sieht so aus, als würden Sie den Ehrenrat anlügen!

Eine solche Lüge scheint ein Grund für weitere zu sein Bestrafung. Dies ist, zuerst gab es das Betrügen - auf dessen Schwere Sie jetzt aufmerksam gemacht haben - und dann auch die scheinbar betrügerische Verteidigung.

Ich weiß nicht, was ich tun soll sage dir. Einerseits ist das ziemlich eklig und es könnte tatsächlich besser sein, wenn Sie jetzt Ihre Lektion gelernt haben. Aber als Antwort auf diese Frage, vorausgesetzt, Sie versuchen, die Bestrafung zu minimieren, möchten Sie vielleicht den Appell beenden und die Dinge in Ruhe lassen, anstatt zu riskieren, sie noch schlimmer zu machen.

Referenz : In Bezug auf das Recht, sich nicht selbst zu belasten

Im amerikanischen Rechtssystem wird manchmal angenommen, dass Angeklagte ohne weitere Strafe Unschuld geltend machen können, wenn sich diese Behauptung später als falsch herausstellt. Dies folgt aus der Fünften Änderung der US-Verfassung, die Schutz vor Selbstbeschuldigung gewährt.

Das Lustige daran ist, dass Sie verwendet werden können, wenn Sie sich viele Shows vom Typ Law-&-Order ansehen (wie es viele Amerikaner tun) auf die Idee, dass Angeklagte lügen können, ohne Strafe nicht schuldig zu sein, was man möglicherweise auch auf andere gerichtsähnliche Situationen anwenden könnte, z eine Überprüfung durch den Ehrenrat.

Die Sache ist, dass Ehrenräte keine Gerichte sind; Das Recht, sich nicht selbst zu belasten, entfällt. Wenn Sie also zu Ihrer Verteidigung vor einem Ehrenrat liegen, lügen Sie immer noch vor den genauen Personen, die Sie für genau dieses Fehlverhalten beurteilen.

Bearbeiten: Ging zur Tatsache -Überprüfe mich in diesem Punkt, und es scheint, dass der Oberste Gerichtshof entschieden hat, dass das Lügen in der eigenen Verteidigung die Strafen erhöhen kann:

Der Oberste Gerichtshof hat heute einstimmig entschieden, dass kriminelle Angeklagte, die Stellung beziehen und aussagen fälschlicherweise zu ihrer eigenen Verteidigung kann verfassungsrechtlich eine zusätzliche Gefängnisstrafe wegen Behinderung der Justiz verhängt werden.

Die Entscheidung hob eine Entscheidung eines Bundesberufungsgerichts in Richmond auf, die 1991 feststellte, dass die Verfassung Richter davon abhält, eine zusätzliche zu verhängen Urteil nach Bundesrichtlinien als Strafe für "eine ungläubige Verweigerung der Schuld unter Eid".

- "Gericht sagt, falsches Zeugnis kann zu längerer Haftstrafe führen", NYTimes (1993).

Offensichtlich können Angeklagte dafür bestraft werden, dass sie selbst vor US-Gerichten zu ihrer eigenen Verteidigung gelogen haben.

#6
+9
Dmitry Grigoryev
2017-12-07 14:56:53 UTC
view on stackexchange narkive permalink

Es gibt möglicherweise nicht viele vernünftige Algorithmen, die eine Verkettung implementieren, aber es gibt buchstäblich Milliarden möglicher 32-Bit-Hash-Algorithmen. Es macht keinen Sinn zu behaupten, dass einer von ihnen "allgemein bekannt" ist oder dass er unter der GPL veröffentlicht wurde oder dass Sie ihn entfernen wollten. Wenn Sie es entfernt entfernen würden, würde Ihr Fall völlig anders aussehen, und ich würde argumentieren, dass Sie eine unabhängige Vervielfältigung beanspruchen sollten. In Ihrer aktuellen Position können Sie meines Erachtens niemanden davon überzeugen, dass Sie unabhängig von OpenJDK denselben Hash-Algorithmus ausgewählt haben.

Ich glaube, Ihre beste Option ist es, das Fehlverhalten zu erkennen und dann zu argumentieren, dass die Menge von Tatsächlich ist plagiierter Code relativ gering und die Strafe, die Ihr Professor verhängen möchte, ist unverhältnismäßig.

#7
+6
einpoklum
2017-12-07 17:02:34 UTC
view on stackexchange narkive permalink

Andere Antworten haben sich mit philosophischen / moralischen Fragen wie "Ist es Plagiat?" befasst. "Ist es falsch?" usw. Aber - ich würde argumentieren, dass Sie sich auf das praktische Problem konzentrieren sollten, nämlich:

Ich bin mir nicht sicher, wie ich das verteidigen soll ganzer Fall vor einem Student Conduct Board.

Sie haben also einen Fall zu streiten ...


Lesen Sie zuerst die rechtlichen Informationen -relevante Dokumente:

  • Disziplinarbestimmungen für Studierende
  • Verfahren des Studentenrates
  • Listen externer Gesetze, die offiziell gelten
  • Genaue Erklärung
  • Präzedenzfall - frühere Entscheidungen des Studentenverhaltens in solchen Angelegenheiten.
  • Sitzungsprotokolle aus früheren Sitzungen des Studentenverhaltens (sofern verfügbar), die möglicherweise nicht die sind case).

Bestimmen Sie dann, ob Sie erlaubt sind und ob es eine gute Idee ist, sich von jemandem vertreten zu lassen: Ein Laie; ein Jurastudent; ein Mitglied der Fakultät; ein Mitglied des Studentenrates usw. Wenn Ihnen das zur Verfügung steht, sollten Sie mindestens eines konsultieren (auch wenn Sie es nicht mitbringen) - sie haben sicherlich mehr Erfahrung als Sie.

Bestimmen Sie jetzt wenn Sie wirklich argumentieren wollen "dieser Teil von dem, was ich kopiert habe, ist kein Plagiat". Vielleicht könnten Sie dieses Argument vorbringen, ich weiß es nicht. Selbst für Laien - wenn Sie genug Zeit haben (was Sie möglicherweise nicht haben), können Sie möglicherweise erklären, wie Programme aus dem Quellcode kompiliert werden und wie ein Teil des Codes nicht wirklich verwendet wird. Sie könnten Beispiele für etwas präsentieren, das wie Plagiat aussieht, aber tatsächlich nahezu identischer Code ist, der unabhängig von verschiedenen Personen geschrieben wurde.

Ehrlich gesagt bezweifle ich, dass Sie unter den gegebenen Umständen sehr weit kommen würden. Selbst wenn Sie theoretisch Recht haben (eine Frage, die ich nicht kommentiere), und selbst wenn Sie dies dem Board erklären könnten, möchte es möglicherweise kein solches Argument hören.

Andererseits würde ich (unbegründet!) vermuten, dass ein überzeugenderes Argument so etwas wie (kurze Zusammenfassung) sein könnte:

Es tut mir sehr leid, was ich getan habe und leugnen Sie nicht, dass es unzulässig, unangemessen und unmoralisch war.
Ich war versucht, wegen ABC zu plagiieren, was, obwohl ich mein Verhalten nicht entschuldigte, dazu geführt hat, dass 30% der Klasse versucht waren, zu plagiieren, was auf ein objektives Problem hindeutet Zusätzlich zu meinem persönlichen Versagen.
Ich habe XYZ in gewisser Weise wieder gut gemacht.
In den Fällen C1 und C2, von denen ich behaupte, dass sie vergleichbar sind, war die Strafe viel niedriger.
Schließlich möchte ich das Board Um meine persönlichen Umstände DEF bei der Prüfung dieses Falls zu berücksichtigen.
Ich werde mich an jede Entscheidung halten, die der Vorstand trifft.

und dabei belassen.

Die Frage ist, ob der Titel fragt: "Ist es ein Plagiat?"und nicht "Wie verteidige ich meinen Fall?"Das Problem, imho, ist, dass der Student die Tatsache, dass es sich um ein Plagiat handelt, nicht akzeptiert und es tendenziell als "keine große Sache" abtut.Diese Position ist es imho nicht wert, verteidigt zu werden.
@DmitrySavostyanov: OP stellte mehrere Fragen, und die im Titel ist nicht die einzige.Ich stimme zu, er scheint zu versuchen, das, was er getan hat, als "keine große Sache" abzutun, aber er hat eine lange Zeit, um sich mit dem moralischen Dilemma auseinanderzusetzen, und nur einen Monat, um sich auf seine Anhörung vorzubereiten.Ich behaupte, dass das ein Schwerpunkt sein sollte.Hoffentlich hilft es ihm auch, nicht mehr um das zu tanzen, was er getan hat.
#8
+6
user83564
2017-12-07 23:20:03 UTC
view on stackexchange narkive permalink

Ich habe sowohl Erfahrung im Unterrichten (und im Umgang mit Plagiaten) als auch in der Patentierung / Prozessführung von Software.

Ich habe Gruppen von Hausaufgaben bewertet, die alle den gleichen Fehler oder die gleiche Unvollkommenheit aufweisen. Ich habe gesehen, dass Schüler, die nicht in der Lage waren, ihre IDE zu starten, prägnante und kompetente Hausaufgabenlösungen entwickelten, bei denen alle Variablen Namen wie "theCounter", "variableA" und "ich" hatten, aber ansonsten sah es so aus, als ob ihr Autor dies bereits getan hätte 10 Jahre Erfahrung auf diesem Gebiet und eindeutig ohne Bachelor-Abschluss.

Ein Softwarepatentfall kann auf den Nachweis reduziert werden, dass eine einzelne Zeile wie "x = 0" plagiiert wurde. Dies beinhaltet den Nachweis des Motivs, der Personen (die Tatsache, dass Unternehmen A Personen aus Unternehmen B angezogen hat) und des Standes der Technik zum Zeitpunkt der angeblichen Plagiierung (und nicht jetzt, wenn der vorgeschlagene Ansatz für alle offensichtlich ist). Softwarepatentversuche sind keine sterilen Diskussionen darüber, wie sich der Smith-Waterman-Algorithmus auf den Code des Klägers und des Beklagten ausgewirkt hat.

In Ihrem Fall haben Sie sich anscheinend zumindest den OpenJDK-Code "angesehen", bevor Sie mit dem Code begonnen haben. Unbestreitbare Beweise sind die Hash-Funktion: Die Wahrscheinlichkeit, dies zufällig zu replizieren, liegt laut Mr. Data und C-3PO bei einer von 67 Billionen Milliarden. Es ist weiterhin klar, dass Sie nicht nach einer Hash-Funktion gesucht haben, sondern nach einer Hash-Map-Implementierung. Die Suche nach "Hash-Funktion für Strings" oder "Hash-Funktion für Strings Java" führt nicht zu einem Ergebnis von OpenJDK.

Nachdem Sie die OpenJDK-Implementierung von HashMap gesehen haben, war das Problem für Sie direkt. Aus allen möglichen Möglichkeiten, sich der HashMap bewusst oder unbewusst zu nähern, haben Sie die von OpenJDK ausgewählt, weil Sie furchtbar voreingenommen waren.

Ihre Codekommentare sind nutzlos. Das Kommentieren von "Länge" als "Länge" beweist, dass Sie das Problem nicht verstanden haben, und das Kommentieren sollte hier lediglich eine Bewertungsanforderung erfüllen. Sie verschwenden die Zeit des Graders. Richtig wäre: "Hash = der Hash des zu durchsuchenden Elements", "Länge: die Größe der Hash-Tabelle" "gibt die Position in der Hash-Tabelle der angegebenen Länge für das Element von Hash h zurück. Sie überschreitet niemals die Länge minus eins". Außerdem sagen Sie "get gibt den Wert am Index zurück", was für eine Hash-Map offensichtlich falsch ist. Get würde den Wert am Schlüssel zurückgeben. Das Mischen von Schlüssel und Index ist ein "Kapitalverbrechen", wenn Sie Datenstrukturen erstellen.

Mein Urteil hier wäre "schuldig wie angeklagt". Sie haben keine Zeit damit verbracht, über die Lösung nachzudenken, aber Sie haben eine vorhandene Lösung übernommen und wahrscheinlich unabhängig implementiert. Es hat den Zweck der Hausaufgaben zunichte gemacht, der Sie zum Nachdenken über Datenstrukturen anregen sollte. Das Zitieren der OpenJDK-Quelle würde Ihre Schuld nur offensichtlicher machen (ein klassischer Fall von Selbstbeschuldigung während der Verteidigung). Es ist, als würde man ein mathematisches Problem bekommen, und am Ende zitieren Sie das Buch und die Seite, die eine Lösung des Problems zeigen. Sie haben einen guten Suchjob gemacht, aber die Absicht des Problems war es, Sie dazu zu bringen, es zu lösen.

Dies ist eine großartige Antwort.
#9
+2
aeismail
2017-12-07 05:58:53 UTC
view on stackexchange narkive permalink

Sie sollten auf jeden Fall gegen die vorgeschlagene Bestrafung protestieren, da viele Institutionen eine solche Bestrafung nicht zulassen, wie sie Ihr Professor beurteilen möchte. (Mit anderen Worten, Ihr Lehrer kann Ihnen für einen bestimmten Teil Ihrer Note keine Note von -100% oder eine Note unter Null geben.)

Zum Kopieren von Code als Plagiat: Das ist eine viel dornigere Behauptung. Die Verwendung des Codes eines anderen ist ein Problem, aber wenn es wirklich keinen anderen Weg gibt, etwas zu tun, wie behaupten Sie dann Plagiat? Plagiate erstrecken sich nicht auf "offensichtliche" Aussagen. Zum Beispiel ist es kein Plagiat, wenn zwei Kalküllehrbücher ein Integral unter Verwendung einer Reihe von Gleichungen auf dieselbe Weise lösen, weil es im Grunde die einzige Möglichkeit ist, dies zu tun. Wenn Sie dagegen eine Reihe von Texten schreiben, die gleich sind, haben Sie dann Plagiate begangen.

Ich denke nicht, dass "[an den meisten Institutionen] Ihr Ausbilder Ihnen keine Note von -100% oder eine Note unter Null für einen bestimmten Teil Ihrer Note geben kann" wirklich wahr ist.Ich denke nicht, dass es ungewöhnlich ist, dass die Strafe für das Plagiieren mehr ist, als die Aufgabe "wert" ist.
Die Vorschriften der "meisten Institutionen" sind irrelevant.In diesem Fall sind nur die Vorschriften dieser Institution von Bedeutung.Die Mitarbeiter kennen normalerweise die Regeln, aber wenn diese besondere Bestrafung über das Zulässige hinausgeht, kann Berufung eingelegt werden (nicht jedoch der Plagiatsfall selbst).
Ich habe "am meisten" in "viele" geändert - aber es lohnt sich auf jeden Fall, dies zu überprüfen.Ich weiß, dass ich Strafen vorgeschlagen habe, die erheblich reduziert wurden, und konnte wegen Betrugs nicht einmal eine "0" für eine Prüfung vergeben.
@DmitrySavostyanov: Ich bin mir bewusst, dass die Richtlinien anderer Institutionen irrelevant sind, aber ich gebe dem OP einen Grund, warum ein Rechtsbehelf in Betracht gezogen werden sollte, selbst wenn er zum Plagiat zugelassen ist.(Und er kann argumentieren, dass das Plagiat sicherlich nicht so schwerwiegend ist wie behauptet, was einen Unterschied machen kann).
@aeismail: Es scheint mir, dass Ihr letzter Kommentar oben eine bessere Antwort als Ihre Antwort wäre.* Wenn * die vom Ausbilder verhängte Strafe die Richtlinien der Institution überschreitet, sollte das OP auf jeden Fall Einwände dagegen erheben.Wenn nicht (und sie sollten es auf jeden Fall im Voraus herausfinden), können sie nur argumentieren, dass dies nicht im Verhältnis zur Schwere der Straftat steht, was in jedem Fall am Ende ein subjektiver Aufruf sein wird.
#10
+2
TwoThe
2017-12-07 20:18:47 UTC
view on stackexchange narkive permalink

Plagiate sind in der Informatik ein schwieriges Thema, da nur eine begrenzte Anzahl von Codeteilen zum gleichen Ergebnis führt und nur eines davon als optimale Lösung angesehen werden kann.

Sie sind dabei Tatsache hat den Code aus den Java-Bibliotheken kopiert, sowohl der tatsächliche Code als auch die Benennung von Variablen legen dies nahe. Daher wäre es Ihre Pflicht gewesen, dies richtig zu zitieren. Unter diesem strengen Gesichtspunkt ist Ihr Professor korrekt, und wahrscheinlich ist er auch in den anderen von Ihnen genannten Fällen korrekt. Wenn viele Menschen Fehler machen, ist es immer noch das Problem, dass eine Person den Fehler macht und nicht die Person, die ihn korrigiert.

Wenn es ethisch ist, ist dies jedoch ein ganz anderes Thema.

Bei der Programmierung komplexer Funktionen empfiehlt es sich, das Rad nicht neu zu erfinden, sondern vorhandenen, gut getesteten Code von anderen zu verwenden. Wie aus dem verlinkten Artikel hervorgeht, ist es jedoch häufig erforderlich, das Rad neu zu erfinden, um Inkompatibilitäten bei der Softwarelizenzierung zu umgehen.

Wenn Sie die spezifische Anweisung hatten, vorhandenen Code nicht zu kopieren, und diese Anweisung nicht befolgten, Das Problem ist auf Ihrer Seite. Softwarepatentierung ist in den USA ein ernstes Problem, mehrere kleinere Unternehmen sind deswegen bankrott gegangen, größere Unternehmen besitzen bestimmte Patente, um sie nur als Gegenklage zu verwenden, falls sie verklagt werden sollten (siehe Apple gegen Samsung). Im Wesentlichen haben sich Softwarepatente zu einer Art Waffe entwickelt, mit der unerwünschte Konkurrenz vom Markt verdrängt werden kann. Daher ist es für jeden Softwareentwickler (in Ihrem Land) wichtig, solche Lizenzprobleme erkennen und umgehen zu können.

Ich kenne die Absichten Ihres Professors nicht, aber es ist möglich, dass er fügte diese Klausel speziell hinzu, weil er sich der Konsequenzen des "Code-Diebstahls" bewusst ist und seine harte Reaktion Ihnen beibringt, diese Probleme in Situationen zu vermeiden, in denen es wirklich weh tun würde.

In anderen, nicht so engstirnigen Teilen der Welt sind Softwarepatente oder „Plagiate“ wie in Ihrem Fall weitaus weniger problematisch. Dies bedeutet, dass in anderen Ländern Ihre Arbeit möglicherweise anders betrachtet wurde, einige sogar Ihre Punkte für das Nichtkopieren von vorhandenem Code reduziert haben (unnötige Neuerfindung des Rads). Aber Sie leben nicht in "anderen Ländern", also mag Ihr Professor auch aus ethischer Sicht hart sein, aber er hat immer noch Recht.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...