Algoritmo de estudio ==================== El algoritmo de estudio está basado en el algoritmo de `Anki `_. Hay que tener en cuenta que se han realizado algunas modificaciones para eliminar muchas de las complejidades que tiene el algoritmo original y se ha adaptado para que cumpla las necesidades del producto. Dicho esto, la funcionalidad principal de Anki está replicada en este sistema. Conceptos clave *************** Para entender el algoritmo primero hay que familiarizarse con algunos conceptos: Opciones de respuesta --------------------- Un estudiante podrá marcar las respuestas como: - *Fácil* - *Bien* - *Difícil* - *Otra vez* Fases de aprendizaje -------------------- Todas las preguntas que realiza el usuario pasan por una fase de **graduación**. Durante esta fase, el usuario no es penalizado en el caso de que una pregunta le parezca difícil y del mismo modo, si una pregunta le parece fácil tampoco es recompensado. Entendemos por *recompensa* o *penalización* el poner esa pregunta dentro de poco tiempo otra vez o dentro de mucho, respectivamente. Para visualizar mejor este concepto vamos a ver un ejemplo: Supongamos que las fases predefinidas en el sistema son 1 y 10 y un usuario ve una pregunta por primera vez, conoce la respuesta y marca *bien* o *fácil*. En este caso, la pregunta pasaría a la siguiente fase de aprendizaje, siendo 10, la pregunta estaría lista para aparecer en 10 minutos otra vez. Tras más de diez minutos el usuario vuelve a estudiar y le vuelve a salir la pregunta pero por algún motivo se da cuenta de que no se la sabía tan bien como creía, por lo que selecciona *difícil* o *otra vez*. En este caso, se volvería a la primera fase de aprendizaje: **1**. Si el usuario marcara la pregunta como correcta dos veces de manera consecutiva, esta pregunta pasaría a estar **graduada** y el tiempo de su próxima aparición será determinada dependiendo de si le ha seleccionado **fácil** o **bien** .. note:: Las fases configuradas por defecto en el sistema son intervalos de 1, 10 y 180 minutos. Debemos de tener en cuenta que el procedimiento anterior es a nivel interno. Cuando el usuario realiza una sesion de estudio y visualiza una pregunta nueva, por requisito esta obligado a graduarla, es decir, deberá de marcar dos veces como correcta esa pregunta (*bien* o *fácil*). Facilidad --------- El factor de *facilidad* o *ease* es una de las componentes que se utiliza para determinar el tiempo que va a tardar en aparecer una pregunta, además se verá modificado de una manera u otra dependiendo de la respuesta que de el usuario a la pregunta, siempre y cuando **ya haya sido graduada**. - *Fácil*: Incrementa un 15% - *Bien*: Se mantiene igual - *Difícil*: Se decrementa en un 15% - *Otra vez*: Nada ya que se le muestra al usuario la pregunta de nuevo Intervalo --------- El factor del intervalo es la segunda componente utilizada para relizar los calculos de los tiempos junto con el *ease* visto anteriormente. También se verá modificado en función de la respuesta que de el usuario. - *Fácil*: Se mantiene igual - *Bien*: Intervalo actual * *Facilidad* - *Difícil*: Intervalo actual * 1.2 - *Otra vez*: Nada ya que se le muestra al usuario la pregunta de nuevo Cómo funciona el algoritmo ************************** Una vez entendidos los conceptos anteriores el algoritmo se puede resumir en: *Intervalo* * *Facilidad* = Número de días que hay que incrementar Personalización del algoritmo ***************************** Existen ciertas variables que son configurables en el sistema y que se pueden ir modificando para ir afinando el algoritmo como se desee. - Valor inicial de fácilidad: Es el valor de *Facilidad* que se configura por defecto en las nuevas preguntas. Por defecto ``1.2``. - Bonificación por respuesta fácil a la facilidad: Multiplicador extra que se puede aplicar para modificar la facilidad en el caso de que se elija como respuesta *Fácil*. Por defecto ``1.0``. - Modificador de intervalo: Cada vez que se modifica el intervalo es posible aplicarle un multiplicador extra. Por defecto ``1.0``.