0:00:00.420,0:00:06.060 Gracias por recibirme, soy Ethel Tshukudu de 0:00:06.060,0:00:11.160 la Universidad de Botsuana. El año pasado terminé mi doctorado 0:00:11.160,0:00:16.260 en la Universidad de Glasgow y mi tema era sobre la comprensión de 0:00:16.260,0:00:19.920 transferencia conceptual en los estudiantes que aprenden nuevos lenguajes de programación. 0:00:20.520,0:00:28.080 Así que estoy muy contenta de tratar de resumir mi tesis de hoy en 10 minutos. 0:00:28.980,0:00:35.220 Así que la motivación detrás de este tema fue que mientras yo estaba todavía en Botsuana 0:00:35.220,0:00:41.280 hicimos un estudio en el que estábamos estudiando la correlación de las calificaciones 0:00:41.280,0:00:45.420 de los alumnos de la secundaria con los estudiantes que ahora están aprendiendo el 0:00:45.420,0:00:48.120 lenguaje de programación Java. Así que estábamos comparando sus 0:00:48.120,0:00:53.340 calificaciones en los distintos niveles de secundaria y cómo se correlacionan con sus calificaciones 0:00:53.340,0:00:57.780 en el lenguaje de programación Java. Y nos sorprendió encontrar 0:00:57.780,0:01:01.440 que los estudiantes que cursaban estudios de informática en la escuela secundaria, 0:01:02.700,0:01:07.260 no tenían ninguna correlación con sus puntuaciones en el curso de Java. 0:01:07.260,0:01:14.400 Así que, más tarde me enteré de que, oh, en realidad el plan de estudios no incluía la codificación, 0:01:14.400,0:01:19.140 pero aún así, ya sabes, comenzó la emoción de decir, 0:01:19.140,0:01:25.620 oh vamos a, ya sabes, estudiar cómo los estudiantes realmente hacen la transferencia una vez que 0:01:25.620,0:01:31.560 han aprendido un lenguaje de programación, tal vez en CS0 en primer año y luego 0:01:31.560,0:01:37.440 progresaron para aprender un segundo lenguaje de programación en el segundo año. 0:01:38.640,0:01:46.020 Así que empecé explorando e investigando mediante técnicas de comprensión de código 0:01:47.280,0:01:53.820 y mi base teórica se inclinaba hacia las teorías del lenguaje natural, 0:01:53.820,0:02:05.040 de cómo la gente entiende los lenguajes naturales. Así que mi investigación fue, ya sabes, fue en cuatro años. 0:02:05.880,0:02:12.660 Mi doctorado es en informática, pero mi especialidad es la enseñanza de la informática. 0:02:12.660,0:02:17.280 Así que la enseñanza de las ciencias de la computación es acerca de cómo la gente enseña y cómo 0:02:17.280,0:02:25.260 la gente aprende, ya sabes, informática. Así que en las tres primeras fases de mi tesis, 0:02:25.260,0:02:30.060 yo sólo estaba explorando y tratando de ver cómo ocurre la transferencia semántica 0:02:30.060,0:02:34.380 cuando los estudiantes están, ya sabes, leyendo código. 0:02:35.160,0:02:39.840 Así que basado en qué tan similares, ya sabes, pueden ser dos lenguajes de programación, 0:02:39.840,0:02:44.520 empecé explorando ese concepto, esa idea, 0:02:45.780,0:02:49.920 y, a continuación, los resultados fueron prometedores, 0:02:49.920,0:02:57.000 así que diseñé un modelo de transferencia de lenguaje de programación basado en el primer estudio de la fase uno. 0:02:58.080,0:03:04.320 Y en la fase tres, validé el modelo mediante cuatro estudios 0:03:04.320,0:03:12.960 de estudiantes que pasan de primer curso a segundo en universidades europeas. 0:03:14.400,0:03:21.000 Y luego la segunda parte de mi tesis ahora que, ya sabes, seguí viendo resultados repetitivos, 0:03:21.000,0:03:28.500 empecé a explorar ahora cómo pueden, ya sabes, los educadores ayudar a los estudiantes a transferir conocimientos 0:03:28.500,0:03:38.160 de un lenguaje de programación a otro. Así que las contribuciones de mi tesis, ya sabes, 0:03:38.160,0:03:42.600 dibujé un modelo de transferencia de lenguaje de programación, como se puede ver allí, 0:03:43.740,0:03:51.540 donde estoy diciendo que, oh, estoy afirmando que una vez que usted está recibiendo un estudiante que 0:03:51.540,0:03:56.400 nunca ha aprendido ningún lenguaje de programación y le enseñas un lenguaje de programación, 0:03:56.400,0:04:03.360 lo que va a estar sucediendo dentro de su cerebro es que van a tener, ya sabes, el conocimiento conceptual 0:04:03.360,0:04:06.120 de ese primer lenguaje de programación que les has enseñado, 0:04:07.200,0:04:12.660 cómo es un, ya sabes, cómo se ve el nivel de sintaxis y cómo es, cómo se 0:04:12.660,0:04:17.220 ejecuta en la máquina por lo que se vinculará con la 0:04:17.220,0:04:21.960 idea al nivel conceptual. Pero una vez que se introduce al 0:04:21.960,0:04:27.120 estudiantes al segundo lenguaje de programación, tienen este nuevo conocimiento en el que 0:04:27.120,0:04:30.900 ahora se lo vinculará al lenguaje de programación que ya conocen, 0:04:30.900,0:04:34.320 a este nuevo lenguaje de programación que usted les está enseñando 0:04:34.320,0:04:39.060 y eso significa que las estructuras de conocimiento comienzan a expandirse. 0:04:39.060,0:04:42.660 Como ven, hay diferentes tipos de ramas, que explicaré, 0:04:42.660,0:04:50.640 pero la idea general es que se enfrentarán a tres tipos de... 0:04:50.640,0:04:53.280 una vez que usted les enseñe el lenguaje de programación, 0:04:53.280,0:04:57.660 se enfrentarán a tres tipos de construcciones que tienen que aprender. 0:04:57.660,0:05:00.660 Así que cuando les enseñes el segundo lenguaje de programación, 0:05:00.660,0:05:05.160 pueden ver construcciones. Permítanme explicarlo como, 0:05:07.020,0:05:11.760 ya sabes, descomponer ese dibujo. Así que verán construcciones que 0:05:11.760,0:05:18.780 Yo... yo denominé como verdaderas construcciones de arrastre. Así que estas construcciones tendrán sintaxis similares 0:05:18.780,0:05:23.220 al lenguaje de programación que saben y el nuevo lenguaje que están aprendiendo 0:05:23.220,0:05:29.280 así que en este caso, voy a seguir viendo, usando Python y Java para que sea más fácil de entender. 0:05:29.280,0:05:35.340 Y mi tesis fue sobre los estudiantes que estaban pasando de un lenguaje de programación 0:05:35.340,0:05:40.200 imperativo Python a un, y no era OO, 0:05:40.200,0:05:46.980 a un lenguaje orientado a objetos Java. Así que un ejemplo de un verdadero concepto de transferencia 0:05:46.980,0:05:54.180 sería un bucle while en Python y en Java. Cuando nos fijamos en las sintaxis son realmente, 0:05:54.180,0:05:58.800 realmente similares, las únicas diferencias son, 0:05:58.800,0:06:02.520 ya sabes, hay corchetes allí, hay columnas allí, 0:06:02.520,0:06:07.920 tal vez la variable se declara allí, pero la mayoría, la mayoría de las partes de 0:06:07.920,0:06:12.060 el código son muy similares. Así que he estado dando a los estudiantes estos buenos 0:06:12.060,0:06:18.960 fragmentos para categorizarlos de acuerdo a mi modelo y pedirles que leean el código y dar salidas. 0:06:18.960,0:06:21.420 Y lo que pasa es que cuando hacen eso, 0:06:23.160,0:06:27.540 recuerden el dibujo que les mostré, se mostrará que el primer 0:06:27.540,0:06:32.880 conocimiento al que están llegando en, ellos ven el lenguaje de programación uno y 0:06:32.880,0:06:37.080 lenguaje de programación dos como la misma cosa, así que no pasa nada, 0:06:37.080,0:06:43.020 no hay ningún mal impacto de la transferencia semántica, en realidad es positivo, 0:06:43.020,0:06:45.480 porque eso significaría, cuando usted está enseñando a un 0:06:45.480,0:06:49.920 estudiante el bucle while de Java no tienes que ir demasiado 0:06:49.920,0:06:53.460 al detalles al respecto si ya lo saben en Python, 0:06:53.460,0:06:57.060 así que no hay ninguna ramificación en sus estructuras de conocimiento allí. 0:06:58.140,0:07:04.140 Y luego, cuando continúe, ustedes les enseñan otro concepto llamado el falso concepto de arrastre 0:07:04.140,0:07:08.040 donde puede haber una sintaxis similar pero la semántica es diferente. 0:07:09.240,0:07:13.920 Un ejemplo de ello será la igualdad de los tipos compuestos como matrices. 0:07:15.960,0:07:21.480 Ustedes encontrarán que en Python la igualdad no es la comparación de los valores en el interior, 0:07:21.480,0:07:25.800 pero la igualdad allí en Java está comparando las direcciones reales. 0:07:26.460,0:07:33.840 Así que lo que sucedería es, un estudiante aprenderá este concepto, 0:07:33.840,0:07:37.200 por lo que esperamos que, por lo que como educadores vamos a tener 0:07:37.200,0:07:43.200 la esperanza de que deben tener una ramificación en el conceptual, en el nivel semántico, 0:07:43.200,0:07:48.480 pero la sintaxis debe estar vinculando juntos. Pero lo que está viendo que sucede es que 0:07:48.480,0:07:53.640 los estudiantes seguirán considerando que esos dos fragmentos de código se ejecutan de forma similar, 0:07:53.640,0:08:00.060 lo que nos da la última, el dibujo de un concepto de arrastre verdadero percibido. 0:08:00.060,0:08:05.220 Y entonces el último tipo de concepto es el, la manera, 0:08:05.220,0:08:10.020 lo llamamos un verdadero concepto abstracto de arrastre. Aunque sabemos que todos estos 0:08:10.020,0:08:14.760 fragmentos de código son abstractos, pero éste era más como, ya sabes, 0:08:14.760,0:08:19.320 el ejemplo era más en, cuando los estudiantes están aprendiendo objetos 0:08:19.320,0:08:24.240 porque están pasando de este lenguaje imperativo no orientado a objetos 0:08:24.240,0:08:29.100 a otro lenguaje orientado a objetos y los lanza fuera, ya sabes, 0:08:29.100,0:08:33.900 porque la sintaxis es diferente, las ideas, la nomenclatura es diferente, 0:08:33.900,0:08:37.860 los llamas objetos, los llamas clases, ya sabes, 0:08:37.860,0:08:43.080 pero cuando nos fijamos detrás, ya sabes, cuando tratamos de mirar, ya sabes, las ideas 0:08:43.080,0:08:50.040 reales en torno a los objetos y diccionarios de Python, que están representando algunos tipos de, ya sabes, 0:08:50.040,0:08:53.820 estructuras de datos en el sentido de que, ustedes saben que es sobre el detalle, aunque 0:08:53.820,0:09:00.960 en objetos Java es más como datos estructurados y combinados con el comportamiento al mismo tiempo. 0:09:00.960,0:09:04.500 Así que hay esas cosas desafiantes que los estudiantes, 0:09:04.500,0:09:09.540 cuando ven tal, cuando aprenden tal, cambian el paradigma, 0:09:10.380,0:09:15.480 verán esos conceptos. Idealmente querríamos que lo vieran como, 0:09:15.480,0:09:19.200 ok, la semántica, sí, son diferentes pero no tanto, 0:09:19.200,0:09:24.780 pero entonces hay, que visto que, que están aprendiendo algo totalmente nuevo, 0:09:25.920,0:09:31.920 donde ustedes tienen ahora dos conceptos estructuras en sus cerebros. 0:09:31.920,0:09:35.760 Así que esto, como he dicho, el modelo fue validado en, ya sabes, 0:09:35.760,0:09:42.540 cinco, en cuatro casos en las universidades europeas. En realidad es más que eso, pero los que yo 0:09:42.540,0:09:46.080 escribí en mi tesis fueron cuatro. Y estos son los resultados. 0:09:46.080,0:09:51.420 Yo estaba recibiendo patrones muy similares en todos los estudios donde se ve 0:09:51.420,0:09:57.420 el primer lenguaje azul claro es el Python, el que se está moviendo, la transición de, 0:09:57.420,0:10:01.620 y luego, cuando ven una verdadera construcción de arrastre, 0:10:01.620,0:10:06.450 el que, ya sabes, los resultados en la transferencia positiva, 0:10:06.450,0:10:09.420 no hay ninguna diferencia significativa en la forma en que la realizan 0:10:09.420,0:10:14.580 cuando están aprendiendo el segundo lenguaje. Pero cuando las semánticas son diferentes, pero 0:10:14.580,0:10:19.260 la sintaxis es similar, la del medio, se ve que rinden mucho menos en 0:10:19.260,0:10:23.040 el segundo lenguaje de programación y sigue también a la última, 0:10:23.040,0:10:29.820 donde la sintaxis es diferente, pero el subyacente, ya sabes, el comportamiento o conceptos son similares. 0:10:29.820,0:10:37.620 Así que diseñé un enfoque pedagógico, que no voy a entrar en detalles 0:10:37.620,0:10:41.400 pero tengo documentos por si ustedes están interesados en leer. 0:10:41.400,0:10:47.460 Pero, básicamente, sólo para que los educadores, ya sabes, ayuden a los estudiantes a entender 0:10:47.460,0:10:52.260 y utilizar estas diferencias entre los lenguajes de programación como 0:10:52.260,0:10:57.960 una oportunidad para ayudar a los estudiantes mediante la comparación y la corrección de su 0:10:57.960,0:11:01.920 conceptos erróneos que traen del primer lenguaje de programación, 0:11:01.920,0:11:05.820 los instructores están ayudando a ampliar sus conocimientos y 0:11:05.820,0:11:11.880 profundizar en su comprensión conceptual. Así que esto es sólo un modelo que me gustaría 0:11:11.880,0:11:16.260 aconsejar a los instructores que hicieran cuando están haciendo la transición de los estudiantes. 0:11:16.260,0:11:20.640 Así que en general, ¿qué aprendí de la totalidad de la 0:11:21.540,0:11:25.080 tesis doctoral sobre la transferencia? Pues que sí, 0:11:25.080,0:11:28.560 no podemos evitar múltiples lenguajes de programación en 0:11:28.560,0:11:32.760 un plan de estudios por no hablar incluso en el entorno de trabajo, 0:11:32.760,0:11:37.200 los desarrolladores de software llegan a utilizar diferentes lenguajes de programación múltiples, 0:11:37.200,0:11:42.180 pero lo que nos estamos dando cuenta es que los novatos relativos tienen conocimientos frágiles, 0:11:42.180,0:11:46.200 por lo que es innata, parcial, ya veces está fuera de lugar. 0:11:46.200,0:11:52.020 Así que por lo general los educadores sólo se centran en, vamos a resolver un problema, resolver un problema, 0:11:52.020,0:11:56.820 y sobreestiman que los estudiantes tienen una fuerte comprensión del 0:11:56.820,0:12:02.220 primer lenguaje de programación y conceptos. Así que asumen una gran cantidad de conocimientos que no 0:12:02.220,0:12:07.320 están en los estudiantes. Entonces, ¿cómo avanzamos? 0:12:07.320,0:12:15.840 Utilizamos esta idea de múltiples lenguajes de programación para profundizar la comprensión conceptual de los estudiantes 0:12:15.840,0:12:19.380 mediante la búsqueda de las lagunas en sus conocimientos, ya sabes, 0:12:19.380,0:12:23.700 y dándole como una oportunidad para enseñar estos conceptos ocultos que no vienen 0:12:23.700,0:12:26.520 directamente por lo general, como el alcance, el análisis. 0:12:27.600,0:12:33.600 También se les permite, alimentarlos correctamente. Así que los próximos pasos, a menudo me preguntan, ya sabes, 0:12:33.600,0:12:37.380 cuál es el mejor lenguaje de programación para empezar a enseñar a los estudiantes, 0:12:37.380,0:12:43.860 y por lo general sólo digo, que, no sé, no creo que realmente importe 0:12:43.860,0:12:50.400 pero cuando pasan a la segunda, es cuando usas todas las ideas que dije antes 0:12:50.400,0:12:57.300 sobre profundizar en la comprensión conceptual. Así que quizá la pregunta sería 0:12:58.800,0:13:02.700 ¿quién se beneficiaría de una investigación como ésta? 0:13:02.700,0:13:07.200 los estudiantes universitarios que pasan de CS0 a CS1, 0:13:07.200,0:13:14.160 es, ya sabes, los programadores que están practicando en el trabajo, y todo eso. 0:13:14.160,0:13:20.220 Pero estoy planeando hacer más validaciones del modelo y el enfoque pedagógico 0:13:20.220,0:13:23.700 que he propuesto. Muchas gracias. 0:13:24.300,0:13:31.140 Así que estos son los documentos si ustedes están interesados en entender más de esta investigación 0:13:31.140,0:13:36.300 y, sí, gracias, muchas gracias. Muchas gracias, Ethel. 0:13:36.300,0:13:41.100 Tenemos tiempo para una pregunta, y la pregunta que ha llegado es, 0:13:41.700,0:13:44.520 ¿cómo se relaciona esta investigación con 0:13:45.180,0:13:51.900 cosas como Chat GPT y la transferencia de su comprensión entre las lenguas. 0:13:54.300,0:14:00.840 Oh, yo estaba, cuando usted preguntó acerca de Chat GPT y esto, 0:14:00.840,0:14:03.420 yo iba a pensar desde una perspectiva humana. 0:14:03.420,0:14:08.940 En realidad es una oportunidad para comparar el tipo de, ya sabes, fragmentos de código que 0:14:08.940,0:14:13.080 están escribiendo utilizando Chat GPT porque puedo decir, a resolver 0:14:13.080,0:14:17.160 un problema en dos idiomas diferentes y me dará diferentes respuestas 0:14:17.160,0:14:23.040 para que yo pueda explorar y comparar y contrastar y ampliar mi comprensión.