12.07.2015 Views

VIII Jornadas de Enseñanza Universitaria de la Informática Cáceres ...

VIII Jornadas de Enseñanza Universitaria de la Informática Cáceres ...

VIII Jornadas de Enseñanza Universitaria de la Informática Cáceres ...

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2.3 Revisión y visualizaciónLa recepción, almacenamiento y visualización <strong>de</strong>prácticas es el punto fuerte <strong>de</strong>l sistema. Para entregaruna práctica el alumno acce<strong>de</strong> a <strong>la</strong> opción <strong>de</strong>l GAPcorrespondiente que muestra a éste un formu<strong>la</strong>rio arellenar. En este formu<strong>la</strong>rio el alumno pue<strong>de</strong>introducir los ficheros solicitados a<strong>de</strong>más <strong>de</strong> uncomentario adicional para el profesor corrector. Verfigura 1.Una vez entregada <strong>la</strong> práctica, los alumnospue<strong>de</strong>n comprobar <strong>la</strong> información almacenada en elsistema y verificar cómo éste se <strong>la</strong> presentará alprofesor corrector, pudiendo alterar<strong>la</strong> si no le parececorrecta y aun no ha sido evaluada. Si <strong>la</strong> práctica hasido calificada por un profesor el sistema mostrará a<strong>la</strong>lumno los datos <strong>de</strong> <strong>la</strong> revisión: fecha y hora <strong>de</strong>revisión, el profesor que <strong>la</strong> ha hecho, loscomentarios <strong>de</strong> éste sobre <strong>la</strong> práctica y suvaloración. El sistema muestra <strong>la</strong>s prácticas en forma<strong>de</strong> página Web que contiene el comentario <strong>de</strong><strong>la</strong>lumno, una lista <strong>de</strong> ficheros entregados con en<strong>la</strong>cespara po<strong>de</strong>r <strong>de</strong>scargarlos, si se <strong>de</strong>sea, y el contenido<strong>de</strong> los ficheros. Los tipos <strong>de</strong> ficheros que pue<strong>de</strong>mostrar directamente son códigos fuente <strong>de</strong>programas, ficheros texto y gráficos. Los ficheroscon código fuente en Java, C, C++, Ada 95, Schemey Prolog se presentan con resalte sintáctico,mostrando en distinto color <strong>la</strong>s pa<strong>la</strong>bras c<strong>la</strong>ve, loscomentarios, <strong>la</strong>s ristras literales, etc (ver figura 2) Siel usuario al que se muestra <strong>la</strong> práctica es unFigura 2profesor corrector o administrador el sistema leofrecerá <strong>la</strong> posibilidad <strong>de</strong> evaluar<strong>la</strong>.Los profesores pue<strong>de</strong>n solicitar al sistema unlistado <strong>de</strong> los alumnos junto con <strong>la</strong> información <strong>de</strong>si han entregado o no cada práctica y su valoración.Des<strong>de</strong> esta página es posible ver y revisar cualquierpráctica <strong>de</strong> cualquier alumno.2.4 Control <strong>de</strong> p<strong>la</strong>gioAl poco tiempo <strong>de</strong> poner el programa en marcha ycomenzar a recibir entregas <strong>de</strong> prácticas, se<strong>de</strong>scubrió que los alumnos con el nuevo sistematenían más facilidad para copiarse. Para comprobaresta posibilidad se escribió código que verificase sivarios alumnos habían entregado el mismo fichero.La sorpresa surgió al comprobar que el número <strong>de</strong>coinci<strong>de</strong>ncias era mayor <strong>de</strong> <strong>la</strong>s esperadas, lo quemotivó <strong>la</strong> adición <strong>de</strong> código que <strong>de</strong>tectase el p<strong>la</strong>gio<strong>de</strong> trabajos.Los primeros sistemas <strong>de</strong> medida <strong>de</strong> similitu<strong>de</strong>ntre ficheros con código fuente se basaban enmétricas puramente textuales que eran fácilmentevulnerables. Partiendo <strong>de</strong> un fichero original, unalumno pue<strong>de</strong>, sin mucha dificultad, quitar, añadir omodificar comentarios, modificar ristras literales,cambiar nombres <strong>de</strong> variables, procedimientos ofunciones, alterar el formato <strong>de</strong> línea añadiendo oeliminando espacios, o retornos <strong>de</strong> carro. Tambiénpue<strong>de</strong> reor<strong>de</strong>nar <strong>la</strong> ubicación <strong>de</strong> funciones oprocedimientos o incluso grupos <strong>de</strong> instrucciones.Por ello se han <strong>de</strong>sarrol<strong>la</strong>do sistemas que han tenidoen cuenta estos aspectos. Los más avanzados comoYAP [11], Sim [3] y otros [6], usan distintasmétricas que se basan en filtrar el código original,mediante un análisis sintáctico, para <strong>de</strong>spuéscompararlo usando generalmente una adaptación <strong>de</strong>técnicas conocidas en el ámbito textual. El filtrado<strong>de</strong>l código tiene el fin <strong>de</strong> limitar al máximo el efectoen <strong>la</strong> comparación <strong>de</strong> <strong>la</strong>s posibles alteraciones que sepuedan haber introducido. El sistema <strong>de</strong> <strong>de</strong>tección<strong>de</strong> copias empleado en GAP usa básicamente estemétodo. Para cada lenguaje <strong>de</strong> programación setiene un pequeño analizador sintáctico que permiteeliminar <strong>la</strong>s partes <strong>de</strong>l código que pue<strong>de</strong>n seralterables fácilmente. Esta “firma” <strong>de</strong>l programa es<strong>la</strong> que se compara con <strong>la</strong>s obtenidas <strong>de</strong> los otrosficheros. GAP emplea como métrica una variante <strong>de</strong>DIT [9]. DIT es una distancia entre ristras que esinvariante a <strong>la</strong> posición don<strong>de</strong> aparecen los

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!