“La Hora del Código”: una mirada diferente hacia la programación
MA. DEL CARMEN NOLASCO SALCEDO*
CIENCIA UANL / AÑO 25, No.113, mayo-junio 2022
En medio de la globalización, y a medida que nuestro mundo se vuelve más dependiente de la tecnología, la programación se convertirá rápidamente en una habilidad fundamental para la generación actual de niños. De la misma manera que nuestras escuelas enseñan a leer, escribir y aritmética, nuestros nativos digitales deben aprender el lenguaje de esta era, que es la programación de computadoras.
Al aprender a programar, los niños adquieren habilidades que son esenciales para el pensamiento lógico, la resolución de problemas, nivel de abstracción, atención y concentración, entre otras. Tales habilidades se prestan a cualquier disciplina y se trasladan a los desafíos diarios, ya sea dentro o fuera del aula. La programación también fomenta el pensamiento crítico. El conocimiento de la programación es esencial a nivel mundial. Un sitio web, Code. org, generó una iniciativa: la Hora del Código, que anima a los estudiantes a completar tutoriales breves de programación.
La Hora del Código de Code.org se lleva a cabo anualmente durante la Semana de la Educación en Ciencias de la Computación. La autora informa sobre un estudio realizado en dos escuelas de educación básica, en el estado de Jalisco, en el municipio de Ocotlán. Se pidió a una muestra de los estudiantes de educación básica que participaron en un taller-tutorial donde pudieron programar y diseñar sus propios videojuegos de una forma divertida en la Hora del Código, contestaran un cuestionario electrónico que se implementó para encuestarlos antes y después de completar el tutorial en línea sobre sus actitudes hacia la programación y sus habilidades para la codificación.
La Hora del Código es una forma lúdica de aprender. Permite a los niños experimentar, compartir, razonar y entender cómo se hacen las cosas. ¡Los niños pueden hacer sus propias creaciones! Al aprender a programar, pasan de ser meros espectadores a creadores. Para lograr un aprendizaje óptimo, el cerebro necesita estar emocionado de aprender. La programación ayuda en la toma de decisiones y promueve el trabajo en equipo, ya que se basa en un trabajo colaborativo en el que cada niño juega un papel y aporta algo a los demás.
Al aprender a programar se desarrolla la creatividad; uno crea rutinariamente algo de la nada. Permite al estudiante tomar una idea y desarrollarla. La programación le permite al estudiante desarrollar un pensamiento, en su imaginación, y darle vida; conduce a avances en ingeniería, medicina, música, etc. El único límite es el cielo.
MARCO TEÓRICO
La educación primaria carece de una forma abrumadora de materias tecnológicas (Sanders, 2008). La programación de computadoras no es una tarea fácil de conquistar por un principiante. Además de las calificaciones, la retención, las actitudes y la ansiedad de los estudiantes, los estudios han indicado diferencias de género en los cursos de introducción a la programación (Rubio et al., 2015). Java es uno de los lenguajes más empleados en los cursos de introducción a la programación; sin embargo, sus peculiaridades dificultan su aprendizaje. Insisto en que uno de los mejores lenguajes de programacion, sino es que el mejor, para aprender a programar es el Pascal, una excelente opción para iniciarse en el mundo de la programación, ya que a pesar de que tiene decadas de haber sido creado y que otros lenguajes de programación se han venido desarrollando, sigue siendo utilizado por algunas instituciones educativas para enseñar a programar.
La bibliografía académica está repleta de estudios sobre métodos para facilitar la educación en programación. Nikula et al., (2007) demostraron que los lenguajes con un mayor nivel de abstracción, como Python, mejoraron la retención y comprensión de los estudiantes. Siguiendo la estrategia de programación visual, Lee, Pradhan y Dalgarno (2008) argumentaron que las herramientas visuales facilitan, al programador principiante, desarrollar y manipular modelos y esquemas mentales.
Las estrategias de juego para aprender a programar se consideran más agradables que los entornos de aprendizaje tradicionales. Por ejemplo, muchos videojuegos tienen niveles y una vez que todos éstos se han completado con éxito, el jugador gana el juego. Robocode de IBM es un entorno que mejoró las habilidades de programación de los usuarios al tiempo que se considera una experiencia agradable (Long, 2007).
ENFOQUES PARA ENSEÑAR PROGRAMACIÓN VISUAL
Se ha demostrado que los enfoques visuales mejoran la comprensión del programa; se han empleado otras herramientas de programación visual en la educación informática. Una de esas herramientas es Alice (Dann, Cooper y Pausch, 2011). Los lenguajes de programación por bloques han sido desarrollados para aprender de una manera fácil e intuitiva. Alice es un entorno virtual donde los estudiantes usan programación visual en forma de piezas de rompecabezas para construir código que hace que los actores en un entorno virtual realicen tareas (es decir, un conejo saltando). Alice fue empleada en un curso de programación de educación general para estudiantes que no requerían el conocimiento profundo de un curso de informática (Ali y Smith, 2014).
Se demostró que Alice es una alternativa eficaz a los lenguajes de programación estándar en la enseñanza de la programación a estudiantes universitarios de informática (Sykes, 2007). Scratch es una herramienta visual para enseñar programación de computadoras, principalmente para las edades de 8 a 16 (Maloney et al., 2010). Scratch involucra tareas como dibujar y animar personajes, crear historias y juegos. Scratch se ha implementado como una herramienta para enseñar programación a los jóvenes (Maloney et al., 2008). Además, las universidades han utilizado Scratch como un primer curso de programación de computadoras para finalmente hacer la transición de los estudiantes a Java u otros lenguajes (Malan y Leitner, 2007).
Similar a Alice y Scratch, MIT App Inventor es una herramienta de programación visual en la que los estudiantes construyen código ensamblando bloques o piezas de un rompecabezas (Wolber et al., 2011). App Inventor crea aplicaciones móviles para dispositivos Android, demuestra su flexibilidad para enseñar conceptos introductorios de programación y se ha implementado en campamentos de verano para estudiantes de secundaria en Georgia con resultados mixtos (Roy, 2012).
METODOLOGÍA
Se pidió a los estudiantes que realizaran un tutorial como parte de su participación en la Hora del Código. El procedimiento, el procesamiento de datos y el análisis se describen en las próximas secciones.
Procedimiento
Los estudiantes de educación básica, especialmente los de 5°, 6° y 1°, 2° y 3° de secundaria fueron seleccionados al azar de las secciones requeridas de los cursos básicos en un esfuerzo por capturar un grupo diverso de estudiantes dentro de la muestra. Participaron 137 estudiantes de educación primaria y secundaria en este estudio. Entre ellos, 105 de secundaria y 32 de primaria.
Recopilación de datos
Los métodos para la recolección de datos implicaron tres pasos: 1. Cuestionario previo, 2. Taller-tutorial en línea y 3. Postcuestionario. Se utilizaron cuestionarios previos y posteriores para conocer el cambio en las actitudes y habilidades de los estudiantes.
Se implementó un cuestionario electrónico previo y posterior al taller de la Hora del Código, para encuestar a los participantes sobre sus actitudes hacia la programación. En primer lugar se recopiló información de antecedentes, como la experiencia de programación de los participantes. Se preguntó a los participantes si habían realizado algún curso de programación.
El siguiente conjunto de preguntas se centró en comprender las actitudes de los participantes hacia la programación (tabla I).
Otro conjunto de preguntas (tabla II) se relacionó con el conocimiento de programación. Se hicieron dos preguntas para probar la comprensión de los participantes de tres conceptos básicos de programación: estructuras selectivas (si-entonces) y estructuras iterativas (mientras). Al final del cuestionario se pidió a los participantes que proporcionaran comentarios adicionales sobre la programación.
En resumen, la encuesta previa contenía siete preguntas que cubrían los temas mencionados anteriormente. La encuesta posterior contenía las mismas siete preguntas que aparecieron en la encuesta previa más dos preguntas nuevas (P3 y P4) con el supuesto de que las actitudes de los estudiantes hacia la programación y sus habilidades de programación cambiarían como resultado de tomar el taller en la Hora del Código.
RESULTADOS
De los 137 estudiantes que participaron en este estudio, la mayoría (72%) nunca había realizado ningún curso de programación informática. El promedio de años de experiencia en programación fue de un año. Esta información confirmó la suposición de que el tutorial “para principiantes” era apropiado para usar en este estudio debido a la experiencia de programación muy limitada de los participantes.
Conciencia de la importancia de la programación
En la encuesta previa, 29% de los participantes creía que todos los estudiantes deberían tener la oportunidad de aprender a programar una computadora en comparación con 26% que no lo hizo, mientras que 45% permaneció neutral. Por el contrario, en la postencuesta, la mayoría (54%) de los participantes indicó estar de acuerdo con la afirmación, 29% fue neutral y 16% no estuvo de acuerdo. La tabla III muestra que más estudiantes tienen actitudes positivas hacia la programación después de completar un tutorial de la Hora del Código.
Se puede observar que hubo una diferencia significativa en las actitudes de los estudiantes hacia el aprendizaje de la programación, estos resultados sugieren que el tutorial cambió las actitudes de los participantes hacia éste. Después de tomar el tutorial, los estudiantes se mostraron más positivos sobre el aprendizaje de la programación. Cuando se les preguntó si les interesaba tomar un curso de programación, en la encuesta previa, la mayoría (58%) de los participantes consideró poco probable hacerlo, en comparación con 42% que dijo que sí. En la encuesta posterior, la reversión se produjo con 57% indicando que sí tomaría un curso de programación. La diferencia entre las respuestas anteriores y posteriores a la encuesta se muestra en la tabla IV. Es más probable que los estudiantes tomen un curso de programación después de completar un tutorial de la Hora del Código.
Los resultados sugieren que después de tomar el tutorial, es más probable que los estudiantes tomen un curso de programación. La tercera y cuarta preguntas se formularon sólo en la encuesta posterior. La mayoría de los participantes (79%) disfrutó del tutorial proporcionado por Code.org en comparación con 8% que no lo hizo (tabla V). Cuando se les preguntó acerca de cómo el tutorial cambió su actitud hacia la programación, la mayoría de los participantes (60%) respondió “que ahora tenían más interés en aprender a programar” (tabla VI). Curiosamente, más de un tercio (35%) no se comprometió. Es posible que trabajar en la tutoría durante una hora fuera inadecuado para que los participantes detectaran cambios en sus actitudes hacia la programación. Uno esperaría ver un aumento en la retroalimentación positiva si los participantes completaran una serie de tutoriales. Las tablas V y VI ilustran la distribución de las respuestas después de que los estudiantes completaron el tutorial de la Hora del Código, y muestran que los estudiantes tienen actitudes más positivas hacia la programación después de completar un tutorial de la Hora del Código.
De los 137 participantes, un pequeño porcentaje (14%) externó comentarios adicionales sobre la programación. En la encuesta previa, un comentario común y repetido es: «No tengo ni idea de lo que estoy haciendo», lo que se esperaba, dada la experiencia limitada de programación de los participantes. Por el contrario, los comentarios fueron mucho más positivos en la encuesta posterior. Las citas seleccionadas de los comentarios representan cuatro temas: divertido, interesante, importante y genial, que surgieron e ilustran que a los participantes les gustó participar en los talleres de la Hora del Código.
Divertido: “Pensé que sería difícil, pero en realidad fue divertido”. Interesante: “Es un lenguaje de programación muy interesante y, aunque es complejo, ¡prácticamente cualquier persona puede aprenderlo! ¡Sólo tomaría tiempo como cualquier otra cosa!».
Importante: «Me interesó mucho más la programación y me di cuenta de lo importante que es realmente».
Genial: “¡Excelente manera de aprender! Fue una forma divertida e interactiva de aprender a programar».
Habilidades para programar
Se formularon dos preguntas relacionadas con los conceptos de programación, Estructuras iterativas (mientras), Estructuras selectivas (si-entonces), antes y después de que los participantes completaran el tutorial. Los resultados detallados se muestran en la tabla VII. Para la pregunta relacionada a estructuras iterativas no hubo diferencia significativa para los participantes, antes del tutorial 41% acertó en la respuesta y después 47%. Este resultado demostró una mejor comprensión del concepto de estructuras iterativas para los participantes que completaron el tutorial. Para la pregunta respecto a las estructuras selectivas, no se detectó diferencia significativa, antes del tutorial 66% acertó en la respuesta y después del tutorial 68%. Por lo tanto, completar un tutorial de la Hora del Código no mejoró la comprensión de los estudiantes del concepto de estructuras selectivas.
Completar un tutorial de la Hora del Código no marcó una diferencia respecto a las dos preguntas realizadas sobre habilidades de programación. Una posible razón para ello es que el código que se utilizó en las preguntas es más tradicional y no imita de cerca el código de “escribe tu primer programa de computadora” en Code.org. Otra posible razón es que usar la Hora del Código por sí solo no fue efectivo para enseñar a los estudiantes a programar.
La Hora del Código no fue diseñada para reemplazar las clases de computación tradicionales, pero podría incorporarse en los planes de estudio de ciencias de la computación como otra dimensión de éstas.
En resumen, los hallazgos muestran que los tutoriales de la Hora del Código en las aulas arroja una idea del desarrollo futuro de la educación en ciencias de la computación. Así lo manifiestan comentarios de los estudiantes al respecto: “Fue divertido, en realidad no me imaginaba que programar un juego fuera tan fácil”; “¡Esto es genial, puedo hacer mi propio juego, como yo quiera!”; “Creí que no iba a poder resolverlo, pero además de divertido es fácil y sencillo”. Debido a la naturaleza exploratoria de este estudio, la muestra de conveniencia proporcionó una buena base para explorar el impacto de los tutoriales de la Hora del Código en las actitudes de los estudiantes hacia la programación, así como su habilidad en el pensamiento lógico-matemático.
CONCLUSIONES
El cambio de actitud de los estudiantes hacia la programación después del tutorial fue significativo y demostró una mayor conciencia de la importancia de la programación. Por lo tanto, los tutoriales de la Hora del Código inspiraron a los estudiantes a aprender las habilidades de la programación de computadoras y a trabajar el pensamiento lógico-matemático.
La Hora del Código está diseñada para aprovechar la tecnología de la información y abordar el desafío de lograr que las personas reconozcan un problema y puedan convertirlo en un algoritmo. También tiene como objetivo que los estudiantes participen en un tutorial que resalte cómo un problema puede tener una solución, expresada como un algoritmo que puede traducirse en código. Este código se puede ejecutar en una computadora para resolver el problema. Por lo tanto, para ayudar a las personas a apreciar la importancia de este proceso, los tutoriales de la Hora del Código se centran en problemas que los estudiantes pueden comprender fácilmente y en tutoriales que son divertidos de realizar. El propósito es la enseñanza y el aprendizaje.
La autora llevó a cabo un estudio pidiendo a un grupo de estudiantes de educación básica que participaran en un tutorial de la Hora del Código y luego preguntándoles sobre sus actitudes hacia la programación y su comprensión del conocimiento de programación. Los resultados indican el impacto positivo de la Hora del Código en las actitudes de los estudiantes hacia la programación. Sin embargo, completar un tutorial de la Hora del Código por sí solo no necesariamente afecta las habilidades de programación de los estudiantes, lo que sugiere que una combinación de tutoriales en línea con una clase tradicional de ciencias de la computación puede ser necesaria para mejorar el conocimiento de programación de los estudiantes.
* Universidad de Guadalajara, Guadalajara, México.
Contacto:mcns08@gmail.com
REFERENCIAS
Ali, A., y Smith, D. (2014). Teaching an introductory programming language in a general education course. Journal of Information Technology Education: Innovations in Practice. 13:57-67. Disponible en: http://www.jite.org/ documents/Vol13/JITEv13II- Pp057-067Ali0496.pdf
Dann, W. P., Cooper, S., y Pausch, R. (2011). Learning to program with Alice (w/CD ROM), Prentice Hall Press.
Lee, M., Pradhan, S., y Dalgarno, B. (2008). The effectiveness of screencasts and cognitive tools as scaffolding for novice object-oriented programmers. Journal of Information Technology Education: Research. 7(1):61-80. Disponible en: http://www.jite.org/documents/Vol7/JITEv7p061-080Lee332.pdf
Long, J. (2007). Just for fun: Using programming games in software programming training and education. Journal of Information Technology Education: Research. 6(1):279-290. Disponible en: http:// www.jite.org/documents/Vol6/JI-TEv6p279-290Long169.pdf
Malan, D.J., y Leitner, H. H. (2007). Scratch for budding computer scientists. ACM SIGCSE Bulletin. 39(1):223-227.
Maloney, J.H., Peppler, K., Kafai, Y., et al. (2008). Programming by choice: Urban youth learning programming with scratch. En: Proceedings of the 39th SIGCSE Technical Symposium on Computer Science Education, pp. 367-371.
Maloney, J.H., Resnick, M., Rusk, N., et al. (2010). The scratch programming language and environment. ACM Transactions on Computing Education (TOCE). 10(4):16.
Nikula, U., Sajaniemi, J., Tedre, M., et al. (2007). Python and roles of variables in introductory programming: Experiences from three educational institutions. Journal of Information Technology Education: Research. 6(1):199-214. Disponible en: http://www.jite.org/documents/Vol6/JITEv6p199-214Nikula269.pdf
Roy, K. (2012). App inventor for android: Report from a summer camp. En: Proceedings of the 43rd ACM Technical Symposium on Computer Science Education, pp. 283-288.
Rubio, M.A., Romero-Zaliz, R., Mañoso, C., et al. (2015). Closing the gender gap in an introductory programming course. Computers & Education. 82:409-420.
Sanders, M.E. (2008). STEM, STEM Education, STEMmania. The Technology Teacher. 68(4):20- 26.
Sykes, E.R. (2007). Determining the effectiveness of the 3D Alice programming environment at the computer science I level. Journal of Educational Computing Re- search. 36(2):223-244.
Wolber, D., Abelson, H., Spertus, E., et al. (2011). App Inventor. Sabastopol, CA, USA, O’Reilly Media, Inc.