Administración de un VPL

De Documentación Campus Virtual de la UEx
Ir a la navegación Ir a la búsqueda

Administración de VPL

Una vez creada la actividad, en el Bloque de Administración de la misma, tenemos acceso a las distintas opciones de configuración del Laboratorio de Programación Virtual, como son:

Administracion VPL.PNG
  • Casos de prueba
  • Opciones de ejecución
  • Ficheros requeridos
  • Ajustes avanzados:
  • Ficheros para la ejecución
  • Límites máximos de recursos de ejecución
  • Ficheros a mantener mientras se ejecuta
  • Variaciones
  • Comprobación de servidores de ejecución
  • Servidores de ejecución locales
  • Probar actividad:
  • Entrega
  • Editar
  • Ver entrega
  • Calificación
  • Lista entregas previas
  • Laboratorios virtuales de programación
  • Roles asignados localmente

Casos de prueba

Una vez creada la actividad, si se desea crear un caso de prueba se accede al panel de Administración de VPL > Casos de prueba.
Para utilizar las funciones de evaluación automática de VPL, hay que completar el archivo "vpl_evaluate.cases".
Los casos de prueba permiten configurar los parámetros de entrada y salida a los que se verá condicionada una solución para poder obtener un informe de evaluación satisfactorio. Se despliega una ventana donde se debe definir el caso de prueba. Todo caso de prueba debe incluir una breve descripción, unos parámetros de entrada y salida esperada, y un grado de reducción en caso de fallo.
Para definir los casos de prueba se deben tener en cuenta las siguientes consideraciones:
  • Todo caso de prueba tiene una cabecera que determina el inicio del caso de evaluación. Se pueden definir varios casos de pruebas dentro de un mismo archivo de evaluación, cada uno separado por su cabecera: Case = Name Case
  • Los parámetros de entrada en un caso de evaluación se definen mediante la estructura Input = Text|Number. Las entradas del caso de evaluación pueden comprender varias líneas y culmina cuando se define otra sentencia.
  • La salida que debe arrojar la solución a la actividad se puede definir en el caso de prueba con la estructura Output = Text|Number|Regex. Se pueden definir múltiples salidas y terminan cuando se define otra sentencia.
  • Cuando se definen las salidas de una actividad, se puede definir un grado de reducción, en caso tal, las salidas de la solución planteada no se corresponden a ninguno de los valores esperados. La estructura del grado de reducción o valor asociado a cada uno de los casos de prueba es Grade reduction = Grade Reduction.
  • El grado de reducción de un caso de prueba se define de acuerdo con el sistema de calificación que se defina a la hora de crear la actividad, puede ser ya sea por escala o porcentaje.
En la siguiente imagen mostramos un ejemplo de test de prueba para nuestro VPL Suma simple:
2ejemplo7.png Sumasimple.png
En este otro ejemplo, los 3 test de pruebas son los que se muestran:
Ejemplo2LVP.png CPEjemplo2LVP.png


Opciones de ejecución

En esta página se establecen las diferentes opciones de ejecución de nuesto VPL.

  • Basado en: permite establecer otra actividad VPL de la que tomar referencias, y de la que se toman diversas características:
  • Ficheros de ejecución (los guiones predefinidos se concatenan)
  • Límites de los recursos de ejecución.
  • Variaciones, que se concatenan generando variaciones múltiples.
  • Tamaño máximo de cada fichero a subir
  • Ejecutar script y Script de depuración: podemos establecer un script determinado de entre la lista del desplegable, o dejar la opción "Autodetectar" para que lo detecte según la extensión del fichero de entrega.
  • Ejecutar, Depurar y Evaluar: establecen si se puede usar la opción correspondiente durante la edición de la entrega. Esto sólo afecta a los estudiantes, los usuarios con capacidad de calificación pueden usar estas opciones en cualquier caso.
  • Evaluar al entregar: al subir los ficheros se produce el proceso de evaluación automáticamente.
  • Calificación automática: si el resultado de la evaluación contiene códigos de nota automática estos se toman como nota definitiva.
OE VPL.png

Ficheros requeridos

Aquí se fijan nombres y contenido inicial para los ficheros requeridos. Si damos nombre a nuestro fichero, todas las entregas se harán en el fichero con el nombre especificado por el profesor en la configuración del laboratorio.
Si no se fijan nombres para el número máximo de ficheros establecido en la definición básica de la actividad, los ficheros para los que no se han establecido nombres son opcionales y pueden tener cualquier nombre. Se le pedirá el nombre del fichero al editar la entrega:
FR2.png
Además, se pueden establecer contenidos para los ficheros requeridos, de forma que dichos contenidos estarán disponibles la primera vez que el fichero se abra usando el editor, si no se ha realizado una entrega previa.
En nuestro ejemplo, se especifica la frase #Introducir el código de la práctica, que es lo que debe hacer el alumno, y se guardará con el nombre y extensión ya especificados:
FR VPL.png


