Ejemplo de un VPL Python

De Documentación Campus Virtual de la UEx
Revisión del 10:50 21 dic 2020 de Sanflores (discusión | contribs.)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

Ejemplo de un VPL Python

Vamos a crear un Laboratorio Virtual de Programación Python:
Ejemplo de cómo realizar un laboratorio que evalúa la práctica del alumno con varios casos de uso establecidos que simulan la introducción del parámetro de entrada por el usuario.. 
En este caso se evalúa la entrega realizada por un alumno, en la que se debe representar un tablero de ajedrez con las dimensiones que se indique por consola.
Referencia: http://www.science.smith.edu/dftwiki/index.php/Tutorial_Moodle_VPL_Chessboard_--_Python.. 

Configuración

En un principio, como en la creación de todas las actividades de VPL, estas serían las únicas opciones de configuración del laboratorio: Nombre y "Descripción del Laboratorio"
Configuracion VPLPython.PNG

Casos de prueba

Para este laboratorio se han implementado 3 tests de pruebas, y el fichero vpl_evaluate.cases será:

case = Test 1
input = 0
output = "
"
case = Test 2
input = 1
output = "###
###
###
"
case = Test 3
input = 8 
output = "###...###...###...###...
###...###...###...###...
###...###...###...###...
...###...###...###...###
...###...###...###...###
...###...###...###...###
......

CasosPrueba VPLPython.PNG


Opciones de ejecución

En este laboratorio nos interesa que se ejecute un script concreto de Python (PYTHON-3), y lo seleccionamos. Con el fin de que el alumno pueda comprobar su actividad antes de la entrega definitiva, activamos la opcións de Ejecutar, y para que la actividad se evalúe automáticamente, activamos la opción Evaluar, que le dará una calificación al ejercicio en función de si pasa uno, dos o los tres tests de pruebas implementados en el fichero de Casos de prueba vpl_evaluate.cases :
OpEjecucion VPLPython.PNG


Ficheros requeridos

Nuestro fichero se llama practica.py, y como hemos visto en la tabla, la extensión py es la que tienen los ficheros Python, y para el que nuestro laboratorio ejecutará el script que hemos seleccionado PYTHON-3.
En este caso, practica.py es el único fichero que se le requiere al alumno, el fichero con su entrega de la actividad. Aquí es donde el alumno debe escribir el código de la práctica.
FichRequeridos VPLPython.PNG

Ajustes avanzados

Ficheros para la ejecución
Se establecen los ficheros necesarios para la ejecución, depurado o evaluación de la entrega. Esto incluye ficheros script, programas de prueba y ficheros de datos.
En nuestro ejemplo, tenemos dos ficheros para ejecutar la entrega (vpl_run.sh y ejecutaajedrez.py) y un fichero para la evaluación que es en el que hemos definido los casos de pruebas (vpl_evaluate.cases):
FichEjecucion VPLPython1.PNG FichEjecucion VPLPython2.PNG


Ficheros de Ejecución
vpl_run.sh
ejecutaajedrez.py

  1.   #! /bin/bash

  2.  echo "#! /bin/bash"  > vpl_execution
  3. echo "python3.5 ejecutaajedrez.py" >> vpl_execution
  4. chmod +x vpl_execution


  1. #runChessboard.py
  2. import sys
  3.  
  4. #--- get dimension of chessboard
  5. N = int( input( "" ) )
  6.  
  7. #--- put N in a text file that will be used as stdin for chessboard.py
  8. file = open( "fakestdin.txt", "w" )
  9. file.write( str(N) + "\n" )
  10. file.close()
  11.  
  12. #--- make stdin read information from the text file
  13. sys.stdin = open( "fakestdin.txt", "r" )
  14.  
  15. #--- capture the stdout of the program to test into a file
  16. saveStdOut = sys.stdout
  17. sys.stdout = open( "fakestdout.txt", "w" )
  18.  
  19. #--- run the program to test ---
  20. import practica
  21.  
  22. #--- filter out junk from output of program ---
  23. sys.stdout.close()
  24. sys.stdout = saveStdOut
  25. file = open( "fakestdout.txt", "r" )
  26. text = file.read()
  27. index = text.find( "#" )
  28. text = text[index:]
  29. text = text.strip( ).strip( "\n" ) + "\n"
  30. print ( text , end= )
  31. file.close()

Límites máximos de recursos de ejecución
Aquí establecemos los 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. Para nuestro ejemplo, no hemos definido límites:
LimitesPython.PNG
Ficheros a mantener mientras se ejecuta
En esta opción marcamos los ficheros que deben permanecer durante la fase de ejecución:
FichEjecucion VPLPython.PNG
Variaciones
No se han configurado variaciones para esta actividad.
Comprobación de servidores de ejecución
En este enlace podemos comprobar el estado de los servidores de ejecución usados por esta actividad.
Servidores de ejecución locales
No se han suministrado urls de servidores de ejecución locales para esta actividad.

Probar actividad

Ejecutar
Hacemos clic en el comando "Ejecutar" para probar la actividad y comprobar que pasa los test:
Probar VPLPython.PNG Probar VPLPython2.PNG
0.00
(0 votos)