Wie schreibe ich Code sicher in meinen eigenen Worten und versuche nicht, ihn zu plagiieren?

18

Ich verstehe Plagiate und Paraphrasierungen ziemlich gut, wenn es darum geht, eine Forschungsarbeit zu schreiben, aber diese äquivalenten Bereiche in der Programmierung scheinen mir fremd zu sein. Ich habe die Themen online nachgeschlagen, und überraschenderweise gibt es nicht so viel Material zu diesem Thema, wie man erwartet hätte.

Wenn ich Code schreibe und etwas implementieren muss, das ich noch nie zuvor implementiert habe, gehe ich online, um ein Beispiel zu suchen. Ich versuche, die Dokumentation vorher durchzulesen, aber manchmal finde ich es schwierig, sie zu befolgen. Wenn dies fehlschlägt, suche ich online nach dem Thema und werde mit Dutzenden von Beispielen konfrontiert (unabhängig davon, ob sie in einem persönlichen Blog oder auf einer Q & A-Site wie SO erscheinen). Jetzt werden mir normalerweise 5-10 Codezeilen angezeigt. Ich habe und werde das NIEMALS in meinen eigenen Code kopieren und einfügen, aber ich mache mir trotzdem Sorgen, ihn wörtlich zu kopieren. Es fällt mir schwer, einen bestimmten Code neu zu formulieren, insbesondere wenn es nur so viele Möglichkeiten gibt. Ich achte darauf, Variablen umzubenennen, die Formatierung zu ändern usw. - aber ist das genug?

Ich wollte dieses Thema schon immer verstehen, aber jetzt, wo ich mit einer neuen Sprache arbeite und in einem Unternehmensumfeld, finde ich, dass es besonders relevant ist. Wenn irgendjemand anderswo eine gute Erklärung erklären oder verlinken könnte, würde ich das sehr begrüßen!

tl; dr Ich verstehe nicht , wie viel Sie zu ändern haben und umformulieren 10.05 Code - Schnipsel Online vermeiden Plagiat gefunden. Was ist, wenn Sie nur sehr wenig ändern können?

Ixrec
quelle
Wenn Sie aktiv über die Vermeidung von Plagiaten nachdenken müssen, stimmt etwas mit dem System nicht. Sicher, Sie sollten niemals einfach etwas kopieren, aber es sollte nicht nötig sein, darüber nachzudenken.
Anto
1
@anto, ich glaube ich verstehe was das OP bedeutet. OP hat Code von irgendwoher geholt, möchte ihn verwenden oder in eine Arbeit integrieren, die er / sie gerade ausführt. Mein Vorschlag für eine glaubwürdige Übernahme des Eigentums von etwas, das an einem anderen Ort erworben wurde, besteht darin, (1) es zu lernen / zu verstehen, (2) den Code sowohl funktionell (Umgestaltung) als auch kosmetisch (bessere, konsistentere Symbolnamen ) zu verbessern und (3) Führen Sie es in seinem / ihrem eigenen Projekt aus. Ich habe dies mit diesem schnellen (O (log2 (N)) Sliding Max-Algorithmus gemacht. Mein Code ist mein, aber ich habe die Alge von irgendwo anders gelernt.
Robert Bristow-Johnson
Obwohl ich die Frage allgemein verstehe, kann dieser Link relevant sein: Kann ich legal Code verwenden, den ich in einem Forum gefunden habe?
John Wu

Antworten:

30

Plagiate sind nicht dasselbe wie Urheberrechtsverletzungen. Plagiate geben die Arbeit eines anderen als Ihre eigene aus. Es ist möglich, Urheberrechtsverletzungen zu begehen, ohne Folgendes zu plagiieren:

// The following code is lifted, without permission, from Windows 2000.
// Copyright © 2000 Company-metonymous-with-Redmond.
// ...

und es ist möglich, Plagiate ohne Urheberrechtsverletzung zu begehen:

/* I wrote this function. */
int sqlite3Strlen30(const char *z){
  const char *z2 = z;
  if( z==0 ) return 0;
  while( *z2 ){ z2++; }
  return 0x3fffffff & (int)(z2 - z);
}

(Aufgehoben von einem Public Domain Serverless SQL-Datenbankmodul)

Um Plagiate zu vermeiden, sollten Sie Ihre Quelle angeben. Hier ist ein Beispiel (von dem es viele gibt) von PostgreSQL :

/* datebsearch()
 * Binary search -- from Knuth (6.2.1) Algorithm B.  Special case like this
 * is WAY faster than the generic bsearch().
 */
static const datetkn *
datebsearch(const char *key, const datetkn *base, int nel)
Joey Adams
quelle
4

Die Verwendung von Tutoren / Tutorials ist kein Plagiat. Wenn ich hier die Antwort eines anderen kopieren würde, wäre das Plagiat. Wenn ich darauf verweise und ein Zitat zeige, wäre das kein Plagiat.

Stellen Sie sicher, dass Ihre Quelle die (Wiederverwendung) zulässt (Lizenz, schriftliche Genehmigung). Ich denke (muss überprüft werden), dass alles auf SO implizit eine Pub-Domain sein wird (oder Creative Commons, Share Alike usw.), oder es würde nicht wirklich funktionieren. (Was nützt es, eine Antwort zu erhalten, von der Sie wissen, dass Sie sie nicht verwenden können?)

Kurz gesagt, ich habe das Gefühl, dass Sie das Plagiat vielleicht nicht so gut verstehen, es sei denn, die Definitionen im Bereich der Akademiker unterscheiden sich stark?

Meine Faustregel: Verwenden Sie alle Antworten, die lediglich die Ergebnisse beschleunigen, die Sie ohnehin erhalten haben. Wenn Sie jedoch eine Probe finden, die auf magische Weise funktioniert, aber nicht genau wissen, wie (oder warum) Sie die ethische Grenze überschreiten.

Über das Modifizieren kleiner Schnipsel würde ich das Gegenteil argumentieren. Wie würden Sie kleine Schnipsel in Ihren Code integrieren, ohne sie neu zu organisieren? Die Wahrscheinlichkeit, dass sie in Ihren Code passen, ist sehr gering, und ich bin mir ziemlich sicher, wie mein Code aussehen sollte. Vielleicht fehlt Ihnen diese "Meinung" (Lesen: Erfahrung) und ich schlage vor, mehr Code zu schreiben, um Vertrauen zu gewinnen. Eine andere Technik, um Erfahrung zu sammeln, besteht darin, eine Antwort zu lesen und sie dann anzuwenden, ohne auf einen Beispielcode zuzugreifen . Sie werden Fehler machen, aber Sie werden auch genug dazu lernen

  • reproduziere es das nächste Mal
  • Vertrauen Sie darauf, ob Sie den Code verstehen
  • Fühlen Sie sich gut mit sich

Gesendet von meinem HTC; Bitte gönnen Sie sich ein oder zwei Tippfehler

sehe
quelle
SO-Beiträge sind als CC-BY-SA 3.0 lizenziert (scrollen Sie bis zum Ende der Seite). Wenn also jemand eine vollständige Lösung für Ihr Problem schreibt, dürfen Sie diese nur dann wörtlich kopieren, wenn Sie den Autor und Ihren Namen angeben Code wird unter derselben Lizenz veröffentlicht (oder überhaupt nicht veröffentlicht). Aber wie Sie sagen, ist diese Art von Copy & Paste-Codierung in erster Linie eine schlechte Praxis.
5gon12eder
4

Wenn Sie den Code nur ändern und neu formulieren, um Plagiate zu vermeiden, vermeiden Sie nur die Erkennung von Plagiaten. Es hängt alles davon ab, welchen Code Sie kopieren. Eine Möglichkeit besteht darin, ein bestimmtes Code-Snippet nur als hilfreichen Leitfaden mit eingeschränkter kreativer Originalität oder als gängige Praxis zu bewerten, die niemand für sich beanspruchen kann. Die andere Möglichkeit ist, es wichtig genug zu bewerten, um Kredit zu geben. Sie können den Code auf mehreren Ebenen gutschreiben, von einem einfachen Codekommentar bis hin zu einer offiziellen Abzweigung / Verzweigung des ursprünglichen Codes. Zusammenfassend geht es weniger darum, was Sie tun können, sondern darum, wie originell Sie den Code finden und wie Sie ihn bei Bedarf gutschreiben. Plagiat ist nicht Kopieren, sondern Kopieren ohne Anerkennung.

Jakob
quelle
1

Ich würde vorschlagen, dass Sie alle Quellen verwenden, um herauszufinden, wie Sie ein Problem lösen können. Und sobald Sie es herausgefunden haben, entfernen Sie alle diese Quellen vom Bildschirm und schreiben Ihre eigene Lösung.

Sofern Sie kein fotografisches Gedächtnis haben und keine der vorhandenen Lösungen kopieren, wird das Problem von Plagiaten und / oder Urheberrechtsverletzungen gelöst. Es hilft Ihnen auch, indem es Sie zwingt, das Problem tatsächlich zu verstehen.

Sie können einen kleinen Schritt weiter gehen: Die meisten Lösungen, die Sie im Internet finden, weisen den einen oder anderen Fehler auf. Nur weil es im Internet ist, heißt das nicht, dass es perfekt ist. Finden Sie heraus, was nicht ganz richtig ist, und beheben Sie es. Auf diese Weise erhalten Sie ein besseres Verständnis, haben einen besseren Code und vermeiden auf jeden Fall die Anschuldigung von Urheberrechtsverletzungen oder Plagiaten.

gnasher729
quelle
0

Wenn Sie nicht in einem akademischen Umfeld programmieren, warum sollten Sie sich dann über Plagiate Gedanken machen? In einem professionellen Umfeld kommt es nur darauf an, andere Mitarbeiter in Ihrem Unternehmen zu plagiieren. Bei Plagiaten geht es darum, wer Kredit bekommt. In jedem Fall ist die Lösung des Plagiats einfach - alles, was Sie nehmen, wird dem ursprünglichen Autor zugeschrieben. Wenn es von einer Webseite stammt, geben Sie die URL an. Dies kommt Ihnen zugute, da Sie bei Fragen möglicherweise die Originalquelle wiederfinden.

Wenn es sich bei Ihrer Frage wirklich um eine Urheberrechtsverletzung handelt, denken Sie daran, dass das Urheberrecht keine funktionalen Aspekte abdeckt. Es werden nur kreative Entscheidungen behandelt, bei denen es eine sehr große Anzahl von gleichermaßen nützlichen Entscheidungen gibt. Wenn Sie den Code nicht einfach ändern können, ohne die Funktionalität zu beeinträchtigen, ist dies kein urheberrechtlicher Schutz (gemäß der Fusions- oder Scènes-à-Faire-Regel).

David Schwartz
quelle