¿Qué es el plagio de código fuente? En pocas palabras, el plagio de código fuente es utilizar el código fuente de otra persona y adjudicárselo como propio. El plagio de código fuente se remonta a la década de los 90, cuando se desarrolló el programa antiplagio MOSS para verificar la originalidad en las tareas de programación. En este artículo analizaremos no solo el incremente del plagio en las asignaturas de programación, sino también las causas de este aumento, y veremos qué pueden hacer los docentes para mitigar el plagio de código fuente.
Según un artículo de 1998 de la revista Wired titulado "Cómo atrapar a los tramposos en informática" (Catching Computer Science Cheaters), "los docentes de informática estiman que entre el 5% y el 20% de los estudiantes han colaborado más allá de lo que se podría considerar razonable".
Otro artículo más reciente de The New York Times, "Según aumentan las clases de codificación, lo hacen también las trampas" (Computer Coding Classes Swell, So Does Cheating), publicado en 2017, confirma que el plagio de código fuente es un problema constante en lo que se refiere a mala conducta académica en las universidades. Los autores, Jess Bidgood y Jeremy B. Merill, afirman que "en la Universidad de Brown, más de la mitad de las 49 acusaciones de violaciones del código académico durante el año pasado estaban relacionadas con trampas en las asignaturas de informática". En Stanford, alma máter de los fundadores de Google, Snapchat y otras muchas maravillas de Internet, se detectó que hasta el 20% de los estudiantes de un curso de informática de 2015 podían haber hecho trampa."
La ambigüedad de la Colaboración
Lo más probable es que cualquier software destinado descarga o venta haya sido creado por más de una persona. Además, el código puede contener lo que se considera "código abierto", es decir, un código fuente libre y disponible para uso, incluso sin necesidad de dar crédito del mismo, dependiendo de su licencia adjunta. En el mundo del desarrollo de software, la colaboración es habitual y se fomenta de formas probablemente inaceptables en una clase académica convencional.
En el ámbito de los cursos académicos, los proyectos de programación suelen estar destinados a ser completados por individuos para su evaluación individual. El código debe ser referenciado, aunque también puede ser un trabajo completamente original del estudiante que está siendo evaluado. Las razones de esta diferencia son obvias: en los trabajos académicos, los estudiantes deben demostrar su conocimiento de los conceptos dados por los docentes con ideas originales, no se les pide que creen algo para venderlo.
Disponibilidad de soluciones
En el mundo del software de código abierto, el código está abierto para su reutilización, y aunque existen diferentes licencias y permisos, los estudiantes pueden tener problemas con el trabajo del curso y/o tener la tentación de utilizar software de código abierto para sus trabajos. El software de código abierto reside en repositorios de código en línea como Github, que pueden tener respuestas para diferentes conceptos, así como tareas publicadas por estudiantes de cursos anteriores, según The New York Times. Otro recurso que los estudiantes utilizan incorrectamente es Stack Overflow, un sitio web de preguntas y respuestas frecuentado tanto por nuevos programadores como por los profesionales experimentados.
Por las razones mencionadas anteriormente, además de otras, el trabajo de los cursos de programación no se corresponde con la naturaleza más colaborativa de los enfoques industriales de programación. Como resultado, esto crea dificultades en los casos de confabulación de estudiantes y el plagio de código fuente, debido a que los estudiantes tienen acceso a un gran número de recursos destinados al desarrollo de software industrial. Según el artículo de investigación "Eliminación del plagio en los cursos de programación a través del diseño de la evaluación" (Eliminating Plagiarism in Programming Courses through Assessment Design), "los estudiantes tienden a plagiar si las soluciones a la tarea [sic] pueden obtenerse fácilmente de Internet [sic] o de fuentes similares" (Ngo, 2016, p. 873).
¿Qué pueden hacer los docentes para explicar y prevenir el plagio de código fuente?
- Dejar claras las normas de integridad académica. Esto incluye una diferenciación clara entre colaboración y confabulación. Se deben definir por adelantado las líneas que los estudiantes no deben cruzar. Las investigaciones llevadas a cabo han demostrado que "explicar qué es la honestidad académica y reforzar su enseñanza resulta en una disminución estadísticamente significativa (p < 0.05) en los índices de plagio de todas las entregas de trabajos de programación de una clase online de postgrado de informática con muchos alumnos.” - “Collaboration Versus Cheating” (Colaboración vs trampa, en español), (Mason, Gavrilovska, & Joyner, 2019).
- Hacer hincapié en las políticas sobre la utilización de código externo. Si se permite el uso de código externo y/o se tiene una lista de fuentes restringida, se puede pedir a los estudiantes que comenten su código para aclarar cualquier parte que haya sido tomada de fuentes externas. En otras palabras, solicitar a los estudiantes que citen sus fuentes.
- Llevar a cabo una lluvia de ideas y crear un código original y único. Modelar el pensamiento original y diseñar evaluaciones que apoyen el proceso de desarrollo de un código original.
- Proporcionar el andamiaje para el código original estableciendo fechas de entrega intermedias que incluyan retroalimentación para así fomentar el aprendizaje de los estudiantes y ayudar a los que tengan dificultades. Algunos docentes pueden utilizar git u otro software de control de versiones para que los estudiantes puedan entregar los trabajos en segmentos a lo largo de períodos de tiempo más largos. Las fechas de entrega intermedias también aumentan la transparencia en el trabajo de los estudiantes y ayudan a que se sientan considerados y, por lo tanto, sean menos propensos a la mala conducta académica.
- Utilizar un software para revisar la similitud, que puede servir como elemento disuasorio de la mala conducta. Además, este software, junto con la instrucción explícita y la retroalimentación, se pueden usar para reforzar la integridad académica en la programación.
- Invertir en el diseño de la evaluación utilizando el análisis de ítems y la evaluación con integridad para que las tareas contribuyan al aprendizaje de los estudiantes y para que estos comprendan el valor de la evaluación y la retroalimentación formativa. Según el artículo "Eliminación del plagio en los cursos de programación mediante el diseño de la evaluación" (Eliminating Plagiarism in Programming Courses through Assessment), "en el ámbito de la programación, el aprendizaje a partir de ejemplos prácticos es especialmente útil cuando los estudiantes aprenden a interpretar el código fuente existente y a modificarlo según sus necesidades. La clave del aprendizaje a partir de ejemplos es asegurarse de que los estudiantes entienden los ejemplos y no se limitan a copiar el código fuente para llevar a cabo las tareas. Por ello, en nuestra estrategia de diseño se desarrollan esqueletos de programas para cada tarea, con el fin de evitar que los estudiantes copien sin entender. A continuación, se diseñan evaluaciones presenciales basadas en el contenido de la tarea para verificar la comprensión de los estudiantes y su capacidad de modificar el código fuente y así cumplir con los nuevos requisitos del programa. Los resultados iniciales y la retroalimentación de los estudiantes revelan el beneficio potencial de nuestro método de diseño para mejorar la comprensión y el rendimiento de los estudiantes. Y aún más importante, ahorra tiempo y esfuerzo a los docentes para detectar plagio" (Ngo 2016, p. 878).
- Fomentar los circuitos de retroalimentación y el respeto entre estudiantes y profesores. Las investigaciones llevadas a cabo han demostrado que las buenas relaciones entre estudiantes y profesores mitigan los casos de plagio. La informática no es una excepción. El artículo "Plagiarism and Programming: A Survey of Student Attitudes'' (Plagio y programación: una encuesta sobre las actitudes de los estudiantes, en español), resumió la investigación centrada en las percepciones de los estudiantes sobre el plagio en la programación y su prevención. El documento concluye: "Este estudio descubrió que la formación sobre lo que constituye el comportamiento académico deshonesto para las tareas de programación calificadas marca la diferencia en las percepciones de los estudiantes. Los docentes deben delinear clara y diligentemente lo que es aceptable y lo que no, así como recordar constantemente a los estudiantes las políticas del curso en lo que respecta a la deshonestidad académica". Esto está en consonancia con las conclusiones de Simkin y McLeod (2010), según las cuales, contar con un profesorado ético con opiniones que los estudiantes respetan es una de las razones por las que estos deciden no hacer trampas'' (Aashiem, Rutner, Li, & Williams 2012, p. 307). La formación explícita en torno a la integridad académica en la programación es una medida necesaria.
El acceso ilimitado al código fuente en línea hace que el plagio de código fuente sea especialmente vulnerable a los casos de mala conducta académica. La disponibilidad de las fuentes es abundante y accesible para estudiantes que se encuentren abrumados y estresados. Además, la camaradería colaborativa de la industria del software -ideal para desarrollarlo- puede resultar confusa para los estudiantes que son evaluados por su rendimiento individual.
Lo que podemos hacer como docentes es ayudar a los estudiantes a entender el propósito del aprendizaje y los principios que rigen la integridad académica y prepararlos así para sus carreras profesionales con ideas originales, código original y una clara comprensión de la verdadera colaboración.