2. MARCO TEÓRICO
2.2 EXPERIENCIAS DE ENSEÑANZA DE PROGRAMACIÓN PARA NIÑOS Y JÓVENES
2.2.3 Determinación y clasificación de técnicas
Se ha propuesto una clasificación de técnicas utilizadas para la enseñanza de la programación a partir de las experiencias encontradas, de la siguiente forma:
Tabla 2. Clasificación de técnicas utilizadas para la enseñanza de programación en niños y jóvenes
Técnica Experiencias en que se aplicó
Uso de videojuegos para la enseñanza
Rogozhkina & Kushnirenko (2011); Lee & Ko (2011)
Creación de proyectos con temática fija
Liu, Cheng, & Huang (2011); Valente (2004); Sipitakiat & Nusen (2012); Zuckerman, Arida, & Resnick (2005); Tarkan, y otros (2010)
Creación de entornos para generación de situaciones
Felleisen, Findler, Flatt, & Krishnamurthi (2009); Wolz, Leitner, Malan, & Maloney (2009); Burke & Kafai (2010); Kelleher, Pausch, & Kiesler (2007); Meyers, Cole, Korth, & Pluta (2009); Rizvi, Humphries, Major, Jones, & Lauzun (2011)
Creación de videojuegos Doerschuk, Liu, & Mann, (2012), Javidi & Sheybani (2009), Rodger, y otros (2010)
Herramientas computacionales como apoyo a la resolución de problemas
Abramovich (2013)
Generación de torneos o competencias
Tomcsányiová & Tomcsányi (2011)
Fuente: Autor del proyecto
Uso de videojuegos para la enseñanza: La primera técnica encontrada en estas
18 experiencias para la enseñanza de la programación se encontró en la generación de interés por este aprendizaje mediante el uso de videojuegos. Se clasificó en esta técnica el uso de elementos computacionales tipo juego que presentaran un objetivo particular, una historia de fondo, un conjunto de reglas a seguir y un conjunto de niveles a cumplir. Dentro de las experiencias revisadas en el estado del arte que utilizaron el uso de juegos para la enseñanza se encontraron la de Rogozhkina & Kushnirenko (2011) que usa un entorno de juego llamado PiktoMir, y la de Lee & Ko (2011) con un juego llamado Gidget.
El objetivo del experimento de Rogozhkina & Kushnirenko (2011) fue determinar la factibilidad de usar la herramienta en la enseñanza de los primeros elementos de programación a niños de nivel preescolar dado que los ambientes de enseñanza de la programación requieren tradicionalmente de ambientes de escritura, y por consiguiente los estudiantes deben tener una habilidad para leer y escribir apropiadamente, estableciendo un rango de edad limitado para que los niños pudieran tener la posibilidad de aprender. Se trabajó con 42 niños entre 5 y 7 años de una escuela preescolar en Moscú, con poca habilidad para la lectura y la escritura, utilizando el programa PiktoMir, un juego que presenta un ambiente sin texto que brindara soporte a la enseñanza de la programación a los niños, el cual trata sobre un pequeño robot llamado Fidget que debe arreglar recubrimientos dañados en el piso, y al cual se le deben asignar las órdenes dado que este robot no puede tomar decisiones por sí mismo. Se realizó el experimento en 8 semanas, en 2 jornadas semanales de 20 minutos cada uno. En la primera jornada se enseñaba la teoría del juego sin el uso del computador, y la segunda jornada se realizaban ejercicios de programación. Durante la ejecución del experimento se tomaba un registro en el que se apuntaba el material de enseñanza, procedimientos de clase, retroalimentaciones y observaciones generales. Al completar el curso los niños fueron sometidos a un examen final, en el cual se presentaban 3 bloques de tareas, cada uno de 6 tareas, en los cuales el estudiante debía dibujar el desplazamiento del robot después de presentar un conjunto de instrucciones o encontrar el error de una serie de instrucciones mostrando el movimiento del robot.
En cuanto a la experiencia de Lee & Ko (2011), se tuvo como objetivo mostrar una mejora motivacional en la programación para un aprendizaje exitoso, por medio de una herramienta que brindara una retroalimentación más adecuada de los errores que pueda presentar, sin el uso de mensajes de fallo en un programa. Para el proyecto se reclutaron inicialmente 250 personas de todo el mundo a través de un sistema llamado Amazon Mechanical Turk. Se presentaron personas entre los 18 y los 59 años, para que jugaran una aplicación llamada Gidget, desarrollada en HTML5 y JavaScript mediante jQuery, la cual se guiaba a través de niveles que enseñaban el diseño y el análisis de los algoritmos usados por un robot, el cual debía ayudar a limpiar un derrame de químicos en un terreno con el fin de proteger la vida silvestre, encontrando elementos en el terreno, desplazándose, chequeando sus características y moviéndolos a otro lugar. Se requirió para el
experimento que los participantes completaran un conjunto de 15 niveles en el juego, comparando los resultados de personas que recibieron una retroalimentación más adecuada de los errores contra los resultados de las personas que no recibieron retroalimentación suficiente.
Creación de proyectos con temática fija: Dentro de las experiencias revisadas
en el estado del arte, se encontró una técnica interesante que consiste en la creación de diversos tipos de proyectos usando para ello simuladores o aplicaciones que admitieran manipular el entorno de trabajo para generar diversas situaciones, permitiendo así plantear problemas particulares que pudieran ser resueltos a través del razonamiento lógico aplicando procedimientos algorítmicos. Estas técnicas pudieron clasificarse dependiendo del sistema utilizado (ya sea hardware especializado, software o una combinación de ambas). Además, se tuvo en cuenta que en los experimentos presentados se muestra una limitante de trabajo hacia una temática particular. Dentro de estas experiencias se encontraron el uso de cartas computacionales de Valente (2004), los sistemas de bloques de (Sipitakiat & Nusen, 2012) y de (Zuckerman, Arida, & Resnick, 2005); el trabajo de Liu, Cheng, & Huang (2011) usando el simulador Train B&P y la experiencia de creación de recetas de (Tarkan, y otros, 2010) usando el programa Toque.
El experimento de las cartas computacionales de Valente (2004) se basó en una propuesta de un curso exploratorio para niños con el fin de enseñar programación de una manera teórica, dado que los algoritmos y la programación han sido considerados a menudo como campos muy formales o complejos y se ha buscado desde hace tiempo representarlos de una forma más sencilla, a través de objetos físicos e interacciones con otros. El objetivo de este artículo fue presentar el curso propuesto para la enseñanza de la programación. Cada carta se comporta como un elemento sobre el cual se transporta un elemento computacional que es definido, construido y transportado dependiendo de cómo se coloquen las cartas y de un conjunto de reglas formales definidas. Cada carta se conformaba de una pequeña pieza cuadrada de papel con un dibujo en su parte superior y con indicadores de entrada y salida llamados puertos. Luego de armar un circuito con las piezas cuadradas, se procede a utilizar un indicador que se debía desplazar sobre estas cartas, respetando una serie de reglas.
Los trabajos de Sipitakiat & Nusen (2012) y de Zuckerman, Arida, & Resnick (2005) presentaron sistemas de programación tangibles, los cuales se han
convertido en una nueva tendencia en la enseñanza de la programación, permitiendo que los estudiantes puedan crear un programa conectando bloques físicos compuestos por componentes electrónicos que generaban un conjunto particular de instrucciones, los cuales se debían combinar para controlar el movimiento de un robot. En el experimento de Sipitakiat & Nusen (2012) se trabajó con el sistema RoboBlocks, con 52 niños entre 8 y 9 años, realizando actividades que implicaran mover el robot entre un laberinto o realizando un gráfico en el suelo. Se trabajó también un proceso de depuración con los estudiantes cuando no se obtenía el resultado esperado. Se trabajó con tres formas de depuración: la revisión paso a paso, la inserción de banderas en el lugar del problema y el transportador (un medidor de giro para el robot). Un aspecto particular encontrado en este experimento fue que aunque fue bastante motivador para los niños al principio, se perdía esta misma motivación al no presentar actividades que brindaran una solución a problemas diferentes a los movimientos restringidos de los robots. El experimento de Zuckerman, Arida, & Resnick (2005), se basó también en el ensamble de bloques electrónicos, pero para encender luces o emitir sonidos. En este caso particular, se les catalogó como manipulativos tipo Montessori porque estos bloques físicos permitían generar un mejor modelamiento de conceptos más abstractos. Se realizó el experimento con 25 niños entre 4 y 11 años, desarrollando un conjunto de proyectos que permitían establecer conceptos más complejos como tasas, acumulación, retroalimentación y probabilidad. Sin embargo se logró apreciar que aunque se intentó enseñar temas con un alto nivel de abstracción, solo estudiantes de 10 años lograban establecer analogías interesantes dado que a esta edad se encuentran hasta ahora desarrollando la capacidad cognitiva de abstracción.
La experiencia con el simulador de Liu, Cheng, & Huang (2011) se realizó para investigar el efecto del uso de simuladores en la resolución de problemas computacionales. Participaron en esta experiencia 117 estudiantes de bachillerato que ingresaron a una universidad al noreste de Taiwan, quienes se inscribieron a la asignatura "Introducción a las Ciencias de la Computación" y no tenían ninguna experiencia en la programación. La creación y el control de transporte de un sistema de ferrocarril fue el contexto de trabajo para el desarrollo de dicho experimento, dado que podía contar con un micromundo que le permitiera a los aprendices ser “arquitectos”, generando ideas de construcción y probándolas, utilizando lo que se conoce como aprendizaje por construcción, el modelo
pedagógico presentado por Papert (1980). El programa Train B&P es una simulación de un sistema de construcción de ferrocarriles, en el cual los estudiantes pueden diseñar sistemas de carriles y establecer mediante programación los comportamientos del desplazamiento de los trenes en los rieles. Previo a la aplicación del experimento con la herramienta, se les presentó un contenido basado en lecciones teóricas sobre programación básica (algoritmos), y se les hizo una prueba antes de trabajar con la herramienta para medir su nivel de “flujo”. Luego, los estudiantes participaron durante dos semanas en el uso de esta herramienta, tiempo en el cual se tomaron indicadores adicionales de actividad. Durante este tiempo, a los estudiantes se les enseñaban los conceptos de orientación a objetos, condicionales, iteraciones y comunicaciones entre objetos. Al finalizar el experimento se realizó una prueba final de experiencia de aprendizaje en la que pudieron obtener impresiones sobre lo que aprendieron con el juego, esperando que se tuviera una visión de cómo el juego de simulación había generado habilidades de resolución de problemas computacionales obtenidos de los registros de actividad y de las pruebas.
El trabajo de Tarkan y colaboradores (2010) se basó fundamentalmente en mostrar la importancia del uso de la narración, y la generación de argumentos para la enseñanza de la programación con el fin de superar limitaciones impuestas por la aplicación. Para ello los investigadores, en conjunto con un grupo de niños, desarrollaron un lenguaje de programación llamado Toque implementándolo en un escenario de cocina, para crear programas tipo “recetas” con animaciones controladas con un dispositivo de detección de movimiento. Los niños que participaron en el proceso de creación del programa fueron 9 niños de 7 a 11 años y el programa se desarrolló durante dos años, quienes no solo desarrollaban el programa sino que también jugaban con su propia creación para determinar aspectos por mejorar y trabajar proyectos al respecto.
Creación de entornos para generación de situaciones: Se encontró una
técnica en la cual se utiliza una herramienta de desarrollo para crear un entorno particular desde cero, y por medio de procesamientos secuenciales lógicos y/o matemáticos se establecen situaciones interesantes en los cuales los niños pueden explorar y manipular mediante la programación. Entre las exeriencias que utilizaron esta técnica se encontraron las de Felleisen, Findler, Flatt, &
Krishnamurthi (2009) mediante el uso del entorno de programación Dr. Scheme, los trabajos de Wolz, Leitner, Malan, & Maloney (2009); Burke & Kafai (2010) y Rizvi, Humphries, Major, Jones, & Lauzun (2011) quienes usaron el entorno de programación Scratch, la experiencia de Kelleher, Pausch, & Kiesler (2007) con el entorno Alice, y el trabajo de Meyers, Cole, Korth, & Pluta (2009) con el entorno de programación Processing.
Felleisen, Findler, Flatt, & Krishnamurthi (2009) crearon en su propuesta entornos que requirieron funciones matemáticas para determinar y controlar el comportamiento de cohetes usando Dr. Scheme, un entorno que utiliza el paradigma de programación funcional. En dicho experimento se buscó proveer un currículo que presentara una forma de enseñar conceptos pre-algebraicos en estudiantes de bachillerato, trabajando en pruebas de teorías matemáticas y diseño orientado a objetos. En este experimento se trabajó con estudiantes de educación media (de 10 a 14 años), y han trabajado con estos estudiantes desde el año 2006 creando un conjunto de proyectos tipo juego e implementando un curso especial de 9 semanas de duración con sesiones de dos horas semanales. Los autores de dicha experiencia ya habían trabajado con este entorno de programación desde el año 2003 con estudiantes universitarios, realizando otro tipo de proyectos.
Wolz, Leitner, Malan, & Maloney (2009) utilizaron el entorno Scratch para crear todo tipo de entornos 2D que involucraran procesos asincrónicos y concurrentes, tales como videojuegos, historietas, tarjetas animadas, parodias de televisión, tutoriales educativos, simulaciones científicas, entre otros, siendo este experimento aplicado en estudiantes que iniciaban el curso de ciencias de la computación en la universidad. En su artículo, los autores presentaron una justificación de integración del trabajo con Scratch en el currículo de ciencias de la computación para los primeros grados de universidad, basados en la capacidad de generar una transición más amigable en la enseñanza de la programación para lenguajes más robustos como Java o C. Rizvi, Humphries, Major, Jones, & Lauzun (2011) utilizaron Scratch para la creación de animaciones, proyectos multimedia y juegos con el fin de aplicarlo en el curso inicial de ciencias de la computación y determinar la eficacia en este curso de la mejora de la retención, el rendimiento y la actitud en cuanto a sus habilidades de programación. En esta experiencia se trabajó con estudiantes que recién se matricularon a la universidad y tomaron el
curso de ciencias de la computación. En particular, centraron su atención en estudiantes “en riesgo”, es decir, estudiantes con una preparación muy débil en matemáticas. Con dichos estudiantes se buscó trabajar en la elaboración de varios proyectos multimedia, los cuales involucraron el uso de una cantidad significativamente alta de gráficos, elementos animados y sonidos. Scratch fue usado también por Burke & Kafai (2010) para trabaja con jóvenes de último grado de bachillerato (K-12), con el fin de crear historias y determinando si la creación de programas de computador por parte de los niños podría ayudarles a desarrollar su capacidad de narrar cuentos y mejorar sus habilidades de escritura. Aunque se trabajó en la enseñanza de los conceptos básicos de la programación en dicho experimento, se observó que durante un tiempo de 6 semanas se enfocó más en los conceptos usados en el desarrollo de las historias que en los componentes técnicos del desarrollo de los programas.
Kelleher, Pausch, & Kiesler (2007) trabajaron también en la creación de historias usando la herramienta Alice. En este experimento se trabajó con 88 niñas de las tropas Scout de un promedio de 12.5 años, con el fin de demostrar que se puede desarrollar un sistema de enseñanza de la programación que pueda presentar a los niños y muy particularmente a las niñas una experiencia positiva con la programación de computadores, inspirando a más estudiantes a continuar con estos tipos de asignaturas de ciencias de la computación e incluso mejorar la representación de las mujeres en esta área. Los autores de esta experiencia habían trabajaron previamente con la herramienta Alice desde el año 2005.
Meyers, Cole, Korth, & Pluta (2009) usaron la herramienta Processing para enseñar ciencias de la computación mediante la creación de música computacional. En esta experiencia se trabajó con niños de los grados 6° a 12° (entre 12 y 17 años) con cierta experiencia musical y habilidad matemática. Se realizó un curso intensivo de 16 días, los cuales se trabajaban entre semana 2 horas y media y los sábados durante una jornada de 7 horas.
Creación de videojuegos: Otra técnica muy interesante es el uso de
herramientas de desarrollo para creación de videojuegos. Se asemeja mucho a la técnica anterior en cuanto que se debe crear un entorno desde cero y se debe también generar procesamientos secuenciales lógicos y/o matemáticos para
establecer situaciones de juego. Estas situaciones de juego se logran obtener mediante una explicación adicional sobre las bases para la creación de juegos. Entre las exeriencias que utilizaron esta técnica se encontraron las presentadas por Doerschuk, Liu, & Mann (2012) mediante el entorno de programación Greenfoot, el experimento de Javidi & Sheybani (2009) quienes trabajaron con dos entornos llamados Kahootz y Squeak, y la experiencia de Rodger, y otros (2010) quienes enseñaron a desarrollar videojuegos utilizando Alice.
Doerschuk, Liu, & Mann (2012) presentaron en su experiencia una forma para poder incrementar la participación estudiantil en los programas de Ciencias de la Computación en la Universidad Lamar en Texas (EE.UU.). Para ello desarrollaron un plan estratégico llamado “INSPIRED”, que abordó la enseñanza de la creación de videojuegos a estudiantes de primer semestre de universidad. En conjunto con un grupo de estudiantes de último semestre crearon los materiales instruccionales, enseñaron y ayudaron a aplicar este plan. Para ello utilizaron la herramienta Greenfoot, un entorno gratuito para el desarrollo de videojuegos basado en Java, y prepararon una serie de recursos y ambientes para preestablecer los escenarios, los objetivos y las reglas de los juegos. A su vez, prepararon el material educativo y los códigos fuente de varios de los juegos que los estudiantes debían modificar, significando que en varios proyectos los estudiantes no partían desde cero sino que aprendían conceptos a partir de recursos y proyectos ya existentes.
Javidi & Sheybani (2009) desarrollaron un plan similar para estudiantes de bachillerato en Virginia (EE.UU.), llamado “DIGINSPIRED” que tuvo como objetivo no solo enseñar sobre programación de computadores sino también sobre la creación de gráficos computacionales y animación, y enseñar sobre tecnologías requeridas para la creación de este tipo de videojuegos. El trabajo consistió en la creación de juegos cuya temática abordara una de 4 áreas de ciencias: reciclaje, nutrición, ejercicio físico o consumo de drogas. Se elaboró el proyecto con 89 estudiantes de 3 diversos colegios de bachillerato durante el año, asistiendo a 15 sesiones los días sábados y un curso adicional de verano. Se observó que en el desarrollo de videojuego, varios estudiantes demoraron dos semanas en su implementación.
Rodger y colaboradores (2010) integraron el desarrollo de videojuegos en varias áreas en los niveles de educación básico, medio y universitario. En esta experiencia se identificó que, utilizando esta técnica, los estudiantes de 3° a 5°
grado deberían estar en la capacidad de crear y seguir un algoritmo para poder codificar y probar un sencillo programa secuencial mientras que un estudiante de 6° a 8° debería poder ser capaz de codificar y probar programas para resolver un problema usando variables, decisiones y ciclos. También se observó que han trabajado en este proyecto durante 8 años a nivel de bachillerato y 4 años a nivel universitario, habiendo generado una serie de recursos entre tutoriales y archivos para usar en el desarrollo de los juegos.
Uso de herramientas computacionales como apoyo a la resolución de problemas: Se encontró esta técnica revisando la experiencia de investigación de
Abramovich (2013). El autor presentó una compilación de 10 reportes de experiencias en varios países que trabajaron con esta técnica. Abramovich argumentó que la efectividad en la enseñanza de las teorías matemáticas depende del uso apropiado de tecnologías para soportar su enseñanza, demostrando la dualidad de la enseñanza y el uso de los computadores. En las experiencias presentadas por el autor, se mencionaron algunas herramientas