Project

General

Profile

Feature #7212

Preguntas calculadas. Kalkulitaj demandoj. Calculated questions.

Added by Guillermo Molleda over 5 years ago. Updated about 4 years ago.

Status:
Feature implemented
Priority:
Normal
Assignee:
Category:
Exercises
Target version:
Start date:
18/07/2014
Due date:
% Done:

100%

Estimated time:
Spent time:
Complexity:
Normal
SCRUM pts - complexity:
?

Description

Mi lengua materna:
Una pregunta que contenga variables en vez de datos: X, Y, o resultados a partir de las mismas (=Máximo(X+Y))...
Las respuestas pueden ser fórmulas que usen esas variables: X+Y, X^Y, redondear(X;2)+redondear(Y;2)
Las fórmulas pueden usar funciones: redondear(N;decimales), si(comparación;resultado si es verdadero; resultado si es falso), ...
Los valores se puedan reutilizar en el conjunto de preguntas pertenecientes a un mismo examen o cuestionario: así se puede escribir un enunciado y varias preguntas a partir de él.

Moodle es ahora mismo el más avanzado, las variables se escriben entre llaves: {variable}, los resultados también: {={variable}*2}, incluyendo funciones.
Pero a Moodle le falta:
No tiene una función condicional.
No puedes crear variables a partir de otras: no sirve {{z}={x}+{y}} para luego usar z.
En la primera pregunta de un cuestionario, de tipo Descripción, no puedes usar las variables por no ser una pregunta de tipo calculada.

Notar que Moodle también tiene una pregunta especial llamada "Descripción" que me sirve para poner un enunciado, el fallo es que tengo que dejar en el texto de tal enunciado nombres de variables: El niño tiene X euros y la niña le da Y euros, y luego al crear las preguntas ya uso los comodines: Si X es {x} euros e Y es {y} euros, ¿cuántos euros tiene ahora el niño?. Luego otra pregunta distinta: "Y si la niña en vez de darle {y} euros se los hubiera quitado, ¿cuánto dinero le quedaría al niño?". Otro problema en este caso es que luego Moodle no deja elegir el orden de las preguntas ya creadas en la actividad, sólo permite crear una nueva o coger una al azar entre las existentes en una categoría. Faltaría poder escoger el orden de las preguntas en la actividad.

Este tipo de preguntas son esenciales en muchas ciencias, tanto puras como sociales.

¿Y si ya lo tiene Moodle, por qué puedo querer que lo tenga Chamilo? Pues porque Chamilo tiene otras muchas cosas mejores que Moodle y esto de las preguntas calculadas es una de esas cosas que obligan a usar Moodle en vez de Chamilo.

La internacia lingvo:
Demandojn enhavanta datumoj variabloj anstataŭ: X, Y, aux rezultoj de la sama (= Max (X + Y)) ...
Respondojn povas esti formuloj kiu uzas tiujn variablojn: X + Y, X ^ Y, rondaj (x 2) + rondaj (Y, 2)
Formuloj povas uzi funkciojn: rondaj (N; dekuma) se (komparo, rezulto, se vera, rezulto se malvera), ...
La valoroj povas esti reutilizados en ĉiuj demandoj kiuj apartenas al la sama testo aŭ demandaron do vi povas skribi deklaron kaj kelkaj demandoj el ĝi.

Moodle estas nun la plej progresinta, variabloj estas enmetitaj en krampoj: {variablo}, la rezultoj ankaŭ: {= {variablo} * 2}, inkluzive de funkcioj.
Sed Moodle malhavas:
Tie estas kondiĉa funkcio.
Vi ne povas krei el aliaj variabloj: ne servi {{z} = {x} + {y}} tiam uzi z.
En la unua demando de demandaro, ĝi estas specon priskribon, vi ne povas uzi variablojn por ne esti kalkulita demando tipo.

Language that discriminates against the poor can not afford the cost of learning:
Questions containing data variables instead: X, Y, or results from the same (= Max (X + Y)) ...
Responses may be formulas that use these variables: X + Y, X ^ Y, round (x, 2) + round (Y, 2)
Formulas can use functions: round (N; decimal) if (comparison, result if true, result if false), ...
The values ​​can be reused in all questions belonging to the same test or questionnaire so you can write a statement and several questions from it.

Moodle is right now the most advanced, variables are enclosed in braces: {variable}, the results also: {= {variable} * 2}, including functions.
But Moodle lacks:
There is a conditional function.
You can not create from other variables: no use {{z} = {x} + {y}} then use z.
In the first question of a questionnaire, it is of type Description, you can not use variables for not being a calculated question type.


Files

icon-exercise.png (114 KB) icon-exercise.png Alex Aragon, 02/10/2014 00:56
iconos.png (61.8 KB) iconos.png Alex Aragon, 02/10/2014 22:29
icons_answer.zip (130 KB) icons_answer.zip Alex Aragon, 03/10/2014 01:20
svg.zip (88.7 KB) svg.zip Alex Aragon, 03/10/2014 01:33
Selection_002.png (49.2 KB) Selection_002.png Julio Montoya, 15/10/2014 09:06
Selection_003.png (5.3 KB) Selection_003.png Julio Montoya, 15/10/2014 09:06

Related issues

Related to Chamilo LMS - Feature #7309: New icons for questions typesFeature implemented03/10/2014

Actions

Associated revisions

Revision a2ff44cf (diff)
Added by Imanol Losada about 5 years ago

Add calculated answers feature. Doesn't include icons. - refs #7212

Revision 0213ced5 (diff)
Added by Imanol Losada about 5 years ago

Calculated answers icons - refs #7212

Revision 65ed3e77 (diff)
Added by Imanol Losada about 5 years ago

Minor - Coding style and phpblock - refs #7212

Revision 17099c33 (diff)
Added by Imanol Losada about 5 years ago

Check this library is under New BSD License - refs #7212

Revision cc2b1c5c (diff)
Added by Imanol Losada about 5 years ago

Remove c_id warning message. Now if a calculated question is answered it can be edited - refs #7212

Revision 635bdc09
Added by Imanol Losada about 5 years ago

Remove several warning messages. Now if a calculated question is answered it cannot be edited. Resolve trad4all conflict when merging - refs #7212

Revision a242d7e1 (diff)
Added by Imanol Losada about 5 years ago

Fix get_course_table() and course_code issues - refs #7212

Revision a0608f8a (diff)
Added by Imanol Losada about 5 years ago

Fix a little big bug - refs #7212

Revision 5045c9b8 (diff)
Added by Imanol Losada about 5 years ago

Remove var_dump - refs #7212

History

#1

Updated by Yannick Warnier over 5 years ago

  • Category set to Exercises
  • Target version set to 2.0
#2

Updated by Yannick Warnier over 5 years ago

  • Status changed from New to Assigned
  • Assignee set to anibal copitan
  • Target version changed from 2.0 to 1.9.10
#3

Updated by Guillermo Molleda about 5 years ago

Tener en cuenta que deben poderse exportar e importar este tipo de preguntas, y a ser posible poder importarlas desde copias de seguridad de Moodle.

Notu, ke ĝi devas esti ebla por eksporti kaj importi tiujn tipojn de demandoj, kaj se eblas importi ilin el kopioj Moodle.

Note that it must be possible to export and import these types of questions, and if possible to import them from backups Moodle.

#4

Updated by Yannick Warnier about 5 years ago

  • Status changed from Assigned to New
  • Assignee deleted (anibal copitan)
#5

Updated by Imanol Losada about 5 years ago

  • Assignee set to Imanol Losada
#6

Updated by Alex Aragon about 5 years ago

Aprovechando que se a creado un nuevo icono para esta herramienta esta es mi propuesta para remplazar los iconos existentes y mejorar un poco el aspecto y estética de esta sección...

Dejo para comentarios...

#7

Updated by Yannick Warnier about 5 years ago

  • Status changed from New to Assigned
