자신의 '단어'로 코드를 안전하게 작성하고 표절하지 않는 방법은 무엇입니까?


18

나는 연구 논문을 작성할 때 표절과 해석을 상당히 잘 이해하지만 프로그래밍에서 그와 동등한 부분은 나에게 외국처럼 보입니다. 나는 온라인에서 주제를 찾아 보았는데 놀랍게도 주제에 대해 예상만큼 많은 자료가 없습니다.

코드를 작성하고 이전에 구현 한 적이없는 것을 구현해야하는 경우 온라인으로 이동하여 예제를 찾습니다. 사전에 설명서를 읽으려고하지만 때로는 따라 가기가 어려워집니다. 이 방법이 실패하면 온라인에서 주제를 검색하여 수십 개의 예제를 제공합니다 (개인 블로그 나 SO와 같은 Q & A 사이트에 있는지 여부). 이제 보통 5-10 줄의 코드가 제공됩니다. 나는 그것을 내 자신의 코드에 복사하여 붙여 넣지 않을 것입니다. 그러나 여전히 그대로 복사하는 것에 대해 걱정합니다. 특히 코드가 너무 많을 때 특정 코드를 바꾸는 것이 어렵다는 것을 알았습니다. 변수 이름을 바꾸고 형식을 변경하는 등의 작업을 수행해야합니다. 그러나 이것으로 충분합니까?

저는 항상이 주제를 이해하고 싶었지만 이제는 새로운 언어로 작업하고 회사 환경에서 작업하는 것이 특히 적절하다고 생각합니다. 누구든지 다른 곳에서 좋은 설명을 설명하거나 연결할 수 있다면 크게 감사하겠습니다!

tl; dr 나는 표절을 피하기 위해 온라인에서 발견 된 5-10 스 니펫 코드를 얼마나 많이 바꾸고 다시 말해야하는지 이해하지 못합니다. 변경할 수있는 것이 거의 없다면 어떻게해야합니까?


표절 방지에 대해 적극적으로 생각 해야하는 경우 시스템에 문제가 있습니다. 물론 무언가를 복사해서는 안되지만 그것에 대해 생각할 필요는 없습니다.
Anto

1
@anto, OP가 의미하는 바를 이해한다고 생각합니다. OP는 어딘가에서 일부 코드를 가져 와서 사용하거나 수행중인 작업과 통합하려고합니다. 내 제안은 OP가 다른 곳에서 얻은 무언가에 대한 소유권을 확실하게 소유하기 위해서는 (1) 그것을 배우고 이해하고, (2) 기능적으로 (리팩토링) 코드 적으로 (더 나은, 일관된 심볼 이름) 코드를 개선 하고 (3) 자신의 프로젝트 내에서 실행하십시오. 이 빠른 (O (log2 (N)) 슬라이딩 최대 알고리즘으로이 작업을 수행했습니다. 내 코드는 내 코드이지만 다른 곳에서 alg를 배웠습니다.
robert bristow-johnson

질문이 더 광범위하다는 것을 이해하지만이 링크는 관련이있을 수 있습니다. 포럼에서 찾은 코드를 합법적으로 사용할 수 있습니까?
John Wu

답변:


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을 포함하십시오. 궁금한 점이 있으면 원본 소스를 다시 찾을 수 있기 때문에 이점이 있습니다.

귀하의 질문이 실제로 저작권 침해에 관한 것이라면, 저작권은 기능적인 측면을 다루지 않는다는 것을 기억하십시오. 똑같이 유용한 많은 선택이있는 창의적인 선택 만 다룹니다. 기능을 중단하지 않고 코드를 쉽게 변경할 수 없다면 저작권이 아닙니다 (합병 또는 공정한 규칙에 따라).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.