Ajustes avanzados

Ficheros para la ejecución

Introducción

Aquí se establecen los ficheros necesarios para la ejecución, depurado o evaluación de una entrega. Esto incluye ficheros script, programas de prueba y ficheros de datos.

Uso general

Estos nuevos ficheros se pueden añadir, o bien creando un nuevo fichero escribiendo su nombre en la caja "Añadir fichero" y pulsando el botón "Añadir fichero", o bien cargando un fichero existente usando el control "Cargar fichero".
Todos los ficheros que se añadan o se carguen pueden ser editados, y todos, excepto los ficheros de script mencionados a continuación, pueden renombrarse o eliminarse.
Deben existir tres ficheros de script para preparar cada una de las tres posibles acciones. Estos ficheros tienen nombres predefinidos: vpl_run.sh (ejecución), vpl_debug.sh, (depuración) y vpl_evaluate.sh, (evaluación)
La ejecución de cualquiera de estos guiones debe generar un fichero denominado vpl_execution. Este fichero debe contener código binario ejecutable, o un script que comience por ""#!/bin/sh". La no generación de este fichero imposibilita ejecutar la acción seleccionada.
Si la actividad se basa en otra, los ficheros de la actividad base se añaden automáticamente. Los contenidos de los ficheros vpl_run.sh, vpl_debug.sh y vpl_evaluate.sh se concatenan para toda la cadena de actividades en la que se base la presente
Finalmente, se añade el fichero vpl_environment.sh, que contiene información sobre la entrega, la cual se suministra mediante variables de entorno:
LANG: el lenguaje empleado.
LC_ALL: el mismo valor que LANG.
VPL_MAXTIME: tiempo máximo de ejecución en segundos.
VPL_FILEBASEURL: URL para acceder a los ficheros del curso.
VPL_SUBFILE#: cada nombre de los ficheros entregados por el alumno. # va de 0 a número de ficheros entregados.
VPL_SUBFILES: lista de todos los ficheros entregados.
VPL_VARIATION+id: donde id es el orden de variación comenzando por 0 y el valor es el valor de la variación.
Si la acción solicitada es "evaluación" se añaden las siguientes variables:
VPL_MAXTIME: máximo tiempo de ejecución en segundos.
VPL_MAXMEMORY: máxima memoria usable en byte.
VPL_MAXFILESIZE: tamaño máximo en bytes de un fichero.
VPL_MAXPROCESSES: número máximo de procesos que pueden ejecutarse simultáneamente.
VPL_FILEBASEURL: URL a ficheros del curso.
VPL_GRADEMIN: mínimo nota para esta actividad.
VPL_GRADEMAX: máxima nota para esta actividad.

Códigos de resultado de evaluación

La salida de la evaluación es procesada para extraer, si es posible, comentarios sobre la evaluación y la nota propuesta. Los comentarios se pueden establecer de dos formas: con un comentario de línea definido con una línea que comienza por 'Comment :=>>' o con comentarios de bloques que comienza con una línea que contiene únicamente '<|--' y termina en una línea que contiene únicamente '--|>'. La calificación se toma de la última línea que comience por 'Grade :=>>'.

Scripts por omisión para ejecutar o depurar

Si no se establecen los script de ejecución o depuración, el sistema deduce el lenguaje empleado atendiendo a la extensión de los ficheros entregados para usar un script predefinidos. La siguiente tabla muestra los lenguajes soportados, las extensiones de ficheros usadas, los script disponibles, el compilador/interprete y depurador usado por este y finalmente un comentario sobre uso del lenguaje.
Lenguaje Extensiones Ejecutar Depurar Compilador / interprete depurador Comentario
Ada ada, adb, ads X X gnat (Ada 2005)/gdb Usa primer fichero como principal
C c X X gcc C99/gdb Compila todos los ficheros fuente
C++ cpp, C X X X g++/gdb Compila todos los ficheros fuente
C# cs X X mono/mdb Compila todos los ficheros fuente
Fortran f, f77 X X gfortran/gdb Compila todos los ficheros fuente
Haskell hs X hugs Ejecuta el primer fichero
Java java X X javac+java/jdb Compila todos los ficheros fuente. Localiza la clase con main.
Matlab/Octave m X matlab, octave Ejecuta el primer fichero. Use vpl_replot después de dibujar.
Pascal pas, p X X fpc o gpc/gdb Compila el primer fihero (fpc) o compila todos los ficheros fuente.(gpc).
Perl perl, prl X X perl Ejecuta el primer fichero.
PHP php X php5 Ejecuta el primer fichero.
Prolog pl, pro X swipl Ejecuta el primer fichero.
Python py X X python Ejecuta el primer fichero.
Java java X X javac+java/jdb Compila todos los ficheros fuente. Localiza la clase con main. Ejecuta el primer fichero.
Ruby rb X X ruby Ejecuta el primer fichero.
Scheme scm, s X mzscheme Ejecuta el primer fichero.
SQL sql X sqlite3 Ejecuta todos los ficheros fuente.Primero los establecidos en ficheros de ejecución
VHDL vhd, vhdl X ghdl Compila todos los ficheros fuente, el primero debe tener el método Main.


