Verifique el código fuente en busca de plagio

Si obtiene el código fuente de un programa de un estudiante, ¿hay alguna buena forma automática de verificar si el código se copió en algún lugar de la web?

Es decir, ¿hay un motor de búsqueda especializado en el código fuente donde pueda poner una parte más grande del código y rastrea la web en busca de fragmentos de código que se parezcan?

Sé que solo hay detectores de plagio para textos como https://www.quetext.com/ y herramientas especializadas para código fuente que hacen coincidir un archivo con otro archivo, pero no conozco ninguna herramienta que verifique un archivo de código fuente. contra cada código fuente encontrado en línea.

Respuestas (3)

Solo leí sobre eso y, por lo tanto, no tengo experiencia con la herramienta, pero podría probar MOSS.

http://theory.stanford.edu/~aiken/moss/

La mayoría de los sistemas educativos ( como Moodle ) tendrán este tipo de funcionalidad integrada en el lado de la interfaz de los educadores.

Funciona muy bien para envíos de tipo de palabra, pero para el código es un poco más difícil, ya que los fragmentos de código son bastante similares en funcionamiento y estructura, y verá múltiples aciertos en cada fragmento.

Esto se debe a que la codificación a menudo tiene más que ver con la funcionalidad que con la creación, y obtener fragmentos de la red es una práctica estándar cuando se aprende/enseña.

Como Markus identificó, la herramienta MOSS está más cerca del tipo de herramienta que está buscando, pero incluso en su propio ¿Qué no es Moss? sección de su documentación identifica los problemas con el uso de una herramienta de forma aislada.

Moss no es un sistema para detectar plagio de forma totalmente automática. El plagio es una declaración de que alguien copió el código deliberadamente sin atribución, y aunque Moss detecta automáticamente la similitud del programa, no tiene forma de saber por qué los códigos son similares. Todavía depende de un ser humano ir y mirar las partes del código que Moss destaca y tomar una decisión sobre si hay plagio o no...

En la universidad, se nos animó a buscar el código preexistente para incorporar siempre que el fragmento se identificara y se atribuyera al autor (teníamos que tener los enlaces a los fragmentos detallados en nuestros comentarios), también hubo un porcentaje de fragmentos atribuidos que podríamos usar (creo que fue alrededor del 35%). El verdadero truco estaba en que el alumno explicara por qué funcionaba cada plato y cómo podía minimizarse o mejorarse para adaptarse mejor al resultado deseado.

Verificar si el código se acaba de copiar y pegar entre los estudiantes fue más problemático, pero encontrará que ese tipo de problemas son bastante fáciles de detectar porque verá exactamente el mismo diseño, estructura e incluso el mismo nombre de funciones y variables.

A menudo, la mejor manera de verificar es hacer que los estudiantes agreguen comentarios detallados a cada parte, ya que estos suelen ser más personales, ya que la mayoría de los estudiantes tienen una lengua vernácula o una cadencia que es más evidente. Esto, junto con las revisiones y evaluaciones por pares, es la mejor manera de identificar el plagio en la codificación.

No es la mejor respuesta para usted, pero espero que funcione para su situación.

Puede consultar el verificador de originalidad de código de computadora http://codep.lab.p1k.org
Por ahora, funciona con código Python y solo con los archivos cargados, pero prometen agregar la función de búsqueda web pronto.
PD Hasta donde yo sé, se encuentra en la etapa de prueba beta cerrada, por lo que es necesario
registrarse Formulario de registro: https://docs.google.com/forms/d/e/1FAIpQLSfa0dgcWBp70NHFwKk44H5QwpA8Appjwj4eZ7GO5YW62xy7Lw/viewform?usp=sf_link