Reutilizar el código de otra persona en mi propia publicación

Estoy a punto de enviar un documento en el que uno de los algoritmos que utilicé se basa en gran medida en el código disponible en uno de los tutoriales de TensowFlow. De hecho, en su mayoría copié el código de la página e hice las modificaciones necesarias para mi caso específico. Cité, en el documento, tanto a TensorFlow como a la página, y revelé que la arquitectura de red neuronal que estaba usando se basaba en la de la página. Los términos de licencia del código (Apache 2.0) mencionan que el usuario es libre de desarrollar el código y redistribuirlo.

No estoy en CS y estoy aplicando el modelo a un problema específico en mi campo. Sin embargo, al copiar el código (que creo que no se divulgará) me temo que podría estar cometiendo una mala conducta académica. Sin embargo, por otro lado, si ese fuera el caso, el uso de bibliotecas de código abierto también estaría mal visto, dado que el usuario está esencialmente copiando código.

¿Estaré cometiendo una mala conducta académica o cualquier cosa que esté éticamente mal vista en el mundo académico al enviar resultados que, en parte, se basaron en código copiado?

PD: En respuesta a un comentario, cité TensorFlow y la página web en el documento, que se publicará si se acepta, pero el código en sí (que se basó en gran medida en el código disponible en la página web) no se publicará en ninguna parte (como hasta donde sé).

Estoy confundido. En el primer párrafo, dice que citó la página, pero en el segundo párrafo dice que la copia no será divulgada. Esos parecen mutuamente excluyentes para mí. ¿Podría elaborar?

Respuestas (2)

Está haciendo lo correcto siempre que cite claramente sus fuentes. En otras palabras, siempre que diga que su código se basa en el código de otra persona, y siempre que cite claramente qué es ese "código de otra persona" y dónde puede encontrarlo un lector, está bien.

El hecho de que la base de su trabajo sea de código abierto no requiere que usted también comparta su código (aunque eso sería claramente en el espíritu del software de código abierto). El software de código abierto generalmente solo significa que si le da a otra persona un ejecutable de su implementación usando un paquete de código abierto, también necesita darle el código fuente de su implementación. (Los detalles varían según la licencia en cuestión, pero esa es la idea). Siempre que escriba el código solo para usted, no hay necesidad ni requisito de compartirlo con otros.

Recomiendo encarecidamente hacer su propio código de código abierto. Hace que su "experimentación" sea reproducible. IMNSHO todo software financiado con fondos públicos de investigación debe ser de código abierto.
Tenga en cuenta que las revistas o los términos de su subvención pueden requerir que comparta su código. Además, es una buena práctica hacerlo. No puede ser demasiado horrible mostrárselo a otras personas si copió la mayor parte de un tercero de todos modos.

Si incluye el trabajo de otras personas en su documento, debe hacer referencia a él.

El "trabajo de otras personas" incluye, pero no se limita a, lo siguiente:

  • palabras que está citando de una conferencia, una conversación u otro contexto oral
  • palabras que está citando de un artículo, libro u otra publicación
  • fotografías que incluye de un artículo, libro u otra fuente
  • gráficos que incluye de un artículo, libro u otra fuente
  • código fuente que incluye de un artículo, libro, página de Github u otra fuente

La licencia de Apache 2.0 le permite construir legalmente sobre el código y redistribuirlo en prácticamente cualquier contexto. Simplemente atribuya cualquier código prestado a los autores originales, ya sea en los comentarios de su código o como una referencia de fuente normal y debería estar bien.

Recuerde que todos estamos parados sobre los hombros de gigantes. No hay nada de malo en tomar prestado el código de otras personas si ese código tiene la licencia adecuada (como lo es en su caso). Simplemente no finjas que es tuyo y estarás bien.