Как мне безопасно написать код в моих собственных «словах» и не заниматься плагиатом?


18

Я хорошо понимаю плагиат и перефразирую, когда речь идет о написании исследовательской работы, но эти эквивалентные области программирования кажутся мне чуждыми. Я просмотрел темы в Интернете, и на удивление не так много материала по этому вопросу, как можно было бы ожидать.

При написании кода и необходимости реализовать что-то, чего я никогда раньше не реализовывал, я пойду онлайн, чтобы найти пример. Я пытаюсь прочитать документацию заранее, но иногда мне сложно следовать ей. Поэтому, если это не удастся, я буду искать эту тему в Интернете и мне будут представлены десятки примеров (будь то в личном блоге или на сайте вопросов и ответов, например SO). Теперь я обычно представляю 5-10 строк кода. Я никогда не копирую и не вставляю это в мой собственный код, но я все еще беспокоюсь о том, чтобы скопировать его дословно. Мне трудно перефразировать определенный фрагмент кода, особенно когда есть только так много способов сделать это. Я переименовываю переменные, меняю форматирование и т. Д. - но достаточно ли этого?

Я всегда хотел понять эту тему, но теперь, когда я работаю с новым языком и в корпоративной среде, я думаю, что это особенно актуально. Если бы кто-нибудь мог объяснить или дать ссылку на хорошее объяснение в другом месте, я был бы очень признателен!

Т.Л., д - р я не понимаю , сколько у вас есть изменения и перефразировать 5-10 фрагменты кода найти в Интернете , чтобы избежать плагиата. Что, если есть очень мало, что вы можете изменить?


Если вам нужно активно думать о том, как избежать плагиата, значит, с системой что-то не так. Конечно, вы никогда не должны просто копировать что-то, но это не должно думать об этом.
Анто

1
@ Анто, я думаю, я понимаю, что означает ОП. ОП взял откуда-то код, хочет использовать его или интегрировать с какой-то работой, которую он выполняет. Мое предложение, чтобы ОП достоверно завладела чем-то, полученным где-то еще, состоит в том, чтобы (1) изучить / понять это, (2) улучшить код как функционально (рефакторинг), так и косметически (лучше, более согласованные имена символов) и (3) запустить его в рамках своего собственного проекта. я сделал это с помощью этого быстрого (O (log2 (N)) скользящего макс. алгоритма. мой код мой, но я узнал алгоритм откуда-то еще
Роберт Бристоу-Джонсон,

Хотя я понимаю вопрос шире, эта ссылка может быть актуальной: могу ли я на законных основаниях использовать код, найденный на форуме?
Джон Ву,

Ответы:


30

Плагиат - это не то же самое, что нарушение авторских прав. Плагиат - это выдавать чужую работу за свою. Нарушение авторских прав возможно без плагиата:

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

и возможно совершить плагиат без нарушения авторских прав:

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

(поднято из общедоступного безсерверного ядра базы данных SQL)

Чтобы избежать плагиата, вы можете сослаться на источник. Вот пример (которых много) из 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)

4

Использование репетиторов / учебных пособий не является плагиатом. Если бы я скопировал чужой ответ, это был бы плагиат. Если бы я ссылался на это, показывая цитату, это не было бы плагиатом.

Убедитесь, что ваш источник разрешает (повторное) использование (лицензия, письменное разрешение). Я думаю (нужно проверить) что-либо на SO будет неявно быть доменом паба (или креативным достоянием, похожим ресурсом и т. Д.), Иначе оно действительно не сможет работать. (Какая польза получить ответ, который вы знаете, что не можете использовать)

Короче говоря, я чувствую, что, может быть, вы не очень хорошо понимаете плагиат, если определения не сильно отличаются в академической сфере?

Мое эмпирическое правило: используйте все ответы, которые просто ускоряют результаты, которые вы все равно получаете. Однако, если вы найдете образец, который волшебным образом работает, но вы действительно не знаете, как (или почему) вы пересекаете этическую черту.

Что касается модификации небольших фрагментов, я бы поспорил с обратным; Как бы вы интегрировали небольшие фрагменты в свой код без реорганизации: шансы, что он вписался бы, довольно малы, и у меня есть довольно твердое мнение о том, как должен выглядеть мой код. Возможно, вам не хватает этого «мнения» (читай: опыт), и я предлагаю написать больше кода, чтобы обрести уверенность. Еще один способ получить опыт - прочитать ответ, а затем применить его, не обращаясь к примерам кода . Вы будете делать ошибки, но вы также будете учиться достаточно, чтобы

  • воспроизведите это в следующий раз
  • получить уверенность в том, что вы понимаете код
  • чувствовать себя хорошо

отправлено с моего HTC; пожалуйста, побалуйте себя опечаткой или двумя


SO сообщения лицензируются как CC-BY-SA 3.0 (прокрутите вниз до самого низа страницы), поэтому, если кто-то напишет полное решение для вашей проблемы, вам будет разрешено скопировать его дословно, только если вы упомянете автора и ваш Код публикуется под той же лицензией (или не публикуется вообще). Но, как вы говорите, такое копирование и вставка является плохой практикой.
5gon12eder

4

Если вы изменяете и перефразируете код только для того, чтобы избежать плагиата, вы только (пытаетесь) избежать обнаружения плагиата. Все зависит от того, какой фрагмент кода вы копируете. Одна из возможностей - оценить данный фрагмент кода как просто полезное руководство с ограниченной творческой оригинальностью или как обычную практику, которую никто не может претендовать на авторство. Другая возможность состоит в том, чтобы оценить это достаточно важно, чтобы дать кредит. Вы можете дать кредит на нескольких уровнях, от простого комментария к коду до превращения вашего кода в официальный форк / ветвь исходного кода. Таким образом, речь идет не о том, что вы можете сделать, а о том, насколько оригинальным вы считаете код, и как вы предоставляете кредит при необходимости. Плагиат - это не копирование, а копирование без признания.


1

Я бы посоветовал вам использовать любые источники, которые вы можете найти, чтобы выяснить, как решить проблему. И как только вы выясните это, вы удалите все эти источники с экрана и напишите свое собственное решение.

Если у вас нет фотографической памяти и вы не скопировали одно из существующих решений, это решает проблему плагиата и / или нарушения авторских прав. Это также помогает вам, заставляя вас действительно понять проблему.

Вы можете пойти немного дальше: большинство решений, которые вы найдете в Интернете, имеют ту или иную ошибку. То, что он есть в интернете, еще не значит, что он идеален. Выяснить, что не совсем правильно и исправить это. Таким образом, вы получите лучшее понимание, получите лучший код и определенно избежите обвинений в нарушении авторских прав или плагиате.


0

Если вы не программируете в академической среде, зачем вам беспокоиться о плагиате? В профессиональной среде это имеет значение только в том случае, если вы будете заниматься плагиатом других сотрудников вашей компании. Плагиат о том, кто получает кредит. В любом случае, решение проблемы плагиата простое - все, что вы берете, отдайте должное первоначальному автору. Если это было с веб-страницы, включите URL. Это полезно для вас, потому что, если у вас есть какие-либо вопросы, вы сможете снова найти исходный источник.

Если ваш вопрос действительно касается нарушения авторских прав, помните, что авторское право не распространяется на функциональные аспекты. Он охватывает только творческий выбор, когда существует очень большое количество одинаково полезных вариантов. Если вы не можете легко изменить код, не нарушая функциональность, то это не то, на что распространяется авторское право (в соответствии с правилом слияния или справедливости).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.