Calificaciones ponderadas automáticamente y ChatGPT

Introducción

Una de las actividades que se realiza cuando se trabaja con sistemas de gestión de aprendizaje (LMS por sus siglas en inglés) es el de gestionar las calificaciones obtenidas por los estudiantes, ya sea para reportarles sobre su desempeño; esto les permite que puedan ver sus calificaciones en cada actividad y la calificación final del curso.

No obstante, en ocasiones es necesario reportar las calificaciones a otros sistemas externos, por lo cual esto crea una oportunidad de desarrollar una solución que realice este proceso.


¿Qué es Blackboard?

El primer LMS utilizado es Blackboard Learn; mismo que es una plataforma en línea que permite a los profesores crear y administrar cursos en línea, y a los estudiantes acceder a estos cursos, interactuar con el material de enseñanza, y realizar actividades y evaluaciones en línea.

Hasta aquí, todo bien con el uso del LMS 👍, no obstante, se identificó un problema, ya que era necesario trasladar la nota final de forma ponderada a otro sistema de administración de las calificaciones.


Sistema de Calificaciones

En este sistema se necesita realizar una ponderación de la calificación máxima de cada examen (un total de 3) más un acumulativo. Por lo que esto se realizaba de forma manual, donde muchas veces funcionaba sin problemas, pero en algunos casos, que la notas eran mayores que la ponderación, debía de distribuirse. Esto último, creo una oportunidad de mejora a fin de crear una solución que permita distribuir la nota final, en las ponderaciones que se necesiten y que se calcule de forma más precisa usando decimales, ya que cuando se hace con la intervención humana normalmente se generan errores en los cálculos.


Solución I

Esta primera solución es muy simple, ya que lo único que se busca es generar las calificaciones ponderadas. El sistema de LMS Blackboard permite exportar a un archivo CSV con las calificaciones, por lo que se desarrolló un programa llamado grades-weighted-automatically; que leía el o los archivos generados, obteniendo el resultado deseado. Esta solución fue funcional por un tiempo.


Cambio de LMS

La entidad educativa realizó un cambio de LMS, pasando de Blackboard a Canvas.


¿Qué es Canvas?

Canvas es un sistema de gestión de aprendizaje en línea que ofrece una amplia gama de herramientas y funciones para la enseñanza y el aprendizaje en línea, con un enfoque en la facilidad de uso y la experiencia del usuario.


Solución II

Esta segunda solución también mantiene su sencillez, ya que de nuevo lo único que se busca es generar las calificaciones ponderadas. El sistema de LMS Canvas permite exportar a un archivo CSV con las calificaciones, por lo que se modifica el programa grades-weighted-automatically; manteniendo el esquema de leer los archivos generados, obteniendo el resultado deseado.

Finalizando la migración al uso del nuevo LMS, este servidor, pensó: ¿será posible que se pueda eliminar el paso de exportación y consultar directamente al LMS usando un API?; por lo que se procedió a hacer la consulta a ChatGPT.


¿Qué es ChatGPT?

Estamos viviendo en un momento emocionante en cuanto a la tecnología AI, ya que los avances en la investigación y el desarrollo de la IA están permitiendo aplicaciones más sofisticadas y complejas en una variedad de campos.

En particular, la IA ha sido cada vez más utilizada en áreas como la medicina, la educación, la investigación científica, el transporte y la manufactura. Esto ha permitido avances significativos en la eficiencia, la precisión y la productividad en estos campos.

Un modelo de lenguaje AI conocido como ChatGTP esta ayudando a impulsar la tecnología hacia un futuro más sofisticado e inteligente. Esta herramienta que ella misma, reconoce que su impacto es limitado en comparación con la creatividad y la innovación humana, expresa que está aquí para ayudar y que espera poder seguir haciéndolo en el futuro. (Está introducción es generada por ChatGPT, con pequeñas modificaciones)

¿Qué es una API?

Una API (Interfaz de programación de aplicaciones) ​es una pieza de código que permite a diferentes aplicaciones comunicarse entre sí y compartir información y funcionalidades. Una API es un intermediario entre dos sistemas, que permite que una aplicación se comunique con otra y pida datos o acciones específicas.

Ayuda de ChatGTP

A continuación, se presentan las consultas, ayuda y soporte recibido por parte de la inteligencia artificial.

  1. Cual seria el código para conectarse a la API de Canvas y poder tener acceso al libro de calificaciones?

    Se procedió a investigar cómo era el proceso de generación de la llave de acceso a la API, así como probar que el código funcionara. Dicho proceso fue exitoso, por lo que la AI, tenía razón de la factibilidad de llevar a cabo dicha tarea. Sin embargo, no todo fue color de rosa, ya que, aun no se había logrado el acceso a las calificaciones de los alumnos.

  2. Podrías proporcionarme otro código para listar el libro de calificaciones de canvas usando una api?

    Todavia no se tenía acceso a las calificaciones de los alumnos.

  3. El código falla con el siguiente mensaje: AttributeError: ‘Course’ object has no attribute ‘get_grades’. Did you mean: ‘get_groups’? Alguna idea de que puede ser?

    Se verifico que no era ese el problema, ya que sí se contaba con la ultima version de la libreria, por lo que se intento sin libreria.

  4. Tengo la ultima versión de canvasapi, pero el error persiste, alguna idea para usar el api directamente sin una librería.

  5. Todavía sigue el error, será posible conseguir las notas usando el usuario o estudiante?

  6. Sabes como incluir la opción current_grading_period_scores en el parámetro include[] de la solicitud del api?

  7. Puedo ver los porcentajes, pero no el puntaje real, que faltara para ver eso?

  8. Como puedo saber el total de puntos que se ha asignado en un curso en canvas, usando una api?

  9. Es posible usar otra api, que no sea la de custom_gradebook_columns, ya que esa no regresa los puntos_posibles?

  10. Esta solicitud no tiene todos los puntos de las asignaciones, a que se deberá eso?

  11. Hola!, podrías ayudarme en brindarme un código de python para consultar los cursos marcados como favoritos en el LMS de Canvas?

  12. Ahora, podrías brindarme el código para obtener el id del usuario propietario de token que esta consultando la api?

Ayuda de la documentación del API de Canvas

Solución III

Esta tercera solución tiene la ventaja de usar la API directamente, por lo que puede ser utilizada sin realizar las exportaciones de archivos CSV, y genera las calificaciones ponderadas. 😎


Conclusiones

  • Cumplimiento

    • La conversación con ChatGPT logro darnos cuenta de:

      • La posibilidad de trabajar con la API.
      • La manera de enviar opciones al parametro include[]
      • La forma de generar los puntos posibles.
      • La existencia del parametro page_number
      • El modo de conseguir los cursos favoritos”
  • Propósito

    • Teniendo en cuenta el propósito, nos enfocamos en encontrar una respuesta con los datos que se lograron obtener.

Referencias