Evaluación automática

Si quiere usar las características de evaluación automática de programas de VPL debe rellenar el fichero "vpl_evaluate.cases". Este fichero tiene el siguiente formato:
  • "case = Descripción del caso": Opcional. Establece el inicio de un caso de prueba.
  • "input = texto": puede ocupar varias líneas. Finaliza cuando se introduce otra instrucción.
  • "output = texto": puede ocupar varias líneas. Finaliza con otra instrucción. Un caso de prueba puede tener varias salidas válidas. Existen tres tipos de salidas: sólo números, texto y texto exacto:
  • números: Se escriben sólo números. Solo se comprueban los número de la salida, el resto del texto es ignorado. Los números reales se comprueban con cierta tolerancia
  • texto: Sólo se comprueban palabras, la comparación es insensible a mayúsculas y se ignora el resto de los caracteres.
  • texto exacto: El texto se escribe entre comillas dobles.
  • "grade reduction = [valor|porcentaje%]" : Por defecto cuando se produce un error se descuenta de la nota máxima (rango_nota/número de casos) pero con esta instrucción se puede cambiar el descuento por otro valor o porcentaje.

(Mirar, en esta misma página, el punto Casos de prueba)


Límites máximos de recursos de ejecución

Se pueden establecer límites máximos para el tiempo de ejecución, la memoria usada, el tamaño de los ficheros generados durante la ejecución y el número de procesos simultáneos.
Estos límites se aplican al ejecutar los ficheros de script vpl_run.sh, vpl_debug.sh y vpl_evaluate.sh, y el fichero the file vpl_execution generado por ellos.
Si la actividad está basada en otra, los límites establecidos se pueden ver restringidos por los establecidos en aquella y otras en la que la misma se base, además de por los establecidos en la configuración global del módulo.
LimitesVPL.PNG

Ficheros a mantener mientras se ejecuta

Por razones de seguridad, los ficheros añadidos en "Ficheros de ejecución", se borran antes de ejecutar el fichero vpl_execution.
Si es necesario que alguno de estos ficheros permanezca en la fase de ejecución, por ejemplo, para usarlo como datos de entrada de las pruebas, márquelos en esta página.
MatenerficherosVPL.PNG

Variaciones

Se pueden definir variaciones para las actividades. Las variaciones se asignan de forma aleatoria a los estudiantes.
En esta página se puede indicar si la actividad tiene variaciones, dar un título al conjunto de variaciones, y añadir las variaciones deseadas.
Cada variación tiene un código de identificación y una descripción. El identificador se usa en el fichero vpl_enviroment.sh para pasar la variación asignada al estudiante a los scripts. La descripción, con formato HTML, se muestra a los estudiantes a los que ha sido asignada la variación correspondiente.
VariacionesVPL.PNG

Comprobación de servidores de ejecución

Esta página comprueba y muestra el estado de los servidores de ejecución usados por esta actividad.
ServidoresVPL.png

Servidores de ejecución locales

Aquí se establecen los servidores de ejecución locales para esta actividad y las que se basen en ella.
Escriba la URL completa de cada servidor en una línea. Se pueden introducir líneas en blanco y comentarios comenzando la línea por "#".
ServidoreslocalesVPL.png

Si se quiere impedir que esta actividad y las que se basen en ella no use los servidores especificados en las actividades derivadas ni los especificados globalmente, añada al final una línea que contenga "end_of_jails".


Probar actividad

Agregar entrega
Para probar la actividad, podemos:
Subir Fichero
  • Subir un fichero con la posible solución (pestaña Entrega):
Subir fichero VPL.PNG
Editor de entregas
  • Editar la entrega (en la pestaña Editar):


El editor de entregas de un VPL, tiene los siguientes botones para ejecutar los diferentes comandos:
Editorcorto2.PNG


...y si hacemos clic en el botón (+), tendremos más opciones:
Editorlargo.PNG


Escribiremos nuestro código en el editor del programa:
Editando entrega.PNG
Ejecutar
Hacemos clic en el comando "Ejecutar" para probar la actividad y comprobar que pasa los test:


EjecutandoVPL.PNG


Laboratorios virtuales de programación

En este enlace tenemos acceso a un resumen de entregas y evaluaciones de todos los laboratorios VPL creados en el aula virtual, con distintas opciones de visualización según su estado: abiertos, cerrados, calificados,...
Laboratorios.PNG


Ejemplos de VPLs

VPL CVUEx.png
En los siguientes enlaces mostramos ejemplos de diferentes Laboratorios Virtuales de Programación creados en un aula virtual:


Volver a la página principal VPL (Virtual Programming Lab)

0.00
(0 votos)