Este documento discute las motivaciones para introducir la programación en la educación primaria y secundaria. Explora varias alternativas de lenguajes de programación que se pueden usar en el aula, incluyendo Logo, Smalltalk, Scratch, Alice y Croquet. Cada lenguaje se describe brevemente con sus fortalezas para la enseñanza. El documento concluye que estos entornos de programación pueden ayudar a desarrollar habilidades como la resolución de problemas y el razonamiento lógico en los estudiantes.
1. Cuaderno Red de Cátedras Telefónica
Aprender programando: motivaciones y 1
alternativas
NTIC y Educación
Cuaderno Red de
Cátedras Telefónica
Aprender programando:
motivaciones y alternativas
Cátedra Telefónica de la Universidad de Deusto
Motivaciones y alternativas para introducir la programación como
competencia dentro del currículum educativo de primaria y
secundaria
Belate Atorrasagasti
Borja Sedano
Abril 2011
2. Cuaderno Red de Cátedras Telefónica
Aprender programando: motivaciones y 2
alternativas
Biografía
Belate Atorrasagasti
Ingeniera en Informática por la Universidad de Deusto en 2010,
colabora en la Cátedra Telefónica – Deusto programando junto al
desarrollador Jorge Bastida el proyecto de red social orientada a la
programación “3DU” (http://www.3du.es).
Borja Sedano
Ingeniero en Informática por la Universidad de Deusto en 2010,
colabora en la Cátedra Telefónica – Deusto desarrollando
actividades educativas en Scratch (http://scratch.mit.edu) para
primaria.
3. Cuaderno Red de Cátedras Telefónica
Aprender programando: motivaciones y 3
alternativas
Índice
1. ¿Deberían los niños aprender a programar?
2. Alternativas para introducir la programación en el aula
2.1. Logo
2.2. SmallTalk
2.3. Squeak
2.4. Scratch
2.5. Plopp
2.6. Alice
2.7. Croquet
2.8. Phrogram
2.9. 3DU
2.10. Comparativa de todas ellas
3. Conclusiones
4. Cuaderno Red de Cátedras Telefónica
Aprender programando: motivaciones y 4
alternativas
1. ¿Deberían los niños aprender
a programar?
Con la introducción de las nuevas tecnologías en las clases se produce un debate
que se viene dando desde hace años en otros foros más minoritarios: incluir la
programación como materia de estudio en la escuela. Algunos detractores de la
propuesta se basan en prejuicios creyendo que la programación no tiene utilidad
más allá de la informática.
De la misma manera que se enseña a los niños a escribir sin el objetivo de que se
dediquen profesionalmente a ello, puede comprenderse el uso de la programación
para trabajar habilidades no específicas de la informática. Pese a llevar ya décadas
siendo estudiados los beneficios de enseñar a programar, parece que ahora es el
momento de sacarlo del entorno de la informática y aplicarlo a pie de aula.
Si bien es cierto que el aprendizaje de la programación básica, resolución de
problemas mediante algoritmos, se puede realizar con lápiz y papel, son muchas las
puertas (o ventanas) que nos abren nuevos lenguajes de programación y entornos.
Enseñar a programar puede aportar resultados psicopedagógicos que se persiguen
con otras materias.
Algunas de las capacidades que se pueden trabajar son:
- Razonamiento lógico para la resolución de problemas, con el uso de
estructuras condicionales e iterativas.
- Abstracción de problemas en un entorno motivador y con significado.
- Priorización de necesidades, recursos y posibilidades.
- Adquisición de conceptos computacionales y matemáticos, como
coordenadas, variables o números aleatorios.
- Aprendizaje del proceso iterativo del diseño, desde la concepción de una idea
hasta el desarrollo, pasando por el prototipado y la depuración.
- Desarrollo de habilidades con las nuevas tecnologías y manejo del ordenador.
5. Cuaderno Red de Cátedras Telefónica
Aprender programando: motivaciones y 5
alternativas
Este cuaderno de la Red de Cátedras Telefónica se centra en la utilización de la
programación en la educación trabajando competencias a partir de la creación de
juegos, animaciones y programas similares. Dado el alto potencial de los entornos de
desarrollo (IDE) actuales, personal docente se puede ver beneficiado por los
lenguajes que primeramente estaban orientados a un público infantil o juvenil y
crear aplicaciones propias para su utilización en el aula. Hay lenguajes concretos que
tienen un desarrollo bastante avanzado y una comunidad muy activa que trabaja
constantemente en mejoras.
A continuación se analizan diferentes alternativas en lenguajes de programación que
se están dando actualmente para llegar a una conclusión general.
6. Cuaderno Red de Cátedras Telefónica
Aprender programando: motivaciones y 6
alternativas
2. Alternativas para introducir
la programación en el aula
2.1. Logo
Logo es probablemente el lenguaje de programación orientado a jóvenes más
antiguo, su primera versión vio la luz en 1967. Pese a su antigüedad, se puede
considerar vigente y ha supuesto el primer contacto con la programación para
muchas generaciones.
Su característica más explotada ha sido la de generar gráficos. A partir de dar
instrucciones de movimiento a una tortuga, se generan gráficos con el rastro que
deja la misma. Trabaja de manera excelente el razonamiento lógico y la visión
espacial en la elaboración de los gráficos. Logo es un lenguaje que soporta
instrucciones en diferentes idiomas, y es uno de los pocos lenguajes que tiene
instrucciones en español. Pese a que actualmente haya lenguajes y entornos mucho
más desarrollados, sobre todo la interfaz, no hay que ignorar el alto potencial de
Logo para trabajar habilidades específicas.
2.2. Smalltalk
Smalltalk es un lenguaje de programación enfocado a la educación, fue creado en el
Palo Alto Research Institute de Xerox durante los años setenta que mediante la
interacción con un entorno de objetos virtuales permite realizar tareas de
computación. El principal objetivo de este lenguaje era motivar el espíritu creativo
de los usuarios, facilitando un medio para la experimentación, investigación y
creación.
Este lenguaje está considerado como uno de los primeros lenguajes orientados a
objetos. Los únicos elementos de un programa Smalltalk son los objetos, tales como
los números reales o incluso el propio entorno. Éstos se comunican entre ellos
mediante el envío de mensajes.
7. Cuaderno Red de Cátedras Telefónica
Aprender programando: motivaciones y 7
alternativas
El entorno o
ambiente de
Smalltalk es
básicamente gráfico
y funciona como un
sistema en tiempo
de ejecución que
integra varias
herramientas de
programación,
utilidades
multimedia,
interfaces para
ejecutar código no
nativo a Smalltalk y
servicios del sistema
operativo. Esto ha
influido en la
metodología de
trabajo y la creación
de la programación.
Smalltalk se considera más que un simple lenguaje de programación. Se diferencia
de las herramientas de programación tradicionales en que la forma de programar no
consiste en arrancar un editor de texto, compilar y ejecutar, en vez de eso, medi
mediante
el Navegador del Sistema, se manipula el entorno mismo, como si fueran piezas de
LEGO, arrastrando y soltado cada pieza en el entorno. Esto hace que sea más
,
intuitivo y fácil que otros lenguajes de programación.
2.3. Squeak
Squeak como herramienta de aprendizaje, fue desarrollado en 1997 bajo Squeak
de
Licence, fue reemplazada en el 2006 bajo la licencia de código abierto de Apple
Public Source License. Desde sus orígenes está diseñado específicamente para
enseñar conceptos básicos de programación a niños utilizando medios de
niños
comunicación como texto, vídeo, sonido, música, gráficos 2D, gráficos 3D,
TextToSpeech, etc. El código está escrito en Smalltalk y funciona en la mayoría de
los sistemas operativos.
8. Cuaderno Red de Cátedras Telefónica
Aprender programando: motivaciones y 8
alternativas
El funcionamiento
básico de Squeak es la
de un simulador de
mundos virtuales donde
es posible experimentar
con la realidad o con la
imaginación. Se basa
en un diseño que hace
que pueda ser utilizado
por niños de todas las
edades e incluso
adultos. El entorno
multimedia que posee
es muy variable, lo que
lo hace no tener
muchas limitaciones.
Los objetos existentes en estos mundos tienen la opción de cambiar sus propiedades
como puede ser su tamaño o su posición. A estos objetos se les puede atribuir un
comportamiento como rotar, emitir sonido, desplazarse, etc. Esto se realiza creando
sto
un guión o guiones. Con el uso de estos mundos se ayuda a descubrir de manera
natural las ganas de investigar, crear, etc. propias de todos los niños.
.
Squeak enseña mediante la construcción conceptos básicos de la programación
como puede ser control de flujo, bucles, señales, etc.
2.4. Scratch
Scratch es un lenguaje de programación desarrollado por el MIT para enseñar a
programar a jóvenes y primerizos en la programación. Es un lenguaje nuevo y
bastante novedoso, apareció en mayo de 2007. Scratch soporta el desarrollo de
juegos de ordenador, historias interactivas, arte gráfico y animación, así como otros
tipos de proyectos multimedi
multimedia.
La creación de programas es muy simple, se realiza mediante la unión de bloques.
Cada bloque puede albergar desde una simple sentencia hasta complejos
algoritmos. La programación queda reducida a la unión, a través de una interfaz
9. Cuaderno Red de Cátedras Telefónica
Aprender programando: motivaciones y 9
alternativas
gráfica muy trabajada, de bloques, como si de la construcción de un Lego se tratara.
,
El entorno de desarrollo de Scratch permite la edición de imágenes, y suministra una
gran biblioteca de sonidos e imágenes para su utilización.
Además de su completo IDE, una gran ventaja de Scratch es que está soportado por
una gran comunidad de desarrolladores y usuarios, que a través de la red social del
lenguaje de programación, comparten y comentan programas.
La integración de Scratch
con la web es muy alta, ya
que al colgar cualquier
programa en la red social
rograma
(acción que se realiza
directamente desde el
IDE) se permite incrustar
el programa en cualquier
otra Web. Es, sin duda, de
los lenguajes que más
fuerza están teniendo
últimamente.
2.5. Plopp
Plopp es una herramienta que permite crear dibujos en 3D a partir de 2D, diseñada
crear
sobre todo para el uso de los más pequeños. Plopp en ningún momento requiere la
lectura de texto, todo es mediante gráficos, esto hace que la herramienta pueda ser
usada por niños de muy temprana edad.
Los gráficos utilizados en la herramienta son sencillos y de fácil comprensión y uso.
cos
Además para mayor comprensión tenemos a Plipp, personaje que habita en el
mundo Plopp, que sirve como ayuda, aconsejando, en cualquier momento por si
surge alguna duda en el mane de la herramienta.
manejo
10. Cuaderno Red de Cátedras Telefónica
Aprender programando: motivaciones y 10
alternativas
Una vez finalizada la
escena creada en 3D la
herramienta Plopp te
permite imprimirla, usarla
como fondo de pantalla o
enviarla como postal
electrónica.
2.6. Alice
Alice es un lenguaje de programación libre y abierto. Al igual que Scratch, también
e
tiene un entorno de desarrollo (IDE) integrado, con lo que las tareas de
programación se facilitan bastante. Su interfaz es bastante intuitiva, ya que utiliza
interacciones sencillas basadas en “agarrar y soltar” (“drag&drop
nteracciones drag&drop”), con las que
poder programar a través del ratón
ratón.
Alice está especialmente orientado a la educación, concretamente a la creación de
animaciones con las que interactuar. La programación, de la misma manera que
Scratch, supone la unión de bloques de código, pero a diferencia de Scratch, está
más orientada al 3D.
Cabe destacar que Alice soporta dos paradigmas de programación: la orientada a
objetos y la orientada a eventos. Actualmente en fase Beta, Alice 3.0 está
desarrollado en combinación con el popular juego Los SIms 2, de Electronic Arts, con
lo que se pueden utilizar los modelos de personajes conocidos a partir del juego.
2.7. Croquet
Croquet Consortium, ha sido formado por HP, Duke University, la Universidad de
Minnesota y Qwaq Inc. Es una plataforma de código abierto para la educación,
ta
11. Cuaderno Red de Cátedras Telefónica
Aprender programando: motivaciones y 11
alternativas
investigación y entorno corporativo. Pretende modificar nuestra manera de manejar
el ordenador adentrandonos en el universo virtual 3D.
Es un potente entorno para software de desarrollo que permite crear y desplegar
múltiples aplicaciones de colaboración online de múltiples usuarios para múltiples
sistemas operativos y dispositivos. Cobalt es una emergente aplicación de código
abierto, diseñado para quienes les interese crear mundos virtuales que se puedan
virtuales
compartir y se está construyendo a través de una comunidad que se basa en el uso
de Croquet SDK. Se ejecuta sobre una máquina virtual Smalltalk como Squeak, es
decir es derivado de Squeak. Croquet dispone de una arquitectura que soporta la
comunicación, colaboración, intercambio de recursos y la sincronía entre varios
usuarios en múltiples dispositivos.
Usando Croquet, desarrolladores de software pueden crear y vincular aplicaciones y
simulaciones en 2D y 3D sobre potentes plataformas colaborativas de múltiples
colaborativas
usuarios, haciendo posible el desarrollo distribuido a larga escala, rico en funciones y
entornos virtuales.
2.8. Phrogram
Phrogram es un lenguaje de programación creado por
Jonah Stagner para que su hijo aprendiera a
programar ya que vio que las herramientas existentes
eran muy complicadas de utilizar por los
programadores novatos. Creando así un grupo de
herramientas que hacen del aprender a programar
algo divertido y fácil. Phrogram también tiene como
objetivo hacer que la transición desde un lenguaje
ansición
sencillo como puede ser Phrogram a los lenguajes más
avanzados sea sencillo, proveyendo de algunas
opciones de lenguajes avanzados.
Phrogram soporta la programación orientada a objetos y permite la definición de
clases y de sus propiedades y métodos asociados, ayudando así a los programadores
novatos con la introducción de la programación orientada a objetos.
Aunque Phrogram fue diseñada originalmente para niños sobre todo entre 10 y 14
años, es apropiado para cualquier persona de cualquier edad. Este lenguaje es usado
por adultos, por su hijos o estudiantes que desean tener sus primero pinitos en la
12. Cuaderno Red de Cátedras Telefónica
Aprender programando: motivaciones y 12
alternativas
programación. También está siendo muy usado en las escuelas, en cualquier nivel
educativo, desde primaria y secundaria hasta las Un
Universidad.
2.9. 3DU
3DU no es tanto un nuevo entorno de programación para niños sino más bien una
red social con carácter educativo que tiene como objetivo principal enseñar a niños
de 5 a 10 años a programar. 3DU se presenta como un sencillo juego en el que un
pequeño robot con forma de mono tiene que recoger una serie de plátanos dispersos
por una isla con forma de tablero. Nuestro pequeño protagonista no lo tendrá fácil ya
tablero.
que se encontrará con una serie de obstáculos repartidos por el tablero par para
obstaculizarle conseguir los plátanos. Los usuarios de 3DU tendrán que programar
las instrucciones necesarias para que nuestro protagonista pueda recorrer el tablero
y recoger todos los plátanos superando los obstáculos que se encuentra en el
camino.
Tal y como hemos dicho, 3DU está elaborado alrededor de una red social con el fin
l
fomentar la colaboración, la comunicación y la competitividad entre los jugadores.
13. Cuaderno Red de Cátedras Telefónica
Aprender programando: motivaciones y 13
alternativas
3DU se está desarrollando en la Cátedra Telefónica - Deusto en Bilbao, que tiene
como uno de sus objetivos explorar la aplicación de las Nuevas Tecnologías en la
Educación.
2.10. Comparativa de todas ellas
A continuación se muestra una tabla con todas las alternativas antes mencionadas,
indicando su versión, la página web del proyecto, la compatibilidad y disponibilidad
en distintas plataformas (Windows, Linux, Mac), la edad recomendada de uso, los
idiomas en los que se pueden usar y su carácter gratuito o de pago:
Programa Versión URL S.O. Edad Idioma Gratuit
s o
Logo 6 http://el.media.mit.edu/logo- Win, en, es Si
foundation/
Lin, Mac
Smalltalk 8.0 http://www.smalltalk.org/main Win, en Si
/
Lin, Mac
Phrogram 2.5 http://phrogram.com/ Win 10 a en, es No
14
Squeak 3.10 http://www.squeak.org/ Win, en Si
Lin, Mac
Croquet 1.1 http://www.opencroquet.org/in Win en Si
dex.php/Main_Page
Alice 2.2 http://www.alice.org/ Win, 12+ en Si
Lin, Mac
Plopp 1.2.3 http://www.planet- Win, en, es No
plopp.com/es/biggerkids.html
Lin, Mac
Scratch 1.4 http://scratch.mit.edu/ Win, 8+ en, es Si
Lin, Mac
3DU 1.0 http://www.3du.es/ Win, 5 a 10 es Si
Lin, Mac
14. Cuaderno Red de Cátedras Telefónica
Aprender programando: motivaciones y 14
alternativas
3. Conclusión
Desde que se estudió profundamente la actividad de la programación y se le dio
suficiente importancia como materia académica, se ha intentado orientar hacia el
aprendizaje. En sus inicios, hace casi ya medio siglo, el enfoque que se aplicaba era
el de la enseñanza de la programación a partir de lenguajes simplificados y de
sencillas y descriptivas instrucciones. De esta manera se realizaron grandes
avances, llegando a crear el primer lenguaje de programación que soportaba el
paradigma de la orientación a objetos pura, con Smalltalk.
Pero, con el paso de los años, diferentes estudios demostraron los beneficios
pedagógicos que el aprendizaje de la programación podía aportar; de esta manera, y
como se especifica al principio del Cuaderno de la Red, diferentes competencias son
trabajadas a través de la misma.
La tendencia actual no es la de orientar los lenguajes de programación hacia el
aprendizaje a programar exclusivamente. Se pretende, con interfaces muy
trabajadas y entornos de desarrollo, que el estudiante sea capaz de crear sus
propios juegos, presentaciones, animaciones y ejercicios de lógica a través de la
programación simple (o todo lo compleja que se quiera hacer) de diferentes
elementos. En este aspecto Scratch destaca, puesto que además de su IDE, tiene
una comunidad muy activa que apoya a los que utilizan la herramienta a través de la
red social de su página web.
Parece que el futuro pasa indudablemente por ahí: programa, aprende, comparte y
diviértete.