Conversado con Alex:
  • los colores tienen que ser verificados antes de integrarlos en Chamilo (no parecen suficientemente neutros)
  • se tiene que mantener más similitud con los iconos actuales, ya que es un aspecto importante de la usabilidad no cambiar demasiado de una versión a la otra
  • se recomienda dejar 2 elementos en cada icono (en lugar de 3 como propuesto) para dejar espacio para (punto siguiente)
  • se remplaza el "+" verde por un asterisco amarillo, para combinar con la "terminología" visual del resto de las herramientas
#8

Updated by Alex Aragon about 5 years ago

Estos son los cambios siguiendo las recomendaciones de Yannick, y combina con el tema por defecto de Chamilo

- Añadi la estrellita amarilla que indica que el icono permite crear un nuevo proceso, tambien he eliminando la esquina doblada.
- Reduje la cantidad de expresiones dentro del icono para evitar saturación.
- Rediseñe el icono de imagen, manteniendo el árbolito como referencia.
- El icono para la herramienta Pregunta Calculada lo representa el signo de una función ecuacional.
- El banco de preguntas ahora es representado por una caja de seguridad en el entorno de cuadro.

Espero respuestas positivas. :P

#9

Updated by Imanol Losada about 5 years ago

Multiple random calculated answers can be created for each question. Only one step (one formula) per question is supported. Scoring is not working properly, will be fixed soon.

#10

Updated by Alex Aragon about 5 years ago

Aquí envío los iconos para reemplazar en los ejercicios, adjuntando el nuevo icono de pregunta calculada. el primer zip son de imágenes PNG

#11

Updated by Yannick Warnier about 5 years ago

Los iconos en sí (dado que son de un contexto más ámplio que solo las preguntas calculadas) deberían ser gestionadas en #7309 ahora.

#12

Updated by Alex Aragon about 5 years ago

Este archivo contiene los iconos en formato editable SVG

- Ok también lo subo en esa tarea...

#13

Updated by Imanol Losada about 5 years ago

Fix random questions mess and scoring error. Finally it's functional but there are minor glitches to be fixed before doing a PR.

#14

Updated by Imanol Losada about 5 years ago

  • Status changed from Assigned to Needs testing
  • Assignee changed from Imanol Losada to Yannick Warnier
  • % Done changed from 0 to 70
#16

Updated by Julio Montoya about 5 years ago

How does it works?

In the interface the examples are not clear.

I entered this (see image) and then I have an error in chrome after submitting.
You should propose another easy example like "2 x 5 = 10"

√ x ÷ y  × e (ln(pi)) = sqrt([x]/[y])*(e^(ln(pi)))

Also the "×" is very confusing with "x" is not better to use "*"?

#17

Updated by Julio Montoya about 5 years ago

Did you test the course copy, exercise copy, question duplicate, question copy, question pool features with this new type of question?
Also did you test that it works fine inside LP? (because of the js code).

#18

Updated by Imanol Losada about 5 years ago

It seems my formula example was not clear... Equal's sign left part ( √ x ÷ y × e (ln(pi)) ) represents human notation and the right part ( sqrt([x]/[y])*(e^(ln(pi))) ) how would you write it in the formula field.

Course copy [OK]
Exercise copy [OK]
Question duplicate [OK]
Question copy [OK] Note: Due to question's type logic it picks answers from its "answer pool" randomly, so answers shown between original and copied questions are unlikely to be the same when taking a test.
Question pool features [OK]
LP [OK]

Everything has been tested without finding any error.

#19

Updated by Julio Montoya about 5 years ago

When enabling the "remind me" exercise feature I have this notices:

Notice: Undefined index: calculatedAnswerId in main/exercice/exercise.class.php on line 2526
#20

Updated by Julio Montoya about 5 years ago

Imanol Losada wrote:

It seems my formula example was not clear... Equal's sign left part ( √ x ÷ y × e (ln(pi)) ) represents human notation and the right part ( sqrt([x]/[y])*(e^(ln(pi))) ) how would you write it in the formula field.

The text should say something like:

Example of formula: sqrt([x]/[y])*(e^(ln(pi)))
Preview of formula: √ x ÷ y × e (ln(pi))

The list of notations are available here: "Link to notations"
When you click to "Link to notations" you will see the list of all math codes "sqrt, ln, pi", etc

#21

Updated by Julio Montoya about 5 years ago

After saving a question with [X] and [Y]


Dev message: please add the c_id field in this query or report this error in support.chamilo.org 
DELETE FROM c_quiz_answer  WHERE question_id = '201' 

 Warning: illegal character '[' in /var/www/html/chamilo19/main/inc/lib/evalmath.class.php on line 360
Call Stack
#    Time    Memory    Function    Location
1    0.0000    248144    {main}( )    ../admin.php:0
2    0.0900    5030384    require( '/var/www/html/chamilo19/main/exercice/question_admin.inc.php' )    ../admin.php:529
3    0.1006    5306104    CalculatedAnswer->processAnswersCreation( )    ../question_admin.inc.php:63
4    0.1010    5323200    EvalMath->evaluate( )    ../calculated_answer.class.php:193
5    0.1011    5323928    EvalMath->nfx( )    ../evalmath.class.php:149
6    0.1011    5327896    EvalMath->trigger( )    ../evalmath.class.php:185
7    0.1011    5327944    trigger_error ( )    ../evalmath.class.php:360

Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in /var/www/html/chamilo19/main/inc/lib/database.lib.php on line 478
Call Stack
#    Time    Memory    Function    Location
1    0.0000    248144    {main}( )    ../admin.php:0
2    0.0900    5030384    require( '/var/www/html/chamilo19/main/exercice/question_admin.inc.php' )    ../admin.php:529
3    0.1006    5306104    CalculatedAnswer->processAnswersCreation( )    ../question_admin.inc.php:63
4    0.1017    5335608    Answer->save( )    ../calculated_answer.class.php:208
5    0.1018    5336456    Database::escape_string( )    ../answer.class.php:522
6    0.1018    5336552    mysql_real_escape_string ( )    ../database.lib.php:478
#22

Updated by Yannick Warnier about 5 years ago

  • Status changed from Needs testing to Assigned
  • Assignee changed from Yannick Warnier to Imanol Losada
#23

Updated by Imanol Losada about 5 years ago

Julio Montoya wrote:

After saving a question with [X] and [Y]

[...]

Julio, I can't reproduce this error. The example works fine for me. How did you do to trigger that error?

On the other hand, I have fixed notices and warning messages and added a formula notation reference translated to English and Spanish.

I think I understood what you did. You wrote your problem variables uppercase and your formula variables lowercase, isn't it? This behaviour is intended because there are formulas like "(G * d^2) / g" where "G" and "g" are different variables.

#25

Updated by Imanol Losada about 5 years ago

  • Assignee changed from Imanol Losada to Yannick Warnier
#26

Updated by Yannick Warnier about 5 years ago

  • Assignee deleted (Yannick Warnier)
#27

Updated by Yannick Warnier about 5 years ago

Imanol, te dejé comentarios en Github. por favor revisalos

#28

Updated by Yannick Warnier about 5 years ago

  • Status changed from Assigned to Feature implemented
  • Assignee set to Imanol Losada
  • % Done changed from 70 to 100

Reviewed and merged. There might still be a few things to improve for future versions, but that's why we put the "beta" on the icon :-)

#29

Updated by Guillermo Molleda about 4 years ago

Hola: Gracias por la funcionalidad aportada, pero he detectado un fallo.
Al editar una pregunta calculada, cambia el texto de las variables por un valor de las mismas y obliga a volver a escribir cada [variable], además al volver a escribir la varible vuelve a poner decimales ".00" a los valores límite, obligando a borrar cada .00 si se quieren usar números enteros.

Por otro lado no encuentro forma de importar un fichero de preguntas exportado desde Moodle. El fichero de exportación de Moodle está en formato XML e incluye los gráficos que puedan aparecer en el enunciado de las preguntas en formato binario, por ejemplo esto es un trozo del fichero XML exportado desde Moodle:
<!-- question: 258 -->
<question type="calculatedmulti">
<name>
<text>CAFra n</text>
</name>
<questiontext format="html">
<text><![CDATA[<p>La e... {cs}*{as} ... <br /><img src="@PLUGINFILE@/dimFnFnc.png" alt="Dimensión Financiera de la Financiación" width="389" height="220" /></p>]]></text>
<file name="dimFnFnc.png" path="/" encoding="base64">iVBORw0KGgoAAA...</file>
</questiontext>
<generalfeedback format="html">
<text></text>
</generalfeedback>

Muchas gracias en cualquier caso por el trabajo ya realizado.

#30

Updated by Guillermo Molleda about 4 years ago

Ahondando en el tema de los valores a tomar por las variables, parece necesario guardar en Chamilo el dato del número de decimales para los valores de cada variable, por ejemplo si guardas límite inferior 5 y límite superior 7, podemos añadir que se tengan 2 decimales y así los valores posibles serían 5 - 5,01 - 5,02 - ... - 6,98 - 6,99 - 7.
Podría darse el caso de querer optar solamente a un conjunto de posibles valores, por ejemplo los números primos del 1 al 50. Podría añadirse una función de dominio para dar a una variable un valor aleatorio entre una serie de valores predefinidos en un conjunto: [x]=dominio(1;2;3;5;7;11;13;17;19;23;29;31;37;41;43;47) e incluso yendo más allá podría haber una función que determinara el valor a escoger según otra variable: [a] entre 1 y 5, luego [x]=valordominio([a];1;2;3;5;7) e [y]=valordominio([a];12;3;8;5;10) de tal forma que podríamos establecer para el problema varios grupos de datos de variables predefinidos: así siempre que [x] sea 2, [y] será 3, mientras que si [x] hubiera sido 7 entonces [y] sería 10.
Esto salvaría cualquier tipo de necesidad en cuanto a establecer valores para las variables, y sería fácil hacer una función de importación de preguntas calculadas desde Moodle, ya que Moodle guarda conjuntos de datos posibles para cada variable del problema, sólo calcula los valores de las variables una vez (tantas veces como grupos de datos queramos) al crear la función, y luego elige para el problema uno de los grupos ya calculados.

Aún así hay otra necesidad: poder reutilizar los mismos valores entre distintas preguntas, por ejemplo un problema sería para hallar el área y la superficie de un determinado rectángulo, sería interesante que los valores de variables con el mismo nombre no cambiaran entre preguntas de un mismo ejercicio o examen. Eso sería una opción a nivel de grupo de preguntas.

Como son varios temas, y son algo complejos, si necesitan una mejor explicación no duden en comentarlo.

#31

Updated by Yannick Warnier about 4 years ago

Estimado Guillermo,

Como esta tarea ya cumplió con su objetivo inicial (de introducir esta funcionalidad en versión "beta"), fue cerrada. Por lo tanto, te invito a registrar tus propuestas en una nueva tarea (con un enlace a la de aquí), sin lo cual no podremos atenderla correctamente dentro de nuestro flujo de trabajo.

Como siempre, tomamos en consideración todas las sugerencias, pero solo implementamos en base a criterios de popularidad del pedido (cuantas personas apoyan la sugerencia), a la participación activa de la persona que lo registra (si has hecho otras contribuciones antes) y en base a nuestro tiempo disponible para implementarlo.

#32

Updated by Guillermo Molleda about 4 years ago

Gracias, no me atreví a abrir otro por no duplicar hilos con un mismo objetivo. Lo pondré en un nuevo hilo y por supuesto que sin presión alguna para hacerlo porque al ser software libre y gratuito (por esto último) es lógico que así sea.

La primera parte era un error de esta beta (el perder el nombre de las variables y los decimales al editar la pregunta).

Saludos.

Also available in: Atom PDF