Herramientas de usuario

Herramientas del sitio


es:manual:items:externosficheroenlinea

¡Esta es una revisión vieja del documento!


Preguntas con respuestas alineadas con el texto

Una opción para las preguntas con fichero consiste en componer el fichero completando otro fichero que se propone al alumno. En este caso al alumno no se le pediría que compusiera todo el fichero, sino simplemente que completase un texto que se le proporciona, completando una serie de huecos en los lugares indicados.

La presentación es similar a las preguntas en línea de respuesta construida, salvo que en este caso la respuesta del alumno no se evalúa simplemente con un patrón, como las demás respuestas de respuesta libre, sino que se compone un fichero que se envía para evaluar mediante un script, al igual que las demás preguntas con ficheros.

Ejemplo 1

El uso mas frecuente es el de completar un cierto código de programación indicando las sentencias que faltan:

Esta pregunta no puede resolverse fácilmente mediante la evaluación por patrones, ya que las respuestas pueden ser muy distintas. En este ejemplo serían respuestas válidas, entre otras:

  if ndx<3:
  if 3>ndx:
  if ndx<=2:
  if 2>=ndx:
  if listing[ndx]<111:
  ...

En general las respuestas pueden ser mas aún mas variadas, pero hay una manera efectiva de comprobar si son correcta, que es componiendo el fichero ejecutándolo mediante el interprete de Python y comparando el resultado con el esperado. Para ello hay que completar el programa contenido en el enunciado con la respuesta dada por el alumno.

En este ejemplo el contenido del campo enunciado es el siguiente:

 <div style="display: none;">'''</div>
 <p>Completar el siguiente programa para obtener la salida:</p>
 <pre>   108
    109
    110
 </pre>
 <hr>
 <div style="display: none;">'''</div>
 <pre>listing = [108,109,110,111,112,113,114]
 for ndx in range(7):
       ___________________________
            print(listing[ndx])
       else :
            break</pre>

Para evaluar esta pregunta habría que realizar las siguientes operaciones:

  1. Eliminar del enunciado todos los tags HTML
  2. Sustituir los guiones "______" por "if ndx<3:"
  3. Guarda un fichero con un nombre preestablecido, por ejemplo “test.py”
  4. Ejecutar la instrucción “python3 test.py”.
  5. Comparar la salida con la esperada.

En realidad, las dos últimas operaciones son un caso particular de lo que hacen todas las preguntas de fichero: ejecutar un script, componer una salida y compararla con una pregunta de respuesta libre subyacente. En este caso se ha optado por la solución mas simple, usar la corrección directa de la ejecución, aunque podria evaluarse con etiquetas si se prefiere. Nótese que el enunciado contiene una parte previa al código fuente en Python, que da las instrucciones para resolverlo. 1)

Sin embargo, a diferencia de otros casos de preguntas con fichero, cuando se presenta la pregunta al alumno y se obtiene su respuesta, en la corrección no se muestra el resultado de la ejecución del script, sino simplemente la respuesta del alumno anotada mediante los iconos que indica acierto o fallo.

En caso de respuesta incorrecta, el comportamiento por defecto solo mostraría la corrección, pero si se hecha en falta el resultado de la ejecución siempre podria añadirse un refuerzo con el siguiente texto:

 La respuesta es incorrecta, este sería el resultado de la ejecución:
 <pre><code><<respuesta>></code></pre>

Usando la variable de sesión <<respuesta>>, lo que generaría la siguiente presentacion de resultados::

En las preguntas de fichero se usan y se guardan dos tipos de ficheros:

  • Los ficheros que contienen la respuesta en crudo del alumno, es decir exactamente lo que el alumno contestó. Estos ficheros tienen nombre fijos "_text1.txt", "_text2.txt", etc. (en caso de que haya varios campos a completar)
  • El fichero compuesto obtenido en el paso 3 del proceso. El nombre de este fichero se establece en la pestaña Avanzado de la sección de preguntas.

A estos ficheros se añadirán todos los que hagan falta para evaluar el fichero enviado. Puesto que se dispone tambien de los ficheros en crudo, no sería necesario componer el fichero completo, si hubiera cualquier otra forma de evaluar la corrección de los componentes

1)
A fin de que el interprete de Python no falle, estas instrucciones están entrecomilladas con el caracter ''' que usa Python para comentarios largos. Para mejorar la legibilidad se ha incluido asimismo el tag HTML <div style="display: none;"> que hace que no aparezcan al mostrar el enunciado. La primera fase de procesado al eliminar los tags HTML deja solo los caracteres que componen el comentario.
es/manual/items/externosficheroenlinea.1792975938.txt.gz · Última modificación: (editor externo)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki