PHP - crear evaluaciones en linea

   
Vista:

crear evaluaciones en linea

Publicado por nharmando (16 intervenciones) el 31/07/2008 22:54:35
Hola a todos,
Estoy desarrollando una aplicación en línea y quiero saber como puedo evaluar preguntas de complemento.
El estudiante ingresa su respuesta y la compara con el texto almacenado en la base de datos.
Pero no puedo hacer así: $respuesta="mi respuesta", ya que pueden ser frases, texto de párrafo, además puede ser que la respuesta del estudiante esté correcta pero el sistema la toma como mala sino la escribe como está en la respuesta (con acentos).
Cuál es la mejor forma de hacer algo parecido?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:crear evaluaciones en linea

Publicado por Luis Jordán (60 intervenciones) el 01/08/2008 10:27:08
Creo que la mejor opción es que sean respuestas tipo text. De este modo siempre habrá una que será la correcta y las cadenas serán identicas.
Un saludo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear evaluaciones en linea

Publicado por Pineapple (183 intervenciones) el 01/08/2008 19:47:12
Hola Armando,

Mira se lo que tratas de hacer y la vdd si esta un poco complicado lo que dices, no complicado si no agobiante jeje, eso lo podrías hacer con inteligencia artificial =)

Pero bueno mira si quieres hacer lo que tu dices necesitarias poner palabras claves, y separar las cadenas, por ahora solo te voy a poner como se haria a nivel prototipo, si te gusta pues lo aplicamos a nivel programacion, ejemplo:

Quién invento el bombillo eléctrico?

Y ellos responden:

El bombillo lo invento thomas alba edisson en tal año.

Entonces tu en tu bd de datos pondrias un campo de palabras claves, o algo asi, y la respuesta que ellos te estan contestando la coges y la separas tomando como delimitador el espacio,

y te quedaria un array de 10 (en este caso), [El] [bombillo] [lo] ......... [año] y luego ese array lo checas con tu respuesta y las palabras claves en la bd. Asi de que si en tu bd tenias edisson, o algo asi y coinciden una o dos pues es bueno ya dependiendo de lo que tu elijas, eso es lo que mas o menos se me ocurre, checatelo y lo vemos oks?

Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear evaluaciones en linea

Publicado por nharmando (16 intervenciones) el 01/08/2008 21:31:14
Bueno, unas peronas me indican que se puede hacer con Inteligencia artificial, pero no tengo idea, sino hay otra forma bueno probemos la opción que tú dices de dividir las frases en arreglos y los comparamos.
Me imagino que si lo hacemos de esta forma nos hasta podemo comparar el orden en cómo se escriben las palabras para ver si concuerda concuerda con el orden de las palabras en la BD.
El probelma es que el estudiante puede escribir palabras con acento y la respuesta correcta lleva acento la toma como mala.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear evaluaciones en linea

Publicado por Diego Romero (1450 intervenciones) el 01/08/2008 23:13:31
... O puedes usar una expresión regular como respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear evaluaciones en linea

Publicado por Pineapple (183 intervenciones) el 02/08/2008 01:22:11
Asi es como dice Diego, pero bueno dime si quieres hacer todo para ir paso por paso pero necesitamos que tu tambien te informes, para ayudarte recuerda que somos un apoyo y aveces nosotros no sabesmo tampoco (somos humanos jeje) oks =)

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear evaluaciones en linea

Publicado por Diego Romero (1450 intervenciones) el 02/08/2008 01:55:48
Mi idea es la siguiente. Almacenar las respuestas no como palabras sino como expresión regular de la palabra que es la respuesta. Por ejemplo: supongamos que la pregunta es...

¿Capital de Paraguay?.

Como el ser humano no es perfecto, se puede dar la misma respuesta con cuatro palabras diferentes:
- asunción
- asunsión
- asuncion
- asunsion

Entonces en vez de guardar "asunción" como respuesta correcta, almacenar:
asun(c|s)i(o|ó)n

y luego evaluar esa expresión regular con preg_match();

En el ejemplo de Pineapple cuya respuesta es:
Thomas Alba Eddison

El problema es que si alguien escribe el primer nombre del inventor en castellano lo haría como:
Tomás Alba Eddison

Lo cual estaría (discutiblemente) bien, entonces la expresión sería
t(h|)om(a|á)s

Hice unas pruebas, y para esa respuesta, la expresión regular sería:
t(h|)om(a|á)s alba e(dd?)ison

Esto se entiende como "con o sin 'h' después de la 't', con 'a' o bién con 'á' entre la 'm' y la 's' y una o dos pero no ninguna o más de dos 'd' entre la 'e' y la 'i'"

Bueno, esa es la idea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear evaluaciones en linea

