Introducción
A nivel nacional e internacional se ha observado a lo largo del tiempo, en diferentes niveles escolares, dificultades en el aprendizaje de programación; Jones y col. (2022) afirmaron que aprender a programar involucra niveles de organización y sistematización de procesos cognitivos ligados a la organización y atención, además de un alto grado de creatividad a la hora de resolver un problema.
Entre las diferentes razones por las cuales se afirma que aprender a programar es difícil, se pueden mencionar: se requiere la comprensión de antecedentes teóricos, uso de semántica, codificación sintáctica y habilidades algorítmicas, además de que se tienen que comprender errores de sintaxis (Justo-López y col., 2021).
Alonso-Berenguer (2021) argumentó que, en la actualidad existen insuficiencias en el aprendizaje de la programación por parte de los estudiantes. La reprobación en esta área es un problema que aqueja a las universidades. Cheah (2020), indicó que la dificultad de aprendizaje de programación no es un problema exclusivo de los estudiantes de Chile, sino un problema a nivel mundial. La unidad de aprendizaje de Programación, ofertada en la Facultad de Ingeniería (FIM) de la Universidad Autónoma de Baja California (UABC) en México tiene un alto índice de reprobación (Justo-López y col., 2021).
Para dar solución a las problemáticas del aprendizaje de la programación se han hecho diversas propuestas. Jones y col. (2022) mencionaron: a) los seminarios para estudiantes de primer año, que fomenten hábitos de estudio, administración de tiempo y acciones que apoyen la autorregulación del aprendizaje, además de atender componentes afectivos como la motivación; b) programas de tutorías; c) programas de atención al progreso académico.
Ascencio-Jordán y Gil-Mateos (2023), afirmaron que diseñar estrategias y metodologías específicas apoyadas en las tecnologías de la información y comunicación (TIC) para la enseñanza de la programación pueden representar resultados académicos favorables para los estudiantes.
Alonso-Berenguer (2021) propuso un sistema básico de habilidades para la algoritmización computacional que favorece el perfeccionamiento del proceso de enseñanza aprendizaje. Chimba (2020) integró el software educativo para apoyar el proceso de enseñanza-aprendizaje de la programación básica en estudiantes universitarios. Ayala-Cadena y Aguilar-Juárez (2023) mencionaron que, además de usar software educativo, es necesario proveer al alumno de herramientas que faciliten su autogestión y un acompañamiento didáctico constante para poder aclarar dudas e inquietudes en el proceso de aprendizaje, por lo que, proponen aprovechar los asistentes conversacionales que aplican inteligencia artificial en la interacción con los estudiantes de programación.
Un agente conversacional se puede definir como un sistema informático que trata de emular la conversación con un humano (Caldarini y col., 2022); se han desarrollado en diferentes ámbitos desde la salud, el comercio, la industria, educación, entre otros (Suganya y col., 2020; Zhang y col., 2020; Allouch y col., 2021; Barreto y col., 2021; Ait-Baha y col., 2022; Pawlik y col., 2022). En los últimos años, su uso se ha incrementado y se han convertido en una herramienta valiosa para dar atención a los usuarios por las ventajas que ofrecen tales como: disponibilidad y facilidad de uso, facilidad de implementación, reducción de costos de mantenimiento, entre otras (Allouch y col., 2021).
En el área de la educación, los agentes conversacionales han sido ampliamente utilizados para proporcionar atención académica a sus estudiantes tales como: tareas administrativas (Lalwani y col., 2018; Abdullah, 2021; Nandeesh y col., 2021; Olmedo-Carpio, 2021; Gupta y Chen, 2022) y atención a aspirantes (Nguyen y col., 2021; Bal y col., 2022; Man y col., 2023). También se usan en procesos de enseñanza-aprendizaje en diferentes temáticas, incluyendo la computación y programación (Hobert, 2019; Long y col., 2019; Mad-Daud y col., 2020; Neumann y col., 2021; Essel y col., 2022; Liu y col., 2022; Mateos-Sánchez y col., 2022; Okonkwo y Ade-Ibijola, 2022; Soares y de-Freitas, 2022).
En la literatura, existe una amplia gama de estudios que rodean a los agentes conversacionales (Allouch y col., 2021). Una metodología para su diseño y retroalimentación identifica la evaluación de la experiencia del usuario que se lleva a cabo a través de: 1) mecanismos de interacción y 2) flujo de la conversación (Astruga, 2021). Los mecanismos de interacción en mensajes de texto pueden ser a través de botones o texto libre. En cuanto al flujo de conversación se clasifican en: a) orientados a la tarea, que están diseñados para completar tareas específicas o responder preguntas frecuentes y b) orientados al tema, que se enfocan en un tema específico (Fernández-Ferrer, 2023).
Por lo general, en los estudios que evalúan la experiencia del usuario valoran la calidad pragmática y hedónica de los agentes. La calidad pragmática se enfoca en la funcionalidad del agente conversacional, es decir, la medida en que el agente proporciona respuestas útiles, mientras que la calidad hedónica se enfoca en evaluar la satisfacción emocional que un usuario experimenta al interactuar con el agente (Følstad y Brandtzaeg, 2020).
Los hallazgos de Fornell-Haugeland y col. (2022) al evaluar la experiencia de los usuarios de agentes conversacionales, indican que, el mecanismo de interacción de botón tuvo más aceptación que el de texto libre en cuanto a la calidad pragmática, ya que satisfacen sus necesidades puntuales de información, así como de servicios. Por otra parte, Følstad y Brandtzaeg (2020), en su estudio cualitativo evaluaron las experiencias positivas y negativas de usuarios de diversos agentes conversacionales. En dicho estudio se resalta la importancia del atributo pragmático en los agentes, sin embargo, señalaron la importancia de que, los agentes incluyan atributos sociales. Para los agentes enfocados a la tarea es relevante cumplir con la calidad pragmática antes que la hedónica (Ramírez-García, 2021).
Algunas de las estrategias didácticas implementadas de los agentes conversacionales son los videos educativos sobre programación en lenguaje C, enfocados en temas de mayor dificultad para los estudiantes, como lo son: estructuras repetitivas, arreglos unidimensionales y arreglos bidimensionales (Justo-López y col., 2021).
En este trabajo, se propuso un agente conversacional como una herramienta de apoyo para dar solución al desafío que, presenta para los estudiantes de nuevo ingreso el curso de Programación I, de la Facultad Ciencias de la Información (FCI) de la Universidad Autónoma del Carmen (UNACAR), ubicada en el estado de Campeche, México. Este curso forma parte del plan de estudios de la Licenciatura en Ingeniería en Sistemas Computacionales (LISC) y aborda en su contenido temático fundamentos del lenguaje de programación en C. Dicho curso reporta el mayor índice de reprobación de acuerdo con los resultados de los exámenes de admisión que hace llegar la dirección de la facultad a las academias para su respectivo análisis. Los estudiantes de nuevo ingreso presentan bajos repertorios cognitivos en el área de razonamiento lógico-matemático, además de la diversidad de planes de estudio por provenir de distintos planteles de bachillerato, por lo que los fundamentos de programación que poseen son heterogéneos. En los reportes de aprovechamiento generados por la academia de programación, en los ciclos escolares enero-junio y agosto-diciembre de 2021 se identificó que, solo el 52 % de los estudiantes matriculados en el curso de Programación I aprueban.
Dada la situación expuesta, se diseñó, implementó y probó una herramienta web, disponible, que sirva de acompañamiento didáctico para estudiantes que inician con la programación en lenguaje C, ya que responde dudas específicas sobre temas básicos de este lenguaje. Entre las ventajas que ofrecerá la herramienta se encuentran: a) respuesta inmediata a solicitudes puntuales sobre los temas abordados en dicho el curso, b) disponibilidad de uso para cuando los estudiantes la necesiten.
El objetivo de este trabajo fue describir los hallazgos de la primera etapa de diseño e implementación del agente conversacional, se evaluó su funcionalidad y usabilidad, explorando su efectividad, eficiencia y satisfacción mediante cuatro atributos: ortografía, respuestas del chatbot, flujo del chat, calidad de la información y bienvenida.
Materiales y métodos
Diseño de la investigación
Se llevó a cabo un estudio descriptivo con análisis cuantitativo de corte transversal.
Funcionalidad y usabilidad
El agente conversacional desarrollado en este trabajo es orientado a la tarea, por lo que se realizaron análisis de interacciones, frecuencias y porcentajes para estimar la efectividad (funcionalidad) entre solicitudes realizadas al agente y su respuesta, ante la necesidad de los usuarios en el aprendizaje de programación I.
También, se evaluó su calidad pragmática, a través de la medición de la efectividad, eficiencia y satisfacción del usuario en el empleo del agente conversacional denominado Codebot. De acuerdo con el estándar ISO 9241-11, referida en Ren y col. (2019), la usabilidad representa la medida en la que un sistema se puede utilizar con las características mencionadas. Respecto a la usabilidad relacionada con los agentes conversacionales, Radziwill y Benton (2017) realizaron una revisión sistemática, en la que listaron atributos y características de calidad de los chatbots, así como enfoques apropiados de control de calidad.
Población y muestra
La población de estudio estuvo constituida por 499 estudiantes de la FCI de la UNACAR. La muestra empleada fue de 71 casos-tipo durante las cuatro fases.
En la fase I, el tipo de muestreo fue por conveniencia, ya que se evalúo las respuestas que arrojó el agente conversacional, sobre los temas del curso de programación I.
En la fase II, la muestra fue nula, ya que se replicaron las iteraciones de la fase I con el fin de evaluar nuevamente el comportamiento del agente conversacional con base a las mejoras implementadas.
Para la fase III, se utilizó un nuevo muestreo por conveniencia, seleccionando a 20 estudiantes de segundo semestre que acababan de aprobar el curso de Programación I, quienes evaluaron la utilidad o funcionalidad de Codebot; de estos estudiantes 15 contestaron la evaluación de usabilidad.
Para la fase IV, también se utilizó un tipo de muestreo por conveniencia; el interés se centró en 11 estudiantes que estaban cursando Programación I y 20 programación II, ya que la funcionalidad básica de Codebot es atender dudas sobre los temas de este curso.
Instrumento
Con el fin de valorar la usabilidad de Codebot se utilizó el instrumento Escala de Usabilidad del Sistema (SUS, por sus siglas en inglés: System Usability Scale) (Brooke, 1995), que se extendió con nueve preguntas adicionales para evaluar la efectividad, eficiencia, y satisfacción de los usuarios, adaptado para chatbots (Jiménez-Flores y col., 2018; Cameron y col., 2019; Olausson, 2019; Hernández-Pérez y Llull-Céspedes, 2021; Mora-Blasco, 2021; Safitri y col., 2021).
Para evaluar la confiabilidad del instrumento se aplicaron los estadísticos alfa de Cronbach y Omega de McDonald para cada una de las dimensiones (Tabla 1). Para cada dimensión, se obtuvieron las correlaciones entre cada ítem con el resto de los ítems de esa misma dimensión (Tabla 2). Se aplicó la prueba de normalidad de Kolmogórov-Smirnov a las tres dimensiones, y se observó que no muestran una distribución normal (Tabla 3), debido a que la muestra es mayor a 30.
Tabla 1 Estadísticas de Fiabilidad de Escala.
| Media | DE | Alfa de Cronbach | ω de McDonald | |
|---|---|---|---|---|
| Efectividad | 3.06 | 1.16 | 0.930 | 0.932 |
| Eficiencia | 3.09 | 0.996 | 0.877 | 0.878 |
| Satisfacción | 3.23 | 1.05 | 0.842 | 0.859 |
Tabla 2 Estadísticas de fiabilidad de los elementos de las dimensiones efectividad, eficiencia y satisfacción.
| Media | DE | Correlación del elemento con otros ítems | Si se descarta el elemento | ||
|---|---|---|---|---|---|
| Alfa de Cronbach | ω de McDonald | ||||
| Eficiencia | |||||
| Item_1 | 3.07 | 1.44 | 0.668 | 0.926 | 0.928 |
| Item_2 | 3.26 | 1.39 | 0.673 | 0.926 | 0.927 |
| Item_3 | 3.02 | 1.58 | 0.834 | 0.917 | 0.919 |
| Item_4 | 2.87 | 1.50 | 0.822 | 0.918 | 0.920 |
| Item_5 | 3.39 | 1.34 | 0.788 | 0.920 | 0.922 |
| Item_6 | 3.04 | 1.32 | 0.519 | 0.932 | 0.934 |
| Item_7 | 2.80 | 1.67 | 0.742 | 0.922 | 0.924 |
| Item_8 | 3.09 | 1.49 | 0.666 | 0.926 | 0.928 |
| Item_9 | 3.02 | 1.60 | 0.719 | 0.923 | 0.925 |
| Item_10 | 3.04 | 1.44 | 0.839 | 0.917 | 0.919 |
| Efectividad | |||||
| Item_11 | 3.20 | 1.44 | 0.655 | 0.860 | 0.864 |
| Item_12 | 3.17 | 1.35 | 0.439 | 0.878 | 0.879 |
| Item_13 | 2.74 | 1.54 | 0.628 | 0.863 | 0.866 |
| Item_14 | 3.35 | 1.27 | 0.562 | 0.868 | 0.871 |
| Item_15 | 3.02 | 1.37 | 0.571 | 0.867 | 0.870 |
| Item_16 | 2.98 | 1.32 | 0.682 | 0.858 | 0.860 |
| Item_17 | 3.35 | 1.27 | 0.599 | 0.865 | 0.867 |
| Item_18 | 3.07 | 1.45 | 0.740 | 0.852 | 0.854 |
| Item_19 | 2.93 | 1.58 | 0.690 | 0.856 | 0.858 |
| Satisfacción | |||||
| Item_20 | 2.98 | 1.325 | 0.837 | 0.756 | 0.777 |
| Item_21 | 2.98 | 1.325 | 0.837 | 0.756 | 0.777 |
| Item_22 | 4.17 | 0.902 | 0.205 | 0.895 | 0.906 |
| Item_23 | 3.07 | 1.451 | 0.780 | 0.769 | 0.820 |
| Item_24 | 2.93 | 1.583 | 0.601 | 0.829 | 0.856 |
Tabla 3 Prueba de Kolmogórov-Smirnov.
| Estadístico | gl | Sig | |
|---|---|---|---|
| D1 | 0.176 | 64 | 0.000 |
| D2 | 0.122 | 64 | 0.019 |
| D3 | 0.270 | 64 | 0.000 |
Para el análisis de correlación se empleó la prueba Rho de Spearman por la falta de distribución normal. Las dimensiones 1 y 3 presentaron una correlación alta (Tabla 4).
Tabla 4 Correlación de Spearman.
| Correlaciones | |||||
|---|---|---|---|---|---|
| D1 | D2 | D3 | |||
| Rho de Spearman | D1 | Coeficiente de correlación | 1.000 | 0.642** | 0.301* |
| Sig. (bilateral) | . | 0.000 | 0.015 | ||
| N | 64 | 64 | 64 | ||
| D2 | Coeficiente de correlación | 0.642** | 1.000 | 0.332** | |
| Sig. (bilateral) | 0.000 | . | 0.007 | ||
| N | 64 | 64 | 64 | ||
| D3 | Coeficiente de correlación | 0.301* | 0.332** | 1.000 | |
| Sig. (bilateral) | 0.015 | 0.007 | . | ||
| N | 64 | 64 | 64 | ||
*P ≤ 0.01
**P ≤ 0.05
Fases en la creación del agente conversacional
Al agente conversacional se le nombró Codebot y se diseñó su respectivo avatar como un robot futurista (Figura 1), en su pecho tiene símbolos que se utilizan en programación. La gama de colores que se empleó, es blanco y azul, que representan los colores institucionales de la UNACAR. Para el desarrollo del trabajo se tomó del modelo de cascada, sus fases de análisis, diseño e implementación, pero las pruebas fueron realizadas en diferentes fases, con el fin de ir verificando la funcionalidad, usabilidad y contenido de la base de conocimiento del agente conversacional. En la Tabla 5 se describe cada una de las etapas del procedimiento utilizado, así como la manera en que se implementó el desarrollo. A continuación, se describen cada una de estas fases.
Tabla 5 Procedimiento utilizado en el desarrollo del trabajo y descripción de las muestras en las fases de pruebas.
| Fase | Actividad | Resultados |
|---|---|---|
| Análisis | Se evaluaron los requerimientos técnicos tanto para el desarrollo de la herramienta, así como para el uso de esta. | Se evaluaron plataformas para el desarrollo del agente conversacional. |
| Creación y diseño | Se definieron los temas que abordaría el agente conversacional. | Se definió la base de conocimiento del agente, es decir, las preguntas de entrenamiento. |
| Implementación | Se implementó la herramienta en una plataforma de software. | El agente reside en la plataforma Dialogflow de Google. |
| Pruebas | Fase I (25 estudiantes de 5º y 7º semestre) | Estudiantes de semestres avanzados que aprobaron cursos del núcleo básico de programación evaluaron el comportamiento del bot. |
| Fase II (25 estudiantes de 5º y 7º semestre) | Se robusteció la base de conocimiento del bot de acuerdo con los resultados que arrojó la fase I. Se replicaron las solicitudes de la fase anterior. | |
| Fase III (20 estudiantes de segundo semestre en funcionalidad y 15 de ellos en usabilidad) | Estudiantes que aprobaron el curso de programación I interactuaron con el bot para determinar su funcionalidad y utilidad. | |
| Fase IV (31 estudiantes) | Se probó el bot con los sujetos de interés (estudiantes que cursaban Programación I y II). |
Fase de pruebas
Fase I. Análisis, diseño, creación, implementación del Codebot y prueba
Se evaluaron los requerimientos técnicos para el diseño y creación del agente conversacional en la plataforma Dialogflow de Google (Google-Cloud, 2022) y se implementó en la red social Facebook, dado que es la red utilizada institucionalmente y también a nivel facultad. El agente conversacional fue entrenado acorde al temario del curso de Programación I, que se imparte en la facultad. En la etapa inicial, la base de conocimiento de Codebot estuvo formada por 80 intenciones, así como dos entidades.
En la fase I, los sujetos de prueba fueron 25 estudiantes de 5º y 7º semestre matriculados en dos grupos de cursos impartidos por autores del presente trabajo. La finalidad de que estudiantes de semestres avanzados probaran al agente conversacional (Figura 2) se debió a que ellos poseen bases sólidas sobre programación, sobre todo del lenguaje C. Se le solicitó a cada participante que realizaran 25 solicitudes sobre los temas que se abordan en el curso de Programación I, por lo que en total se hicieron 625 solicitudes al agente conversacional como parte de las pruebas funcionales. Estas pruebas consistieron en: a) solicitar a los estudiantes que utilizaran Codebot y entregaran un reporte con las solicitudes realizadas, así como las respuestas arrojadas por el agente; b) redactar un comentario de su percepción sobre el funcionamiento de Codebot.
Fase II. Implementación de mejoras
En la fase II, no se realizaron pruebas funcionales a Codebot, se alimentó su base de conocimiento con preguntas (solicitudes) que no reconoció de la fase I, se identificaron puntos de mejora a la base de conocimiento de Codebot, así como problemas en la presentación de algunos temas. Con base a esto, se llevaron a cabo una serie de acciones:
Se añadieron nuevas intenciones para las solicitudes no reconocidas detectadas en los reportes de los estudiantes.
Se añadieron más frases de entrenamiento a las interacciones existentes que lo requerían.
Se modificó el formato de presentación de algunos temas, por ejemplo, se cambió texto por imágenes.
Con el fin de verificar el correcto funcionamiento del agente con las modificaciones realizadas, se replicaron las 625 solicitudes que se realizaron en la fase I; 37 solicitudes no se consideraron en los cambios, debido a que se referían a conceptos no contemplados en el contenido del curso Programación I. Inicialmente la base de conocimiento de Codebot contó con 87 intenciones (posibles preguntas).
Fase III. Pruebas de funcionalidad y usabilidad en la versión actualizada
Las pruebas las realizaron 20 estudiantes, de segundo semestre, matriculados en dos grupos de clase de los autores. Los estudiantes realizaron pruebas de funcionalidad de Codebot, también expresaron su experiencia respecto al mismo. De los 20 estudiantes, solo 15 evaluaron la usabilidad de Codebot, a través del instrumento SUS extendido. En esta fase se puso atención a la habilidad social (calidad hedónica) del agente conversacional, por lo que se agregaron contextos a los temas plasmados en el agente con el fin que los usuarios tuvieran una conversación fluida con éste.
Resultados
Fase I
De 625 solicitudes realizadas a Codebot, éste respondió el 52.8 % de manera correcta, el 0.5 % de manera incorrecta y el 46.7 % de las solicitudes no las reconoció, ya que éstas no formaban parte de su base de conocimiento.
Fase II
Al replicar, las 625 solicitudes que hicieron los estudiantes en la fase anterior, se observó, que el agente conversacional incrementó su eficiencia al aumentar el porcentaje de respuestas correctas respecto a la primera fase (Tabla 6). Sin embargo, el 11.36 % de las solicitudes no pudieron ser atendidas, ya que éstas abordaban temas no contemplados en la base de conocimiento del agente. En general, estas solicitudes se referían a temas avanzados del lenguaje C tales como: manejo de archivos, apuntadores, estructura de datos, entre otros.
Tabla 6 Comportamiento de Codebot en las fases I y II.
| Respuesta | Resultados (fase I) | Validación (fase II) | ||
|---|---|---|---|---|
| n | % | n | % | |
| Correcta | 330 | 52.8 | 554 | 88.64 |
| Incorrecta | 3 | 0.5 | 0 | 0 |
| No reconocidas | 292 | 46.7 | 71 | 11.36 |
| Total | 625 | 100 | 625 | 100 |
Las preguntas no reconocidas por Codebot, se clasificaron en tres grupos (Tabla 7): a) Fuera de tema, se refiere a preguntas que no forman parte del temario de programación I; b) Incongruentes, se refiere a preguntas ilógicas o sin sentido; y c) Añadir en Codebot, se refiere a preguntas que Codebot debería contemplar en su base de conocimiento.
| Fuera de tema | Incongruentes | Añadir en Codebot |
|---|---|---|
| ¿Qué es un puntero sobre otro puntero? | ¿Cuál es el significado de la anidación base del arreglo? | ¿Para qué sirve la programación? |
| ¿Cuál es la diferencia entre memoria de asignación mallo y callo ? | ¿Cuál es la ventaja de declarar nulos los indicadores? | ¿Cuándo se utiliza la sentencia if? |
| ¿Para qué sirve la palabra clave auto? | ¿Qué es un recordatorio para el 5.02 %? | ¿A qué te refieres con secuencia lógica? |
| ¿Qué es un puntero colgante? | ¿Qué operador se utiliza para recibir el número variable de argumentos de una función? | ¿Cuál es la diferencia entre incluir el archivo de encabezado con llaves angulares < > y comillas dobles? |
| ¿Cuál es el propósito del especificador de almacenamiento externo (extern storage specifier)? | ¿Cuál es el valor por defecto de más variables locales y globales? | ¿Qué es una variable estática? |
| ¿Cómo podemos determinar si un archivo se abre con éxito o no usando la función fopen? | ¿En cuántas condiciones se dividen las estructuras condicionales? | ¿Se puede compilar un programa sin la función main? |
| ¿Qué es un binomio cuadrado? | ¿Cada que un programa compila, está correcto? | ¿Puede asignar una variable flotante a una variable entera larga? |
Fase III
En la evaluación de usabilidad, donde participaron 15 estudiantes, el agente tuvo una valoración buena en cada uno de los atributos que evaluaron la calidad de la conversación (Tabla 8). En las pruebas funcionales, los 20 estudiantes realizaron 1 825 solicitudes en total, en las que aumentó el número de respuestas correctas (1 351); las solicitudes contestadas de manera incorrecta disminuyeron con respecto a la fase anterior, pero con casos de solicitudes no reconocidas, por lo que fue mayor la información proporcionada por el agente en esta fase (Tabla 9).
Tabla 8 Resultados arrojados por el instrumento de usabilidad de las fases III y IV.
| Atributo para evaluar | Buena | Insuficiente | No cumple |
|---|---|---|---|
| Fase III | |||
| Ortografía | 100 % | 0 % | 0 % |
| Respuestas | 80 % | 13.3 % | 6.7 % |
| Flujo del chat | 93.3 % | 6.7 % | 0 % |
| Calidad de la información | 86.7 % | 13.3 % | 0 % |
| Bienvenida | 93.3 % | 0 % | 6.7 % |
| Fase IV | |||
| Ortografía | 90.3 % | 9.7 % | 0 % |
| Respuestas del chatbot | 64.5 % | 32.3 % | 3.2 % |
| Flujo del chat | 77.4 % | 19.4 % | 3.2 % |
| Calidad de la información | 77.4 % | 22.6 % | 0 % |
| Bienvenida | 90.3 % | 3.2 % | 6.5 % |
Tabla 9 Comportamiento de Codebot.
| Pruebas | Fase I | |
| Estudiantes de 5º y 7º semestre evaluaron el comportamiento del bot. | 52.8 % respuestas correctas 0.5 % respuestas incorrectas 46.7 % respuestas no reconocidas |
|
| Fase II | ||
| Se robusteció la base de conocimiento del bot de acuerdo con los resultados de la fase I. Se replicaron las solicitudes de la fase I. |
88.64 % repuestas correctas 0 % respuestas incorrectas 11.36 % respuestas no reconocidas |
|
| Fase III | ||
| Estudiantes de segundo semestre que aprobaron el curso de programación I evaluaron el comportamiento del bot. | 74 % respuestas correctas 1 % respuestas incorrectas 25 % respuestas no reconocidas |
|
| Fase IV | ||
| Usuarios del estudio interactuaron con el bot. | 70 % respuestas correctas 0 % Incorrectas 30 % respuestas no reconocidas |
|
Fase IV
El total de solicitudes de esta fase fue de 230, el agente conversacional respondió 161 de manera satisfactoria, 69 de las solicitudes no las reconoció y no arrojó respuestas incorrectas (Tabla 9).
En resumen, los resultados que arrojó la fase de pruebas (Tabla 9), se observa que en la fase I, el porcentaje de respuestas correctas fue bajo. En la fase II, se robusteció su base de conocimiento del bot e incrementó su efectividad. En la fase III, el agente fue evaluado por estudiantes que aprobaron el curso de programación I, pero que se encontraban cursando estructura de datos, por lo que las preguntas al agente estaban enfocadas a sus necesidades, y muchas de sus solicitudes estaban fuera de la base de conocimiento del agente. En la fase IV, que fue probada por estudiantes matriculados en el curso de programación I, el porcentaje de respuestas correctas fue considerable (70 %); la cantidad de respuestas no reconocidas se debe a que muchas de las solicitudes carecían de pertinencia.
Experiencias del usuario
Las opiniones de la interacción con el agente se clasificaron de la siguiente manera:
Utilidad del agente conversacional
Dado que el agente está orientado a la tarea, es relevante su calidad pragmática, en la Tabla 10 se listan las percepciones de algunos usuarios con respecto a la utilidad de Codebot y se explica el proceso que se ha seguido en cuanto a lo mencionado por el usuario.
Tabla 10 Experiencia del usuario con Codebot, experiencias respecto a mejoras añadidas y experiencias negativas.
| Usuario | Percepción | Observación |
|---|---|---|
| U-10 | “Le faltan algunas definiciones y precisión al momento de la búsqueda de conceptos o ejercicios; esto no impide que no sea útil para los alumnos que estén cursando la materia de programación I, ya que, a mí me hubiera sido de muchísima ayuda en algunos conceptos o definiciones que no tenía 100 % claras, o se me complicaban” | En cada fase del agente se llevaron a cabo una serie de pruebas funcionales con el fin de identificar solicitudes no reconocidas por el agente y así robustecer su base de conocimiento. |
| U-11 | “Me gustaría que el chat-bot abra un poco más, de que no solo contesta preguntas de programación I me gustaría que abarcara todos los temas de la ING ISC, ya que es de mucha utilidad”. | En un futuro se espera que el agente conversacional sea capaz de abordar todos los temas del lenguaje C. |
| U-13 | “Te puede responder preguntas específicas, para cualquier alumno de primer semestre se le hará una herramienta muy fácil para estudiar y atender sus dudas en cualquier momento” | La finalidad del agente es responder preguntas específicas de los estudiantes con el fin de que se convierta en una herramienta útil para los estudiantes del curso de programación I. |
| Mejoras añadidas | ||
| U-14 | “Quiero agregar que me agradó mucho el hecho de que en algunos casos me hacía sugerencias sobre lo que podría preguntar a continuación” | La finalidad es que el estudiante profundice en el tema abordado a través de un acompañamiento del agente conversacional. |
| Experiencias negativas | ||
| U-17 | “Alguien que empiece la carrera de programación no va a entender lo que va a preguntar, el bot no suele brindar el temario para saber que preguntar, entonces es una gran falla, ya que lo vuelve muy confuso para nuevos usuarios” | En la página de la red social donde reside el agente se publicó una imagen con los temas que aborda el agente. Los estudiantes se enfocaron únicamente a interactuar con el agente. Sin embargo, se pretende que el agente conversacional visualice en formato imagen los temas que éste aborda cuando el usuario lo solicite. |
| U-15 | “El bot es muy seco, en la mayoría de las ocasiones se basa en responder preguntas específicas que con un poco de indirecta se pierde el sentido y responde cosas erróneas. Le hace falta mucha más variedad del lenguaje de C. Le hace falta información de libros trabajada y certificada” | Algunos resultados de investigaciones han arrojado que, para mejorar la experiencia del usuario en el uso del agente, éste debe poseer habilidades sociales, por lo que se han considerado añadir más contextos. Respecto a la variedad del lenguaje C, por el momento el agente está entrenado con los temas abordados en el curso de programación I. |
| U-16 | “Algunas veces no reconoce la pregunta que se le hace y tengo que poner simplemente el nombre del tema…o cofunde la información” | El agente está entrenado para responder dudas específicas de los temas abordados en el curso de programación I. |
Mejoras que se le añadieron a la versión actual
A Codebot se le agregaron contextos con el objetivo de que el estudiante siga explorando el tema de su interés. Esta mejora es con el fin de proporcionar al usuario una impresión de continuar el mismo flujo de la conversación. Además de dotar al agente conversacional de habilidades sociales. En la Tabla 10 se recupera el comentario de un usuario que se percató de la mejora añadida a Codebot.
Experiencias negativas con el agente
Se incluyeron experiencias negativas de algunos usuarios con el agente (Tabla 10).
Discusión
Los hallazgos obtenidos demuestran la eficiencia de Codebot, con un 70 % de respuestas satisfactorias y un 30 % de solicitudes no reconocidas, las cuales no se encontraban en la base del conocimiento del agente, dado que el objetivo de aprendizaje sólo implicó el temario de programación I. Sin embargo, se hace necesario continuar con estudios que evalúen las características, roles y criterios suficientes sobre la creación del agente conversacional.
El diseño del Codebot está orientado al apoyo en el aprendizaje de los estudiantes de la carrera de LISC de la FCI de la UNACAR, para lo cual la zona de desarrollo próxima (ZDP) explicada por Vygotsky, es fundamental en el sujeto que aprende, pues la apropiación de un sistema simbólico requiere la existencia de utilizar sistemas previos como referente para el dominio del sistema en formación (Corral, 2001).
Como se puede apreciar en este trabajo, se realizaron varios conjuntos de pruebas, que permitieron robustecer en cada una de ellas la base de conocimiento del agente. Hecho que concuerda con Fornell-Haugeland y col. (2022), quienes argumentaron que los agentes desarrollados requieren robustecer continuamente su base de conocimiento.
La herramienta diseñada e implementada por estudiantes de la UNACAR, que apoya el contenido temático completo del curso de programación I, enfocado en la enseñanza del lenguaje C a nivel básico, obtenida de la elaboración del Codebot, demuestra su relevancia, ya que se encontraron diferencia de otros chatbots, que tienen como tema de enseñanza otros lenguajes de programación como Coding tutor (Hobert, 2019) y e-Java (Mad-Daud y col., 2020) que trabajan con lenguaje java, o Python-bot (Okonkwo y Ade-Ibijola, 2022) cuyo lenguaje tratado es Python.
En cuanto al lenguaje C, solo se encontró C-BOT (Soares y de-Freitas, 2022) un chatterbot que comparte conocimiento acerca de conceptos del lenguaje de programación C, aunque los autores no mencionan cuáles son y solo se ilustra la recursividad, también implementan prueba del conocimiento de los estudiantes acerca de la funcionalidad de los algoritmos de búsqueda binaria y el ordenamiento quick sort, temas que quedan fuera del alcance del contenido temático del curso de programación I, además de que el lenguaje con el que se interactúa con C-BOT es portugués y no se encuentra disponible para su uso.
Conclusiones
El diseño e implementación de un agente conversacional, para atender dudas puntuales sobre temas que se abordan en un curso de programación básico, permitió a los estudiantes de nivel licenciatura contar con una base de datos que les aporta conocimiento para facilitar y mejorar su aprendizaje del lenguaje C de manera satisfactoria. La incorporación de un agente conversacional, como herramienta de apoyo en el proceso de enseñanza-aprendizaje, mejoró la experiencia de los estudiantes en la adquisición de la competencia de programación. Es conveniente establecer la factibilidad y eficiencia de utilizar este tipo de apoyo tecnológico interactivo para el desarrollo de otras competencias, habilidades y conocimientos, en los estudiantes universitarios.










nueva página del texto (beta)





