¡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 un texto que se propone al alumno. En este caso al alumno no se le pediría que compomga todo el fichero, sino simplemente que complete el texto que se le proporciona, rellenando 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 preguntas 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 escribiendo 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:
- Eliminar del enunciado todos los tags HTML
- Sustituir los guiones "______" por "if ndx<3:"
- Guarda un fichero con un nombre preestablecido, por ejemplo “test.py”
- Ejecutar la instrucción “python3 test.py”.
- 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, aunque podría evaluarse mediante 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: 2)
- 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 también 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