Publicado por nharmando (16 intervenciones) el 02/08/2008 02:26:53
Hey es un verdadero reto verdad, eso de las expresiones regulares está bueno, pero también tenemos que contruir de esa forma un script php que genere las espresiones regulares que necesitamos.
La idea es que el usuario profesor ingrese la pregunta y la respuesta correcta, aquí es donde viene el reto :-(, cómo hacer para que esa respuesta pase a expresiones regulares.
Eso lo veo difícil a manera personal ya que soy principiante.

Veo que el post se va haciendo m,uy largo y el tema se va desplazando a otras páginas.

Les dejo mi correo: armando.nh@gmail.com. Seguimos en contacto tengo que salir y no tendré internet en una semana, no crean que dejo en el olvido el tema porque se puso bueno
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear evaluaciones en linea

Publicado por nharmando (16 intervenciones) el 02/08/2008 02:31:26
se me ocurre que el texto introducido por el usuario lo podemos partir por palabras y ahí las mandamos a un arreglo, luego a cada posición del arreglo debemos buscar la manera de generar una expresióin regular para la palabra y guardar esa expresión regular en la base de datos, luego cuando el estudiante realice la prueba comparará su respuesta con la expresión regular guardada.
Es una idea, si alguien tiene una solución más sencilla, mejor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear evaluaciones en linea

Publicado por Adrian Rivera  (7 intervenciones) el 03/08/2008 05:36:16
Bueno amigos, la vez pasada me encontre con la idea de crear un sistema de evaluacioens en linea, donde un docente accedia a la aplicacion y subia los examenes y el estudiante se conectaba a la aplicacion a contestar las preguntas.

Mas o menos te voy a dar una idea

La forma mas facil de hacer esto es crear una tabla con las siguientes campos
codigo_pregunta
Descripcion_pregunta
opcion1
opcion2
opcion3
opcion4
opcioncorrecta

Mediante php desplegamos el examen, ya despues sera crear un script que compare las respuestas que dio el usuario con la de la opcion correcta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear evaluaciones en linea

Publicado por Diego Romero (1450 intervenciones) el 03/08/2008 15:17:29
Claro, eso es un exámen con "multiple choice", que es lo que quiere evitar hacer el amigo nharmando.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear evaluaciones en linea

Publicado por Adrian Rivera (7 intervenciones) el 07/08/2008 06:40:13
Considero que de esa forma no se tiene un control sobre la aplicacion, supongamos que una pregunta sea por dercirlo ¿de que color es el cielo? y el usuario digite asul. En teoria tiene la razon porque el cielo es azul pero si escribe azul con S el programa como hace para proceder si dar la pregunta por buena o mala.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear evaluaciones en linea

Publicado por nharmando (16 intervenciones) el 11/08/2008 18:41:57
Hola a todos,
Tienen toda la razon asi que lo que pienso hacer es que la apilcacion me devueva la nota solamente para cuando el test sea se seleccion multiple y cuando sea de complemento, que se almacene la respuesta y el docente se conecte luego para revisar la respuesta del estudiante y le asigne ponderacion.
Bueno aproevecho para hacerles otra pregunta: como hago para establece un limite de tiempo?. Es decir si un test dura 30 minutos o una hora como hago para que cuendo se llegue a ese limite se cierre la aplicacion y se tomen en cuenta hasta donde habia llegado el estudiante dandole solucion?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear evaluaciones en linea

Publicado por Adrian Rivera (7 intervenciones) el 12/08/2008 23:29:40
Mira yo lo resolvi de la siguiente manera

//Obtengo la cantidad de minutos de la prueba
$Minutos=ObtieneCampo('TEMAS_EVALUADOS', 'codigo_tema_evaluado', $CodigoTema, 'Tiempo', $this->Conexion);

echo<<<contador
<script>

//La funcion se ejecutara una vez la pagina este cargada totalmente
$(document).ready(CorreTiempo);

//Defino variables para las medidas de tiempo
var milisegundos=0
var segundos=0
var minutos=0;

function CorreTiempo(){
//si pasan nueve milisegundos
if (milisegundos>=9){
//inicie esta variablea a 0
milisegundos=0
//incremento un segundo
segundos+=1
}

//si pasan 60 segundos
if(segundos == 60){
//inicie milisegundos a 0
milisegundos=0
//inicie segundos a 0
segundos=0;
//incremente un minuto
minutos+=1
}
else
milisegundos+=1
//registre los cambios
$("#contador").text(minutos+":"+segundos+":"+milisegundos);

//si el tiempo termino
if(minutos == $Minutos){
EnviarFormulario = true;
EnviarAjaxJquery();
}

//ejecute esta funcion cada milisegundo
setTimeout("CorreTiempo()",100)
}

//-->
</script>

<table align=center >
<tr>
<td colspan=2 align=center>
<p id=contador class="AvisoCaptura">00:00:00</p>
</td>
</tr>
</table>
contador;

Si necesitas mas informacion me puedes contactar por skype: aderiver o escribirme a mi correo electronico
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:crear evaluaciones en linea

Publicado por nharmando (16 intervenciones) el 12/08/2008 23:33:48
Te agradezco mucho la ayuda, voy a probar el código
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jhonny andres parra reyes

crear evaluaciones en linea

Publicado por jhonny andres parra reyes (2 intervenciones) el 10/08/2012 05:49:49
hola eso lo puede realizar utilizando una funcion que recorra toda la cadena de caracteres como la len o strope y compare
y luego declarando una sentencia de control decicion con un contador
que cuando recorra se almacene y encuentre coincidencia sume y si no reste al final compara cuantos coincidencias hubieron y presente un valor de acuerdo
cont ++
o cont--
if cont == 1
presente un resul
else if cont ==2
presente un resul
asi sucesivamente

la funcion len se aplica en la caja de texto del usuario y cuando se envía se realiza el proceso...
https://www.facebook.com/Di.Si.Web
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de jhonny andres parra reyes

crear evaluaciones en linea

Publicado por jhonny andres parra reyes (2 intervenciones) el 10/08/2012 05:53:31
para lo de los acentos se debe validar los campos de text de administrador quien digita la prueba y igualmente del estudiante quien la presenta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar