Diferencia entre revisiones de «Ejemplo de un VPL Python»

De Documentación Campus Virtual de la UEx
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Línea 8: Línea 8:
       </span>   
       </span>   
</h5>
</h5>
=== '''Configuración''': ===
=== '''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"
::::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"


<div style="text-align:center;">[[Archivo:Configuracion_VPLPython.PNG|650px]]</div>
<div style="text-align:center;">[[Archivo:Configuracion_VPLPython.PNG|650px]]</div>


=== '''Casos de prueba''': ===
=== '''Casos de prueba''' ===
::Para este laboratorio se han implementado 3 tests de pruebas, y el fichero '''vpl_evaluate.cases''' será:
::Para este laboratorio se han implementado 3 tests de pruebas, y el fichero '''vpl_evaluate.cases''' será:
<div class="editor-indent" style="margin-left: 30px;">
<div class="editor-indent" style="margin-left: 30px;">
Línea 38: Línea 38:




=== '''Opciones de ejecución''': ===
=== '''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''' :
::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''' :
<div style="text-align:center;">[[Archivo:OpEjecucion_VPLPython.PNG|650px]]</div>
<div style="text-align:center;">[[Archivo:OpEjecucion_VPLPython.PNG|650px]]</div>




=== '''Ficheros requeridos''': ===
=== '''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.  
::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.
::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.
Línea 49: Línea 49:
<div style="text-align:center;">[[Archivo:FichRequeridos_VPLPython.PNG|650px]]</div>
<div style="text-align:center;">[[Archivo:FichRequeridos_VPLPython.PNG|650px]]</div>


=== '''Ajustes avanzados''': ===
=== '''Ajustes avanzados''' ===
::* '''Ficheros para la ejecución'''
::* '''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.
::::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.
Línea 146: Línea 146:
::* '''Servidores de ejecución locales'''
::* '''Servidores de ejecución locales'''


=== '''Probar actividad''': ===
=== '''Probar actividad''' ===

Revisión del 10:15 15 dic 2020

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.
        

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
  • Ficheros a mantener mientras se ejecuta
  • Variaciones
  • Comprobación de servidores de ejecución
  • Servidores de ejecución locales

Probar actividad