domingo, 14 de abril de 2013

Herramientas para programar en Primaria



En relación al anterior post en el que analizábamos los pros y contras de enseñar a programar a niños y niñas de primaria, la siguiente cuestión que deberíamos plantearnos como docentes es: ¿Cómo enseñamos a los estudiantes a programar?

Hay un gran número de herramientas gratuitas que proveen una introducción a la programación y a la codificación de programas. Ignacio Cabral Perdomo propone el uso de cuatro de ellas: Scratch, Alice, Greenfot y BlueJ.

Las herramientas deben introducirse de manera progresiva, ya que cada una de ellas va incrementando el nivel de complejidad en cuanto a los conocimientos de codificación requeridos a los estudiantes. A continuación, se muestra una línea de tiempo con los rangos de edad que el autor considera más adecuados para cada herramienta.




       Dado, que nosotras planteamos dichas herramientas para ser utilizadas en la primaria nos vamos a centrar en las dos primeras: Scratch y Alice.

Scratch
Fue desarrollado por el “Lifelong Kindergarten group” en el Media Lab del Instituto Tecnológico de Massachusetts como un lenguaje de programación visual para niños de 6 años en adelante. Desde que se liberó en 2007, el sitio web de Scratch tiene más de 800,000 usuarios y en él se pueden hallar más de 1.7 millones de diversos proyectos, la mayoría relacionados con juegos y animaciones sencillas. Scratch, al igual que el resto de las herramientas mencionadas en este artículo fomenta que las creaciones se compartan como Creative Commons. Scratch es gratuito y puede correr en plataformas Windows, Mac y Linux. Los estatutos lógicos son mostrados al usuario como piezas de un rompecabezas y el programador puede arrastrarlos hacia la pantalla principal del programa. Es increíble la facilidad con la que se puede crear un sencillo programa de animación en unos 10 a 15 minutos. Una ventaja de Scratch radica en que la interfaz está disponible en español.
La cantidad de configuraciones que el niño puede realizar con las piezas esenciales es infinita y, de manera intuitiva, el niño va aprendiendo los conceptos de objetos y reusabilidad del software.

El nombre de Scratch se deriva de la técnica de “scratching” usada en el “Turntablism” (arte del DJ para usar los tornamesas), y se refiere tanto a la lengua y su aplicación. La similitud con el “scratching” musical es la fácil reutilización de piezas: en Scratch todos los objetos, gráficos, sonidos y secuencias de comandos pueden ser fácilmente importados a un nuevo programa y combinados en infinitas maneras permitiendo a los principiantes el conseguir resultados rápidos y estar motivados para intentar más. Podemos utilizar este programa para, tal y como dice su lema, programar, jugar y crear. 



Alice 
Alice es también un lenguaje de programación de tipo educativo libre y abierto, orientado a objetos con un IDE integrado en el mismo. Fue desarrollado en la Universidad Carnegie Mellon y está programado en Java. El entorno de Alice, al igual que Scratch se basa en el paradigma de “arrastrar y soltar” para crear mundos virtuales mediante el uso de modelos en 3D. La versión actual puede ser ejecutada en ambientes Windows, Mac y Linux. El diseño fundamental de Alice permite enseñar a los alumnos tanto la programación orientada a objetos como la orientada a eventos. De manera muy similar a Scratch, el usuario va creando su mundo virtual a través de la estructuración lógica de instrucciones que ya vienen pre-programadas en el IDE de Alice. Este software cuenta con un gran número de objetos (clases) pre-programados que el alumno puede combinar para la creación tanto de animaciones como historias en un mundo virtual.  

Alice busca resolver tres problemas fundamentales del software educativo:
 1.       La mayoría de los lenguajes de programación están diseñados para producir otros programas, cada vez más complejos. Alice está diseñado únicamente para enseñar a programar.
2.       Alice está íntimamente unido a su IDE. No hay que recordar ninguna sintaxis especial. De todas formas, acepta tanto el modelo de programación orientada a objetos como la dirigida a eventos.
3.       Alice está diseñada para el público que normalmente no se enfrenta a problemas de programación, tales como alumnos de secundaria, mediante un sistema de «arrastrar y soltar».

Al no existir en Alice un editor de código se alivian las dificultades del rigor sintáctico en los primeros pasos dentro de la programación orientada a objetos. Una ventaja del uso de Alice para introducir a los alumnos a la programación es la exigencia de la creatividad por parte del programador. El estudiante tiene que diseñar previamente en un “Story-board” su mundo virtual antes de iniciar con el proceso de creación de su mundo virtual. Otro punto a favor de Alice es que los alumnos se divierten al mismo tiempo que van, de manera intuitiva, aprendiendo los conceptos de instancia, atributos, métodos y funciones; incluso el tema de arreglos es soportado por el ambiente de programación Alice. 
  



miércoles, 10 de abril de 2013

Enseñar a crear, enseñar a programar

1. INTRODUCCIÓN

A partir de un artículo de opinión publicado en El País el pasado 7 de marzo, titulado: “Aprender a programar como se aprende a leer” surgió la idea de investigar acerca de este fenómeno sobre el que se está hablando intensamente en la red. Tomando como referencia esta temática, nos preguntamos: ¿Cuál debería ser el perfil de nuestros alumnos: creadores digitales o consumidores de contenidos? A simple vista, parece mucho más beneficioso lo primero, puesto que potencia su creatividad, su trabajo autónomo y su capacidad de expresión.

            Hoy, nos encontramos inmersos en la era de la informática y prácticamente todo lo que tenemos a nuestro alrededor funciona gracias a la programación, es decir, alguien da instrucciones a esas máquinas, que dominan nuestras vidas, para que ejecuten una determinada acción. En principio, podemos pensar que programar es una cuestión de adultos, pero en muchos países, se le está dando cada vez más importancia dentro del Currículum de la etapa educativa de primaria. No solo se aprende a programar sino a potenciar el pensamiento computacional y a resolver problemas. Los niños se sienten atraídos por los videojuegos, las animaciones y todo lo que lleve la imagen como soporte. Para dar respuesta a estas nuevas necesidades, aparecen programas interactivos como Scratch, que permite aprender de una manera divertida, donde el niño se convierte en el protagonista de su propio aprendizaje y puede dar rienda suelta a su imaginación.

A continuación, analizamos las ventajas e inconvenientes de incluir la programación en los planes de estudio de la educación Primaria y las conclusiones a las que hemos llegado tras una primera indagación en el tema que nos ocupa.


2. VENTAJAS

Actualmente el uso que se hace de los ordenadores en la escuela es básicamente para trabajos escolares, tareas, investigaciones y redes sociales, pero la mayoría de los alumnos (si no la totalidad de ellos) tiene una idea muy vaga sobre cómo funciona un ordenador (hardware) y menos qué es lo que la hace funcionar (software). La pregunta que surge aquí es: si los niños y jóvenes pueden aprender un segundo o incluso un tercer idioma a esa edad, ¿por qué no aprender a programar y escribir código?

En definitiva, se está utilizando sólo una parte de la tecnología digital: la manipulación de la información, su tratamiento y uso. Hay otra parte que también es relevante: la tecnología digital como medio de construcción. Programar un PC implica estructurar el pensamiento, las ideas, convertirlas en un proyecto de construcción para generar algo nuevo, no solamente para manipular lo que ya existe.

Desde esta perspectiva, utilizar los PCs (entendidos como herramientas elementales de acceso a la tecnología digital, pero no las únicas) para crear proyectos genera algunas ventajas sobre el uso habitual de los mismos:

  • Es una herramienta motivadora y despierta la curiosidad de los niños.
  • Permite desarrollar el pensamiento abstracto y algorítmico.
  • Ayuda a estructurar el pensamiento.
  • Pone en marcha procesos creativos que pueden ser realizados a través de grupos de trabajo (aprendizaje cooperativo).
  • La programación les permite controlar dispositivos reales de entrada y salida, física (energías, fuerza y velocidad) y conceptos matemáticos (trigonometría, geometría...).
  • Aglutina la utilización de diferentes “inteligencias” en proyectos compartidos: lingüística, matemática, artística, espacial, musical, interpersonal e intrapersonal.
  • El profesor adquiere un rol más de facilitador, guía, inspirador.
Resumiendo, aprender a programar tiene un uso directo en la adquisición de la competencia digital, y este uso en la escuela es obviado. No se trata de convertir al alumnado en programadores expertos, lo que está condenado al fracaso, dado que, hasta este punto, sólo debería llegar aquel sector del alumnado que realmente desee desarrollar su labor profesional en dicho ámbito. Sin embargo, sí se debería empezar a plantear la necesidad de incluir el aprendizaje del lenguaje de programación en niveles de primaria para que los alumnos además de consumidores de software, realmente entiendan cómo funciona la tecnología y sean capaces de crear por ellos mismos.


3. INCONVENIENTES

Por otra parte, es importante tener en cuenta los inconvenientes a los que nos enfrentamos cuando hablamos de enseñar a programar a niños de entre 6 y 12 años, puesto que es necesario ser realista y no dejar que la creciente necesidad de enseñar programación nuble otros aspectos educativos en su detrimento. Además, conocer los aspectos negativos es la mejor manera de enfrentarse a los mismos. Los principales inconvenientes contra los que combatir son:

  • Es mejor aprender matemáticas de manera tradicional, con tablas de multiplicar y ábacos.
  • Falta de formación del personal docente.

A simple vista, es evidente que son mucho menores los inconvenientes que las ventajas respecto al tema que nos ocupa. No obstante, el hecho de estar en desventaja respecto al número no implica que sean de menor importancia. Es precisamente la carencia de formación de los maestros la principal barrera para que la programación sea una realidad en los centros de educación primaria.


4. CONCLUSIÓN

Aunque actualmente en la mayoría de las escuelas el uso que se les da a los ordenadores suelen ser para investigar, hacer trabajos escolares y las redes sociales, tenemos que ser conscientes que los niños navegan constantemente por Internet sin conocimientos sobre cómo desarrollar una aplicación, aunque dediquen gran tiempo a los videojuegos sin ser conscientes de cómo se crean.

Debemos de tener en cuenta que el sistema educativo español no es muy prometedor, ya que los docentes son bastantes reticentes a la informática y tampoco se les pone fácil aproximarse a ella en función de sus capacidades y necesidades.

Pero sin duda, el futuro es tecnología. La programación es una habilidad que ayudará a los niños y niñas a resolver problemas y poder enfrentarse a ellos sin ninguna dificultad. Hay que concienciarse que no es necesario saber programar perfectamente, si no desarrollar el pensamiento abstracto, controlar dispositivos de entrada y salida, saber trabajar en equipo, sabiendo que cada niño puede estar especializado en una tarea, y bajo la supervisión de otros equipos, ya que el maestro tendrá la función de facilitador y guía.

Como dijo Confucio, “Me lo contaron y lo olvidé; lo vi y lo entendí; lo hice y lo aprendí”.

Vídeo cortesía de www.code.org

En el siguiente post os ofreceremos los lenguajes de programación más adecuados para los niños y señalaremos algunos recursos educativos diseñados para aprender el significado de programar. Esperamos que sigáis leyéndonos.