sábado, 7 de septiembre de 2024

Evaluación. Ítem.

Ítem de opción (b1). Varias opciones. Forma simple.

Otra forma en que se puede presentar un ítem es cuando debemos elegir una entre varias opciones. En este caso no se trata de señalar si el enunciado es correcto o no, como en el caso de la [entrada anterior], sino de elegir cual de las respuestas que se presentan como posibles (normalmente cuatro o cinco) es la correcta o, en algunos casos, la mejor de las opciones. En este tipo de ítem también es adecuado usar el control Botón de opción, ya que sólo se puede optar por una de las opciones. 


Este tipo de ítem también es frecuente (incluso más que el de V/F) en las pruebas y ejercicios de comprensión lectora (1). Normalmente se plantea una pregunta a la que se dan una serie de alternativas de respuesta. Una de ellas es correcta y el resto son falsas (distractores).

Los planteamientos de trabajo suelen ser de dos tipos básicos: o bien se trata de una respuesta literal (está expresada como tal en el texto con el que se trabaja) o requiere algún tipo de inferencia, bien lingüística o bien de tipo lógico. Dentro de las inferencias se pueden diferenciar dos niveles: las inferencias que se realizan a partir de la información explicitada en el texto y las que requieren hacer uso de conocimientos previos, sin que sea suficiente el mero conocimiento del contenido textual.

A su vez los distractores también pueden ser analizados en cuanto a la información que contienen: pueden ser distractores cuyo contenido carecen de relación con la pregunta que se formula o distractores con un mayor o menor nivel de similitud con la respuesta correcta. En este segundo caso también podemos formular distractores próximos al contenido textual o al recursos a algún tipo de inferencia.

Ambas dimensiones del ítem, y el uso estratégico que se haga de ellas, hacen que una prueba basada en este tipo de ítem sea muy interesante para evaluar no sólo el nivel de comprensión lectora, sino también el tipo de estrategias que emplea el alumno en ese proceso. Y para ello puede ser el útil el análisis de los aciertos y también el de los errores.

Aunque estas cuestiones son de gran interés para la formulación de pruebas y los procesos de análisis de los resultados, en lo que a esta entrada se refiere, lo que aquí nos interesa son las implicaciones que este tipo de ítem tiene para la elección del control de formulario y el modo de análisis de los resultados que derivan de su uso.

Desde esta perspectiva cabe decir que, además de que es conveniente utilizar botones de opción como control-input, su implementación es diferente a la que se usa en ítem V/F, pero más en lo formal que en el procedimiento a seguir. Veámoslo mediante un ejemplo: 


Puedes comprobar que se trata del mismo texto que empleamos en la entrada en la que se explica el uso de ítem V/F, pero que ahora cambia el estilo y tipo de las preguntas y, lo que es aquí más definitorio, el modo en que se presentan los controles-opciones de respuesta:
  •  Las opciones se escriben "dentro" del control, mediante su funcionalidad Etiqueta (Propiedades |General | Etiqueta)
  • Cada botón tiene su propio nombre (Propiedades |General | Nombre) que componemos con un valor numérico sucesivo para facilitar su posterior manejo mediante código (btn1... btnZ)
  • Cada conjunto de botones se establece como tal en relación al ítem mediante el mismo identificador en Nombre del grupo (Propiedades |General | Nombre del grupo)
  •  Cada botón se asocia a una celda diferente pero que mantiene cierta afinidad con las del resto de los botones del grupo (Propiedades | Datos | Celda enlazada). De esta forma es posible eliminar las activaciones de los botones mediante código, una vez resuelta la actividad. 
De este proceso garantizamos el correcto funcionamiento de los botones como opción alternativa en función del ítem, así como su posterior manejo mediante código (2).

Una vez que hemos implementado los controles en el formulario, deberemos concretar la forma en que se van a analizar las respuestas, ya que en función de la opción que se elija, así se concretará el modo en que se aborde el proceso mediante código.

La primera y más simple de las opciones de análisis es limitarse a identificar al acierto vs. error en cada uno de ellos. En este caso no nos interesa que opción incorrecta haya tomado como cierta el alumno, sino únicamente el hecho de que sea o no sea la opción predefinida como correcta (3). Pero si nos interesa analizar el error, y no sólo conocer el nivel de acierto, entonces el planteamiento anterior resulta insuficiente e inadecuado. Pero vayamos por partes.

En el primer caso, cuando sólo queremos realizar un análisis a partir del número de aciertos en la prueba, es suficiente con conocer cual es la respuesta correcta en cada caso y, en función de ello, establecer la puntuación que recibirá cada uno de los ítem. Dado que ese conocimiento es previo, la solución informática puede ser muy simple, aunque el nivel de automatización del proceso sea bajo y, en consecuencia, el código poco eficiente, pero también bastante simple.

Supongamos el ítem anterior, en el que la respuesta correcta es la primera opción. Conocida ésta y centrándonos en el análisis de la puntuación, el script podría ser el siguiente:

Sub Item1

' --  VARIABLES  -------------------------------------------------------

'Variables para acceso al formulario

Dim oHojaActiva As Object
Dim oPaginaDibujo As Object
Dim oFormularios As Object
Dim oFormulario As Object

'Variables para acceso a los controles y para la puntuación del ítem

Dim Botones (3) As Object
Dim RespuestaAlumno As Integer

' ----  ACCESOS  --------------------------------------------------------

oHojaActiva = ThisComponent.getCurrentController.getActiveSheet()
oPaginaDibujo = oHojaActiva.getDrawPage()
oFormularios = oPaginaDibujo.getForms()
oFormulario = oFormularios.getByName("frmItemEleccion")

'ÍTEM 1. Acceso al control (botón de opción) Correcto

Botones(0) = oFormulario.getByName("btn1")

If Botones(0).State() Then
RespuestaAlumno = 1
Else
RespuestaAlumno = 0
End If

'  --- INFORME -----------------------------------------------------------------------

MsgBox "Puntuación del alumno en el primer ítem: " & RespuestaAlumno

End Sub
 
Dado que el proceso de acceso a los objetos (hoja activa, capa de dibujo, colección de formularios, formulario activo y botones de opción) ya ha sido explicado en [esta entrada] y queda claramente representado en la parte inicial del script y que la fase informe la resumimos mediante un MsgBox, me centraré en explicar el acceso a la respuesta correcta y la puntuación del ítem. Esta parte del código se inicia con el comentario 'ÍTEM 1. Acceso al control (botón de opción) Correcto y finaliza con la instrucción previa al comentario '  --- INFORME -------------.

Haciendo uso de la matriz Botones (3) y la variable RespuestaAlumno previamente declaradas, nos basta con acceder al primero de los botones (btn1) que asignamos al primero de los componentes de la matriz destinada a ese fin (Botones(0)) mediante la instrucción ya conocida (Botones(0) = oFormulario.getByName("btn1")).

En un segundo momento, analizamos el estado (activado/no activado) de dicho botón (Botones(0).State()), condicionando la puntuación del ítem (que asignamos a la variable RespuestaAlumno) a que dicho objeto esté activado (If Botones(0).State() Then -> RespuestaAlumno = 1) o no lo esté (Else -> RespuestaAlumno = 0)

Ni que decir tiene que, conocidas las opciones correctas, lo que podemos hacer para puntuar el resto de los ítem de la prueba es generalizar el procedimiento que acabo de explicar, con lo que ya disponemos de una forma simple de trabajar con cuestionarios basados en ítem de varias opciones, aunque no estaría de más realizar algunas mejoras; las más sencillas: sustituir la variable de asignación de puntuación por una matriz para ahorrarnos la creación de varias variables y crear un procedimiento más funcional para recoger y archivar los resultados (4). Aunque caben mejoras sin salirse de la simplicidad del procedimiento, con ellas no nos alejamos mucho de la formulación más básica del procedimiento, así que no las voy a plantear aquí y las dejo a tu mano. 

Adelanto, eso sí, que existen otras formulaciones más potentes, pero también de mayor complejidad, que nos interesa conocer; pero quedarán para la siguiente entrada; así en ésta nos podemos centrar en comprender el procedimiento explicado, en mejorarlo (5) y en aplicarlo en la práctica.

Documento. En el IDE de [ItemOpcion2a.ods] puedes ver el script comentado en esta entrada. Para mayor comodidad se activa desde el botón de comando CORREGIR, pero te recomiendo que analices y trates de mejorar el código del script al que está asociado.

NOTAS

(1) Un ejemplo es la prueba Estructuras gramaticales de PROLEC, en la que se presenta una imagen y el alumno debe seleccionar una de las cuatro frases que supuestamente están representadas en ese dibujo. Curiosamente, y sin una explicación específica del motivo, en PROLEC-R fue sustituida esta presentación por su contraria: una frase (input) y cuatro dibujos, debiendo el alumno seleccionar cual de ellos representa correctamente el significado de la frase. Sería interesante estudiar las diferencias entre los resultados de ambos tipos de presentación, estudiando los propios baremos de este subtest en ambos modos de presentación del ítem. Aunque es relativamente frecuente que las opciones gráficas sustituyan a las escritas (por ejemplo, en test de comprensión oral, lectora, de conocimiento léxico o de estructuras gramaticales), en test específicos de comprensión lectora, como queda dicho, el ítem que se expone en esta entrada es de uso muy frecuente en pruebas de comprensión lectora.
(2) Ambas cuestiones son importantes para que la prueba funcione y sea analizada de forma conveniente. Por ejemplo, gracias a  la forma en que nombramos los botones podremos después trabajar adecuadamente mediante script, pero necesitamos que respondan como opción-ítem, por lo que es necesario que cada conjunto quede adscrito a un grupo. La alternativa es dar el mismo nombre a los botones-opciones del ítem, pero esto nos crea problemas para el posterior análisis de las respuestas.
(3) En cierto modo, pero no en sentido estricto, este modo simplificado de análisis acerca este tipo de ítem al de V/F, ya que las respuesta final se define únicamente en estas dos posibilidades.
(4) Cierto que nos faltaría desarrollar un procedimiento más funcional para registrar y almacenar los resultados. Un ejemplo podría ser el que empleamos en los ítem de opción V/F ([Ver en el documento adjunto a esta entrada]). En el documento que anexo a la actual puedes encontrar un desarrollo simple y acumulativo del procedimiento que explica en el texto.
(5) Ya dije que esas posibles mejoras corren de tu cuenta, aunque te recomiendo que lo hagas; así desarrollarás tu lógica de programación y aplicarás aprendizajes anteriores. Una de esas propuestas de mejora podría ser crear funciones o subrutinas que reduzcan la repetición de instrucciones en el script principal. Otra la creación de ese procedimiento de almacenamiento de los datos resultantes de la aplicación de la prueba, incluyendo el cálculo de la puntuación total.