Herramientas de usuario

Herramientas del sitio


es:manual:items:generativos:jsp

¡Esta es una revisión vieja del documento!


Ejemplos de ítems generativos

JSP (Java Servlet Pages) es el mecanismo mediante el cual se puede integrar codigo del lenguaje de programación Java en una página web HTML. Para ello, JSP utiliza una serie de etiquetas en las que inserta el codigo en Java. Siette internamente compone en una misma página todo el código que se haya introducido en las secciones Enunciado, Respuestas o Patrones, Ejemplo, Ayuda y Refuerzo, crea una página en JSP, a partir de ella crea una instancia de la pregunta, utilizando un generador de números aleatorios propio y devuelve esa instancia para presentarla como una pregunta al alumno.

A lo largo de estos ejemplos se irán introduciendo los distintos conceptos e instrucciones necesarias para escribir este tipo de plantillas.

Ejemplo 1

Enunciado
<%
   Random r;
   int x,y;
 
   r       = new Random();
   x       = r.nextInt(2,5);
   y       = r.nextInt(6,9);
 
 %> Calcular el resultado de la siguiente operacion: <%= x %> * <%= y %> 
Patron respuesta
<%= x*y %>

Este ejemplo genera una pregunta de respuesta abierta, donde se generan dos números al azar x e y, el primero entre 2 y 5 y el otro entre 6 y 9, y se pide el valor del producto. El patrón de respuesta se calcula dinámicamente. Las siuientes dos imágenes muestran instancias obtenidas a partir de esta plantilla:






Lo primero que llama la atención es el uso de un objeto de la clase Random. Esta clase existe en Java, en el paquete java.util.Random, per Siette captura todas las llamadas a esta clase y las redirige a una clase propia siette.util.Random, que extiende la clase java.util.Random e incorpora algunos métodos que facilitan la generación de números y algunas otras operaciones de selección aleatoria. Para mas detalles vea la documentación completa de la clase siette.util.Random.

Al capturar todas las llamadas a la clase Random, Siette controla la instancia que se genera, de manera que una misma semilla produce siempre la misma instancia. Esto es importante porque Siette debe ser capaz de volver a presentar exactamente la misma instancia si el alumno pierde la sesion y debe reiniciar el test, o si avanza y retrocede en el test. Siette no guarda las instancias generadas, sino sólamente la semilla a partir de la cual se generó la instancia. Es importante tener esto en cuenta si de alguna manera se modifica una plantilla que ya ha sido usada. Puede que en este caso la pregunta formulada no se la misma que la que se muestre en los listados. Siette no puede saber si esto ocurre, pero como medida de control Siette guarda tambien una cadena de control (checksum) y si éste cambia muestra un aviso.

Ejemplo 1

Enunciado
<%
   double h = Random.nextDouble(5,10, 0.5);
   int m = Random.nextInt(1,5);
   double g = 9.81;
   double t = Math.sqrt(2*h / g); 
   double v = Math.sqrt(2*g*h);
%>
Un solido de <%= m %> kg. se deja caer dentro de un tubo al vacio 
desde una altura de <%= h %> metros sobre la superficie de la tierra. 
Determinar el tiempo que tarda el solido en recorrer en tubo.
Patrón respuesta
#<%= t %> s#2%
Ejemplo
<%= Random.format(t,"#.###") %> segundos
Ayuda
<%= Random.format(t,"#.###") %> segundos

En este caso se hace uso de las distintas funciones de la clase siette.util.Random para generar un enunciado y respuestas coherentes. Por ejemplo, la altura es un número entre 5 y 10 metros a intervalos exactos de medio metro. Esto se consigue con el método nextDouble. (Por cuestiones esteticas quedaria un tanto extraño que el enunciado dijera … desde una altura de 9877.9128731 metros …). Al calcular el valor de la solución se ha tenido en cuenta que el alumno puede considerar como valor para la aceleración de la graveda, bien el valor 9.81 o 10; por lo que se establece en el patrón una horquilla del 2%. En esta caso no es necesario redondear el valor, sin embargo en el ejemplo que se muestra como solución al alumno, tambien es necesario mostrar una precisión de no mas de tres decimales, suficiente para el problema, por lo que se usa la función format

es/manual/items/generativos/jsp.1621942622.txt.gz · Última modificación: 2021/05/25 11:37 por root

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki