Problemas con matrices automáticas y origen de aprobación

Buenas!

Quería hacer una consulta por una cuestión que surgió luego de migrar de G2 a G3.
Algo que les habíamos consultado en reuniones previas a la migración era la necesidad de separar materias que en G2 compartían código entre propuestas pero no eran equivalentes (se había parametrizado de esa forma).

Dado que en G3 la acreditación de actividades entre propuestas es transparente, lo que se hizo fue crear nuevas actividades en las versiones nuevas de los planes. A partir de ello, la vieja actividad quedó en la versión original y se crearon matrices entre versiones para acreditar esos cambios.

Por ej.: Matemática (80003) estaba incluída como actividad en “Música y Tecnología (G1)”, plan 2015 v1 y “Licenciatura en Informática (W)”, plan 2015 v1. En el versionado se incluyeron las actividades 8003C para G1 v2, y 8003N para W v2. Luego, se crearon las matrices de equivalencia correspondientes para respetar la acreditación de la actividad según el origen.

El problema que surgió con este procedimiento es que, al aplicar las matrices (utilizando “Procesar matrices de equivalencia”) no respetó la propuesta de origen de aprobación. Como resultado de ello, vemos que se acreditaron actividades que no se corresponden con el origen estipulado en la matriz.

Un caso testigo puede ser el de un alumno matriculado en G1 y W, que acredita la 80003 por Música V1 y, al correr las matrices, se le otorga la 8003C como así también la 8003N.

¿A qué se debe este comportamiento? ¿Puede tener que ver con la manera en que se ejecutaron las matrices?

Adjunto captura de una de las dos matrices que mencionaba en el ejemplo.

Saludos y gracias!


unnamed.png

unnamed.png

A ver si comprendí el caso:

Matemática (80003) esta incluída en:

  • “Música y Tecnología (G1)”, plan 2015, v1
  • “Licenciatura en Informática (W)”, plan 2015 v1.

Se versionaron estos dos planes de las dos propuestas en donde se creo una nueva actividad en cada version de plan:

  • “Música y Tecnología (G1)”, plan 2015, v1 → v2, nueva actividad 8003C
  • “Licenciatura en Informática (W)”, plan 2015 v1 → v2, nueva actividad 8003N.

Se crearon matrices de equivalencias entre la version 1 y version 2 de cada plan de estudios donde

  • G1,Plan 2015, v1 8000 → 8003C en v2
  • W,Plan 2015, v1 8000 → 8003N en v2

El alumno aprobó la actividad 8000 por alguna de las propuestas (G1 o W).
Aplican matrices de equivalencias y otorga la equivalencia de la actividad 8003C en G1, y 8003N en W.

Como el alumno esta en las dos propuestas y tiene matrices de equivalencias donde una relación de esas matrices es tener aprobada la actividad 8000, entonces se otorgaron las equivalencias que podian otorgarse en las propuestas donde se encuentra ese alumno otorgando la actividad correspondiente a cada version de plan de estudios.

Un caso testigo puede ser el de un alumno matriculado en G1 y W, que acredita la 80003 por Música V1 y, al correr las matrices, se le otorga la 8003C como así también la 8003N.
Se otorgaron equivalencias de la dos actividades, [b]8003C [/b]y [b]8003N[/b] en la [b]propuesta G1, plan 2015, v2[/b]?

Hola Alejandro

Siguiendo el ejemplo, aprueba 80003 por G1 v1 y pasado de versión, le termina acreditando

  • 8003C en G1 v2
  • 8003N en W v2

Cada vez que se cambia de version un alumno se aplican matrices de equvialencias definidas en esa nueva version del plan a donde se pasa.
En este caso debió otorgarse la equivalencia de 8003C cuando se paso de la version 1 a la version 2 en G1; y la equivalencia de 8003N cuando se paso de la version 1 a la version 2 en W
O ya estaba en la version 2 de G1 y W cuando rindió examen de 8000 por G1 (porque se puede rendir examen de actividades regularizadas en un plan o version de plan anterior si la actividad no se encuentra en la version actual) ?

Igualmente no entiendo porque no quisieran otorgarle equivalencias en las dos propuestas si definieron una matriz de equivalencias en cada version 2 del plan 2015?

Ya estaba acreditada la materia cuando el alumno estaba en la v1. No se quiere otorgar en las dos propuestas porque el espíritu de todo esto es dividir materias y acreditar el historial respetando el origen de aprobación, ya que si un alumno (en G2) acreditó Matemática de Música no le sirve como Matemática de Programación.
Es por esto que se crearon nuevas actividades específicas de cada propuesta (o Departamento) y las matrices cumplen la función de acreditar esas materias siempre y cuando se haya acreditado en el origen correspondiente.
No sé si me logro explicar.

El problema que surgió con este procedimiento es que, al aplicar las matrices (utilizando "Procesar matrices de equivalencia") no respetó la propuesta de origen de aprobación. Como resultado de ello, vemos que se acreditaron actividades que no se corresponden con el origen estipulado en la matriz.
Volvamos al caso planteado. Podes recuperar los datos de la equivalencia y ver que matriz aplicó? En la tabla [b]sga_equiv_otorgada [/b]queda registrado el grupo de equivalencias que dio origen a esa equivalencia. En la matriz de equialencias que pertenece ese grupo d eequivalencias, el destino de esa matriz debe corresponder con la version del plan a donde se otorgó la equivalencia, y el origen debe ser una propuesta/plan/version en la que el alumno aprobó la/s materias definidas en el origen de ese grupo. Pueden verificarlo
Un caso testigo puede ser el de un alumno matriculado en G1 y W, que acredita la 80003 por Música V1 y, al correr las matrices, se le otorga la 8003C como así también la 8003N.
Volviendo al caso planteado. Es correcto lo que se otorgó. El alumno tiene aprobado 80003 que esta en las propuestas G1 y W (la debe haber aprobado por alguna de las dos propuestas). Al procesar matrices para las versiones [b]V2 [/b]de [b]G1 [/b]y [b]W [/b]otorga equivalencias de [b]8003C [/b]y [b]8003N [/b]que son equivalentes a la actividad [b]80003 [/b]de la [b]V1[/b].

¿A que te referis con que no respeta el origen?

Si tomas un alumno que esta en G1 y W en V2 y que aprobó la actividad 80003; si vas a la operacion Otorgar Equivalencias, una vez por cada propuesta, y seleccionas aplicar matriz por cambio de plan deberia otorgarte la equivalencia de 8003C por G2 y 8003N cuando accedes con W.

Que opción seleccionaron en la operación PROCESAR MATRICES DE EQUIVALENCIA ?
(Adjunto imagen)

3


ProcesarMatricesEquivalencias.png

ProcesarMatricesEquivalencias.png

Ya verificamos la tabla sga_equiv_otorgada y de hecho estamos trabajando en un script sobre el modelo para eliminar las equivalencias que se otorgaron de forma errónea, rastreando en base a esta tabla para determinar la propuesta y actividad de origen que figuran en la matriz y grupo. Si la propuesta que figura en la matriz no coincide con la propuesta donde aprobó la actividad, es una equivalencia mal otorgada.

El asunto es lo que te comentaba antes y que charlamos en reuniones previas a la migración: la idea de hacer esto surge de la necesidad de separar materias (ej. 80003) que en G2 no era un problema por estar configurado para que mismo código no sea equivalente entre propuestas. El mecanismos que entendíamos podía resolver la situación era crear nuevas versiones de los planes donde la materia original no estuviese y se crearan nuevas materias específicas de cada propuesta. Para los alumnos que no hubiesen acreditado la materia era una solución limpia pero para aquellos que ya la hubiesen acreditado, no, porque al no estar en la nueva versión la perderían. Ahí entran las matrices entre versiones para acreditar esas materias de modo tal que quien hizo la 80003 en Música (aprobada por esta propuesta) tuviese la equivalencia de la 8003C y no la de la 8003N.

Entiendo todo lo que me decís que al tener aprobada la 80003 es transparente para ambas propuestas y de hecho es nos dimos cuenta que sucede desde que nos encontramos con el problema y luego verificamos en el código. El asunto es que entendíamos que la solución que te comentaba antes, debía funcionar porque al ser una matriz entre versiones con un origen bien definido, lo iba a respetar.

No logro ver la imágen adjuntada, pero la forma de correr la operación “Procesar matrices de equivalencia” es procesar matrices entre versiones, no sé si consultabas por otro parámetro.

Si la propuesta que figura en la matriz no coincide con la propuesta donde aprobó la actividad, es una equivalencia mal otorgada.
Entiendo todo lo que me decís que al tener aprobada la 80003 es transparente para ambas propuestas y de hecho es nos dimos cuenta que sucede desde que nos encontramos con el problema y luego verificamos en el código. El asunto es que entendíamos que la solución que te comentaba antes, debía funcionar porque al ser una matriz entre versiones con un origen bien definido, lo iba a respetar.
El tema es que la actividad 80003 ser una actividad comun, no importa si se aprueba en la propuesta G1 o W, será considerada aprobada en las 2 propuestas. Entonces sea que procese una matriz con origen la propuesta G1, plan 2015, version 1 o la propuesta W, plan 2015, version 1, la actividad 80003 va a reconocerse como aprobada.

Si el problema es que solo procesan matrices de equivalencias por cambio de version de plan de la propuesta G1, es decir que el origen es la propuesta G1, plan 2015 y version 1 y el destino es propuesta G1, plan 2015, version 2, entonces solo debe otorgarse la equivalencia 8003C con registro en la version 2.
Por eso te solicitaba los datos con que ejecutaron la operacion de procesar matrices de equivalencias y entender mejor el problema.
Ya que si solo procesan los alumnos que cambiaron de la version 1 a la version 2 de a propuesta G1, no deberia otorgar equivalencias en la propuesta W.
De ser este el problema, entonces esta en como se arman las querys para otorgar equivalencias y en este sentido si podes replicar el caso y enviarnos los logs asi analizamos las querys que se generan en esa operacion al procesar las matrices por cambio de version de plan de estudios.

Dado que en G3 la acreditación de actividades entre propuestas es transparente, lo que se hizo fue crear nuevas actividades en las versiones nuevas de los planes. A partir de ello, la vieja actividad quedó en la versión original y se crearon matrices entre versiones para acreditar esos cambios.
Vuelvo al 1er mensaje de este foro y consulto: ¿Las matrices de equivalencias las crearon despues de pasar a los alumnos de la version 1 a la version 2 en cada propuesta? Porque si estaban creadas antes entonces se otorgaron automaticamente al cambiar de version de plan si tenian configurado el parámetro [b]equiv_automatica_generar[/b].
No logro ver la imágen adjuntada, pero la forma de correr la operación "Procesar matrices de equivalencia" es procesar matrices entre versiones, no sé si consultabas por otro parámetro.
Si, es la imagen donde estan las opciones, y una de ellas es por cambio de plan de estudios.

3

Ramiro, si seleccionan aplicar matrices de equivalencias por cambio de version de plan de estudios, lo que se ejecuta es la query que esta en el método get_alumnos_cambio_version_aplicar_matrices del archivo co_alumnos.php
Podes ver de correr la operación para el cambio de version de plan por ejemplo de la propuesta G1 de la version 1 a la version 2, y ver si este listado recupera solamente alumnos que estan en la version 2 de G1 y que estuvieron en la version 1 o recupera alumnos d ela propuesta W, version 2?
Fijate si podes replicar el caso, poner un corte en ese método para que te devuelva la query en el log y luego correrla en la base y verificar que alumnos recupera.

Lo mismo para el caso que sea por cambio de plan de estudios, la query para recuperar alumnos para aplicar matrices es la del método get_alumnos_cambio_plan_aplicar_matrices

2

Hola Ale, justamente este es el problema. Necesitamos que las matrices no contemplen a las actividades de origen como ‘comunes’ o equivalentes entre propuestas, ya que esa es la causa de estas matrices: cambiar los codigos por cada propuesta y dejar limpias las nuevas versiones porque los códigos viejos no son equivalentes.
Para esto, analizamos lo siguiente:

Actualmente, ya identificamos todas las equivalencias que no deberian otorgarse (porque si el alumno aprobó 80003 en G1, entonces la matriz de 80003 para W es invalida), y antes de volver a procesar todas las matrices, pensamos en invalidar estas actividades como equivalentes.
Es decir, para que el sistema no considere la actividad 80003 equivalente entre propuestas/planes, insertamos los registros correspondientes en la tabla sga_elementos_no_comunes. Asignando como plan origen, el plan donde fue aprobada esa materia. Y como plan_destino, todos los demas planes que estan otorgando equivalencias.

Con esto, pensamos que las matrices no contemplarian estas actividades como equivalentes (¿este es el funcionamiento de sga_elementos_no_comunes?), y otorgarian equivalencias solo en el plan donde el usuario aprobó esa actividad. Pero la funcion de otorgar equivalencias las sigue considerando comunes entre distintas propuestas, y vuelve a otorgar la equivalencia en propuestas donde el alumno NO aprobó esa actividad.

Analizamos la funcion de f_equiv_otorgar_equivalencias, y parece no contemplar los registros de sga_elementos_no_comunes. Particularmente sucede en ‘f_equiv_evaluar_matriz’, cuando inserta en _Temp_HA segun todos los alumnos de la persona, pero luego no filtra por el alumno correspondiente a la matriz que esta evaluando:

select .. 
FROM vw_hist_academica_basica as v,
         sga_alumnos as a2
   WHERE v.alumno2 = a2.alumno
     AND v.persona = pPersona;

Ese where igualado por la persona, termina ignorando el filtro que tiene la vista de historia academica sobre la tabla de sga_elementos_no_comunes.

Te consulto si efectivamente la tabla sga_elementos_no_comunes evita la equivalencia automatica de una misma actividad. Y si es asi, ¿las matrices tambien deberian contemplar esta excepcion de actividades comunes?

Si este analisis no es correcto, te pido como podriamos configurar las matrices para que se ejecuten solamente cuando la materia origen fue aprobada en esa propuesta.
Muchas gracias.

Actualmente, ya identificamos todas las equivalencias que no deberian otorgarse (porque si el alumno aprobó 80003 en G1, entonces la matriz de 80003 para W es invalida),
Error, conceptualmente es una actividad comun, con lo cual es valida en las dos propuestas. En el caso que Uds plantean de que es invalida, entonces lo que quisieron hacer es usar la misma actividad pero entre ciertas propuestas no reconocerla autompaticamente sino que el reconocimiento sea a traves de una equivalencia que se le otorgue al alumno.
y antes de volver a procesar todas las matrices, pensamos en invalidar estas actividades como equivalentes. Es decir, para que el sistema no considere la actividad 80003 equivalente entre propuestas/planes, insertamos los registros correspondientes en la tabla sga_elementos_no_comunes. Asignando como plan origen, el plan donde fue aprobada esa materia. Y como plan_destino, todos los demas planes que estan otorgando equivalencias.
Correcto. En realidad no es que otorga equivalencias, porque no hay ninguna registracion de equivalencias si a eso te referis. Sino que es un reconocimiento automático. Si lo ven en el reporte de HIstoria Académica estará marcada con un * que indica que fue aprobada en otra propuesta.
Con esto, pensamos que las matrices no contemplarian estas actividades como equivalentes (¿este es el funcionamiento de sga_elementos_no_comunes?)
Correcto
, y otorgarian equivalencias solo en el plan donde el usuario aprobó esa actividad. Pero la funcion de otorgar equivalencias las sigue considerando comunes entre distintas propuestas, y vuelve a otorgar la equivalencia en propuestas donde el alumno NO aprobó esa actividad.

Analizamos la funcion de f_equiv_otorgar_equivalencias, y parece no contemplar los registros de sga_elementos_no_comunes. Particularmente sucede en ‘f_equiv_evaluar_matriz’, cuando inserta en _Temp_HA segun todos los alumnos de la persona, pero luego no filtra por el alumno correspondiente a la matriz que esta evaluando:
Código:
select …FROM vw_hist_academica_basica as v,
sga_alumnos as a2
WHERE v.alumno2 = a2.alumno
AND v.persona = pPersona;

Ese where igualado por la persona, termina ignorando el filtro que tiene la vista de historia academica sobre la tabla de sga_elementos_no_comunes.

Te consulto si efectivamente la tabla sga_elementos_no_comunes evita la equivalencia automatica de una misma actividad.


Correcto. Esa es la finalidad de esta tabla.Registrar las relaciones entre planes donde existe la misma actividad pero no se la reconoce automáticamente, y para hacerlo debe otorgarse equivalencias o el alumno deberá rendirla nuevamente llegado el caso.

Y si es asi, ¿las matrices tambien deberian contemplar esta excepcion de actividades comunes?
Correcto. Al consultar la vista de historia academica ya está considerando la definicion de "actividad no comun" entre los planes de las propuestas del alumno.

La query

select ..FROM vw_hist_academica_basica as v,
         sga_alumnos as a2
  WHERE v.alumno2 = a2.alumno
     AND v.persona = pPersona;

Fue realizada mucho antes de agregar este concepto de no reconocimiento automático de actividades comunes.
Con lo cual creo que se resuelve cambiando esta query por:


SELECT ..
   FROM vw_hist_academica_basica as v
     JOIN sga_alumnos as a2 ON a2.alumno = v.alumno2
     JOIN sga_planes_versiones as pv2  ON pv2.plan_version = a2.plan_version
WHERE  v.persona = pPersona
     AND ((v.alumno = pAlumno OR -- Propuesta sobre la que se otorga equivalencia. Recupero todas las actividades 
               (v.alumno <> pAlumno  AND   -- Otras propuestas del alumno. Solo considero la propuesta origen de la matriz si viene el dato de propuesta y/o plan origen de la matriz (puede haber matrices sin origen..
                a2.propuesta = COALESCE(pPropuestaOrigen, a2.propuesta) AND 
                pv2.plan = COALESCE(pPlanOrigen, pv2.plan)
               )
             )

Recuerdo que habia un motivo del porque ese join con sga_alumnos y elfiltro por persona, porque es recuperar todas las activdades que el alumo tiene cumplidas por todas sus propuestas.
Con lo cual la actividad 80003 la va a recuperar cuando la historia academica la consulte por el registro de sga_alumnos que corresponde con la propuesta G1, aunque la matriz de equvalencias que se este evaluando para otorgar equivalencias es de la propuesta W.

Esto mismo lo tienen que hacer sobre la query que inserta en _TempReg

SELECT .... FROM vw_regularidades_basica ....

4