Programa que detecta si te has copiado codigo programación

Hola, he abierto éste hilo para obtener información acerca de un programa que detecta el porcentaje de similitud entre dos exámenes de lenguaje de programación.Es que estoy en un modulo de informática y me sorprendió que me dijera el profesor que dispone de un programa que detecta la similitud del código (porcentaje) de trabajos, examenes,etc....Es que estoy dando java y me va fatal...xdxd...QUISIERA SABER QUE PROGRAMA ES, DE QUE INFORMACIÓN DISPONEÍS ACERCA DE ÉL Y COMO EVITARLO.....


GRACIAS A TODOS!!!
Esto me parece que no va aquí.
De todos modos, no hace falta que sea un programa conocido, él mismo puede tener su propio script.
El comando diff de Linux funciona muy bien.
Programa propietario, script, el word... xD

Como evitarlo: estudiar y no copiar, quizás?
No te dejan utilizar los apuntes de programación en el ciclo formativo?
rayo8989 escribió:Hola, he abierto éste hilo para obtener información acerca de un programa que detecta el porcentaje de similitud entre dos exámenes de lenguaje de programación.Es que estoy en un modulo de informática y me sorprendió que me dijera el profesor que dispone de un programa que detecta la similitud del código (porcentaje) de trabajos, examenes,etc....Es que estoy dando java y me va fatal...xdxd...QUISIERA SABER QUE PROGRAMA ES, DE QUE INFORMACIÓN DISPONEÍS ACERCA DE ÉL Y COMO EVITARLO.....


GRACIAS A TODOS!!!


Básicamente un decompilador que ponga nombres genéricos a las variables y métodos. Así evitan que copies la práctica simplemente cambiando el nombre de las variables y 4 cosas más. En mi uni tb lo hicieron en su día. Para evitarlo puedes probar cosas como

-Cambiar for por while y vice-versa
-Cambiar algún if-else por un switch y viceversa
-Cambiar algún método recursivo por uno no recursivo y vice-versa
-Cambiar arrays normales por ArrayLists y viceversa

Dado que al fin y al cabo todos vuestros programas deben hacer lo mismo, e imagino que muchas veces tan solo habrá 1 o 2 formas de hacerlo, siempre va a haber un alto porcentaje de similitud. Cambiando esas cosillas debería bajar lo justo para que no te encalomen. Básicamente cambiar cosas que afecten a la estructura de tu programa y/o el tipo de objectos que usas.

DISCLAIMER: No me hago responsable si copias, te pillan, y te suspenden XD
Gracias soys unos makinas!!!!xd
Cambiar los nombres de las variables funciona bastante bien tambien contra estos programitas...
melirober escribió:Cambiar los nombres de las variables funciona bastante bien tambien contra estos programitas...


NOOOOOOOO!!! A poco que sea mínimamente decente, eso no sirve de nada. El motivo es el siguiente:

-Pongamos que tienes dos programas.
a) int miEntero = 5;
b) int teCambioElNombre = 5;

El compilador genera un chorraco de 10101010100010000101001010000

A continuación el decompilador pa estas cosas genera EN AMBOS CASOS
int a=5;
porque IGNORA LOS NOMBRES y le pone nombres genéricos a todo.

Y esto es lo que comparan, no los fuentes, sino los fuentes decompilados. Te lo digo porque en mi clase pillaron a mogollón de gente que pensó lo mismo que tu. De ahí la necesidad de cambiar la estructura del programa y el tipo de objetos que usas. Si uno pone

int miEntero = 5

y el otro

Integer miInteger = new Integer(5);

Eso si que tiene posibilidades de engañar a estos programas.
redscare escribió:
melirober escribió:Cambiar los nombres de las variables funciona bastante bien tambien contra estos programitas...


NOOOOOOOO!!! A poco que sea mínimamente decente, eso no sirve de nada. El motivo es el siguiente:

-Pongamos que tienes dos programas.
a) int miEntero = 5;
b) int teCambioElNombre = 5;

