web-dev-qa-db-fra.com

Comment puis-je écrire du code en toute sécurité dans mes propres «mots» et ne pas plagier?

Je comprends assez bien le plagiat et la paraphrase lorsqu'il s'agit de rédiger un document de recherche, mais ces domaines équivalents en programmation me semblent étrangers. J'ai recherché les sujets en ligne, et étonnamment, il n'y a pas autant de matière sur le sujet qu'on aurait pu s'y attendre.

Lorsque j'écris du code et que je dois implémenter quelque chose que je n'ai jamais implémenté auparavant, je vais en ligne pour chercher un exemple. J'essaie de lire la documentation au préalable, mais je trouve parfois difficile de suivre. Donc, si cela échoue, je rechercherai le sujet en ligne et je recevrai des dizaines d'exemples (qu'ils soient sur le blog personnel de quelqu'un ou sur un site de questions/réponses comme SO). Maintenant, on me présente généralement 5 à 10 lignes de code. Je n'ai jamais copié-collé cela dans mon propre code, mais je m'inquiète toujours de le copier mot pour mot. J'ai du mal à reformuler un certain morceau de code, surtout quand il y a seulement tant de façons de le faire. Je m'assure de renommer les variables, de changer le formatage, etc. - mais est-ce suffisant?

J'ai toujours voulu comprendre ce sujet, mais maintenant que je travaille avec une nouvelle langue et dans un environnement d'entreprise, je pense que c'est particulièrement pertinent. Si quelqu'un pouvait expliquer ou établir un lien vers une bonne explication ailleurs, j'apprécierais grandement cela!

tl; dr Je ne comprends pas combien vous devez changer et reformuler 5 à 10 extraits de code trouvés en ligne pour éviter le plagiat. Et s'il y a très peu de choses que vous pouvez changer?

18
Anonymous

Le plagiat n'est pas la même chose que la violation du droit d'auteur. Le plagiat fait passer le travail de quelqu'un d'autre pour le vôtre. Il est possible de commettre une violation du droit d'auteur sans plagier:

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

et il est possible de commettre un plagiat sans violation du droit d'auteur:

/* 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);
}

(extrait d'un moteur de base de données SQL sans serveur du domaine public)

Pour éviter le plagiat, vous pouvez envisager de citer votre source. Voici un exemple (dont il y en a beaucoup) de 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)
30
Joey Adams

Utiliser des tuteurs/tutoriels n'est pas du plagiat. Si je copiais ici la réponse de quelqu'un d'autre, ce serait du plagiat. Si je m'y connectais, montrant une citation, ce ne serait pas du plagiat.

Vérifiez que votre source autorise la (ré) utilisation (licence, autorisation écrite). Je pense (besoin de vérifier) ​​quoi que ce soit sur SO sera implicitement un domaine de pub (ou des communs créatifs, partager de la même manière, etc.) ou il ne serait pas vraiment en mesure de fonctionner. répondez que vous savez que vous ne pouvez pas utiliser)

Bref, je pense que vous ne comprenez peut-être pas très bien le plagiat, à moins que les définitions ne diffèrent énormément dans le domaine des universitaires?

Ma règle d'or: utilisez toutes les réponses qui accélèrent simplement les résultats que vous obteniez de toute façon. Cependant, si vous trouvez un échantillon qui fonctionne comme par magie mais vous ne savez vraiment pas comment (ou pourquoi) vous franchissez la ligne d'éthique.

Au sujet de la modification de petits extraits, je dirais l'inverse; comment voulez-vous intégrer de petits extraits dans votre code sans réorganisation: les chances qu'il s'intègre sont assez minces et j'ai une opinion assez forte sur ce à quoi devrait ressembler mon code. Peut-être que vous manquez cette "opinion" (lire: expérience) et je suggère d'écrire plus de code pour gagner en confiance. Une autre technique pour acquérir de l'expérience consiste à lire une réponse, puis à l'appliquer sans accéder à aucun exemple de code. Vous ferez des erreurs, mais vous apprendrez aussi suffisamment pour

  • le reproduire la prochaine fois
  • avoir confiance si vous comprenez le code
  • se sentir bien avec vous

envoyé de mon HTC; merci de faire une faute de frappe ou deux

4
sehe

Si vous modifiez et reformulez le code uniquement pour éviter le plagiat, vous évitez (essayez) de détecter le plagiat. Tout dépend du morceau de code que vous copiez. Une possibilité consiste à valoriser un extrait de code donné comme un simple guide utile avec une originalité créative limitée ou comme une pratique courante que personne ne peut revendiquer la paternité. L'autre possibilité est de la valoriser suffisamment pour donner du crédit. Vous pouvez donner du crédit à plusieurs niveaux, d'un simple commentaire de code à faire de votre code une fourchette/branche officielle du code d'origine. En résumé, il s'agit moins de ce que vous pouvez faire, mais de la façon dont vous considérez le code original et de la façon dont vous accordez du crédit si nécessaire. Le plagiat ne consiste pas à copier mais à copier sans donner de crédit.

4
Jakob

Je vous suggère d'utiliser toutes les sources que vous pouvez trouver pour trouver un moyen de résoudre un problème. Et une fois que vous avez compris, vous supprimez toutes ces sources de l'écran et écrivez votre propre solution.

Sauf si vous avez une mémoire photographique et copiez l'une des solutions existantes, cela résout le problème de plagiat et/ou de violation du droit d'auteur. Il vous aide également en vous forçant à réellement comprendre le problème.

Vous pouvez aller un peu plus loin: la plupart des solutions que vous trouvez sur Internet ont un défaut ou un autre. Ce n'est pas parce qu'il est sur Internet qu'il est parfait. Déterminez ce qui n'est pas tout à fait correct et corrigez-le. De cette façon, vous obtenez une meilleure compréhension, un meilleur code et certainement évitez toute accusation de violation du droit d'auteur ou de plagiat.

1
gnasher729

Si vous ne codez pas dans un environnement universitaire, pourquoi vous inquiétez-vous du plagiat? Dans un environnement professionnel, cela n'a d'importance que si vous plagiez d'autres employés de votre entreprise. Le plagiat est de savoir qui obtient le crédit. En tout état de cause, la solution au plagiat est simple - tout ce que vous prenez, faites honneur à l'auteur d'origine. S'il s'agit d'une page Web, incluez l'URL. Cela vous profite, car si vous avez des questions, vous pourrez peut-être retrouver la source d'origine.

Si votre question concerne vraiment la violation du droit d'auteur, n'oubliez pas que le droit d'auteur ne couvre pas les aspects fonctionnels. Il ne couvre que les choix créatifs où il existe un très grand nombre de choix tout aussi utiles. Si vous ne pouvez pas facilement changer le code sans casser la fonctionnalité, ce n'est pas quelque chose de protégé par le droit d'auteur (selon la règle de la fusion ou des scènes à faire).

0
David Schwartz