El compilador genera un chorraco de 10101010100010000101001010000

A continuación el decompilador pa estas cosas genera EN AMBOS CASOS
int a=5;
porque IGNORA LOS NOMBRES y le pone nombres genéricos a todo.

Y esto es lo que comparan, no los fuentes, sino los fuentes decompilados. Te lo digo porque en mi clase pillaron a mogollón de gente que pensó lo mismo que tu. De ahí la necesidad de cambiar la estructura del programa y el tipo de objetos que usas. Si uno pone

int miEntero = 5

y el otro

Integer miInteger = new Integer(5);

Eso si que tiene posibilidades de engañar a estos programas.


O ser tan cafre de usar otro tipo de datos, como short int o long int XD. Lo mejor será que no copie, porque después en otras asignaturas / cursos superiores se va a cagar con la programación...
Hombre, no sé las españolas porque mi universidad es de uk, aquí usan un software propietario que se llama turnitin para detectar plagios
aunque hay varias herramientas que sirven para lo mismo, podéis ver varias en este artículo http://edant.clarin.com/diario/2009/06/ ... 934916.htm
Me estaís sirviendo de mucho, y para aclarar el tema no soy de los que suele copiarse pero si he de reconocer que en algunos temas iva perdido y un compañero mio me lo pasó pero no comparaban exámenes como éste año...jejejej

Seguir dando respuestas por favor que me estaís ayudando mxisimo.Alguna manera sin tener k cambiar por ejemplo un for por un while ¿?quiero algo mas sencillo que evite a éstos programas.MXISIMAS GRACIAS, SOYS LOS MEJORES, PEAZO FORO"!!!!!!!! ratataaaa
¿Has pensado en que hasta puede ser mentira? Os lo dice para crear el miedo y que no copiéis.

De todas formas, la mejor manera para que dicho programa no "te pille" es estudiar. Si resulta que ese supuesto programa de positivo en que te has copiado o se han copiado de ti y en ese mismo momento "demuestras" que te sabías el examen el tío verá que el que has estudiado eres tu, o que al menos te lo sabes.

Por cierto, si vas pegado en Java pásate por el hilo oficial que hay y pregunta cualquier cosa, la gente suele responder.

ByEs [buenazo]
rayo8989 escribió:Alguna manera sin tener k cambiar por ejemplo un for por un while ¿?quiero algo mas sencillo que evite a éstos programas


No. Si fuera tan sencillo evitar estos programas, nadie los usaría. Sinceramente, si un colega tuyo que controle te pasa su práctica y tu te la empollas hasta entenderla y haces tu propia versión en vez de copiarla sin más

a) Aprenderás
b) Aprobarás si luego os hacen un examen o algo sobre las prácticas
y, lo que parece ser tu principal objetivo,
c) Te costará bastante menos que picarte tu la práctica entera
bitman escribió:¿Has pensado en que hasta puede ser mentira? Os lo dice para crear el miedo y que no copiéis.


No sé en donde él estudia, pero en mi Universidad sí lo hacen, al menos para las prácticas. Hay que enviarles el código fuente mediante un comando y unos argumentos, el profesor no tiene que hacer nada, "algo" le genera una tabla con el porcentaje de similitud entre el código de cada alumno. A más de uno han pillado a los 2 minutos de enviar el código.
El tiempo que pierdes buscando estratagemas, si lo invirtieras en estudio ya te lo sabrías.
rintin escribió:El tiempo que pierdes buscando estratagemas, si lo invirtieras en estudio ya te lo sabrías.


Ya que vas a copiar hazlo bien:

a) Cambia el nombre de las variables.

b) Cambia el orden en que son inicializadas las variables;

c) Cambia el tipo de las variables por otro que también funcione. Por ejemplo si tienes un int y puedes usar un long o un short hazlo.

Si no eres capaz de hacer esto... deberías plantearte si vales para eso.

Por cierto, pasate por el subforo de software libre, veo que te gusta compartir código xD [666]

Saludos.
16 respuestas