Durante la segunda guerra mundial Alan Turing, matemático lógico, científico de la computación y criptógrafo entre otras habilidades, trabajó en descifrar los códigos nazis, particularmente los de la máquina “Enigma”. Se ha estimado que su trabajo acortó la duración de esa guerra entre dos y cuatro años. Tras la guerra, Turing diseñó uno de los primeros computadores electrónicos programables digitales en el Laboratorio Nacional de Física del Reino Unido y poco tiempo después construyó otra de las primeras máquinas en la Universidad de Mánchester.
Desde entonces y hasta ahora se han desarrollado cientos de lenguajes de programación, es decir, los algoritmos que permiten a las personas comunicarse con los ordenadores, y a día de hoy es una de las asignaturas más demandadas desde muy temprana edad en colegios, institutos y universidades.
Al margen de la orientación hacia ingenierías o carreras de ciencias, la programación aporta ventajas incuestionables en el desarrollo mental y cognitivo, así como para la capacidad de concentración en el niño, el adolescente e incluso el estudiante maduro.
Veamos a continuación algunas de las ventajas que aporta estudiar y practicar la programación;
- La programación es el lenguaje más usado (por miles de millones de máquinas).
- Los niños aprenden mejor y más rápido. Han nacido en un mundo tecnológico y es divertido aplicarlo en sus propios juguetes y robots.
- Los niños dejan de ser consumidores pasivos. Al entender cómo funciona una máquina se interesan por ella, consiguen dominarla.
- Los niños pasan a ser creadores, pueden montar sus propios robots, diseñar y programar sitios web, crear sus propios videojuegos, encontrar errores de programación, ..etc.
- Programar ayuda a pensar lógica y estructuradamente. La forma de pensar en programación es muy ordenada por fuerza, los beneficios de dicho pensamiento se trasladan a otras áreas.
- La programación es presente. El que hace marketing y debe estar familiarizado con marketing digital; el médico que debe manejar un complicado programa; el ingeniero que debe controlar un mecanismo; el contable de una pequeña empresa que quiere automatizar un pequeño proceso; el bombero que quiere desarrollar una app en sus ratos libres; el administrativo fan de los drones…
Programando en primer ciclo de ESO
Normalmente Scratch es el lenguaje de programación más usado en esta etapa. Scratch es un proyecto del Grupo Lifelong Kindergarten del MIT Media Lab. Se ofrece de forma gratuita.
Con Scratch pueden programar sus propias historias interactivas, juegos y animaciones — y compartir sus creaciones con otros en la comunidad online.
Scratch ayuda a los jóvenes a aprender a pensar de forma creativa, a razonar sistemáticamente, y a trabajar de forma colaborativa — habilidades esenciales para la vida en el siglo 21.
Basado en una serie de personajes (proporcionados por Scratch en una librería) y de fondos de pantalla, combina los conceptos básicos de la programación con un lenguaje muy simple que se sirve de fichas que podemos arrastrar en nuestros módulos de programación para formar estructuras más complejas.
Sus límites en cuanto a dimensiones y potencia del sistema son bastante estrictos, sin embargo permite crear juegos y demostraciones de cierta envergadura para el nivel en el que trabajamos.
Programando en segundo ciclo de ESO
En esta etapa podemos dividir la programación entre la creación de aplicaciones sencillas para móviles y tablets con App Inventor y continuar programando con Scratch, pero eso sí, aplicando dichos programas a la electrónica, la robótica y los sistemas de control.
MIT App Inventor es un entorno de programación visual e intuitivo que permite a todos, incluso a los niños, crear aplicaciones totalmente funcionales para smartphones y tablets. Los neófitos en MIT App Inventor pueden tener una primera aplicación sencilla en funcionamiento en menos de 30 minutos. Y, lo que es más, esta herramienta basada en bloques facilita la creación de aplicaciones complejas de alto impacto en mucho menos tiempo que los entornos de programación tradicionales.
Por otro lado, tenemos la posibilidad de usar Scratch adaptado para las tarjetas de control de Arduino y crear un sinfín de aplicaciones que interactúen con sensores y actuadores a través del citado circuito. Desde hace unos años en la asignatura de Tecnología se vienen usando estos módulos de control, ya sea con su interfaz (IDE) que tiene un lenguaje de programación basado en C++, pero si no queremos ahondar en este entorno de programación algo engorroso para 3º de ESO siempre podemos programar en S4A (Scratch compatible con Arduino) sin más que introducir un firmware en las placas previamente.
Habida cuenta de la vasta cantidad de hardware existente que podemos conectar a nuestras Arduino, las posibilidades para programar son amplisimas. Solo debemos tener en cuenta ciertas limitaciones en cuanto al número de sensores y actuadores que podemos utilizar desde este entorno. Para proyectos más ambiciosos deberemos generar nuestro código con el IDE original.
Se recomienda encarecidamente usar el lenguaje de programación del IDE solo con proyectos que no requieran de una longitud exagerada a la hora de crear código ni de una profundidad de conocimientos de programación a nivel de arrays, bucles for o similar a no ser que tengamos alumn@s cuyo nivel como programadores pueda responder a tales requerimientos.
Como puede verse en la ilustración siguiente la complejidad del IDE de arduino no tiene absolutamente nada que ver con la facilidad de Scratch adaptado a nuestras placas.
También, en segundo ciclo, podemos introducir el concepto de flujograma como el paso previo a la confección de cualquier programa. Será, pues, nuestro plan de ataque en un formato gráfico y muy sencillo de entender puesto que no se basa en ningún lenguaje de programación específico y puede aplicarse a todos ellos sin importar su nivel de complejidad.
Podemos empezar usando ejemplos sencillos e intuitivos como el funcionamiento básico de las puertas automáticas de un centro comercial para ir desarrollando estrategias a la hora de introducir contadores, horarios y bucles complejos en nuestro planning.
Los primeros ejercicios pueden realizarse en papel, pero la experiencia nos dice que usar cualquier aplicación a tal efecto mejora la calidad visual y añade un plus de eficacia en nuestros estudiantes al contar con la posibilidad de mover bloques y líneas en vez de repetir los esquemas ante cualquier fallo.
Como ejemplo podemos utilizar el accesorio de las hojas de cálculo de google llamado Lucid Chart que permite la inclusión de módulos indicativos de acciones, decisiones y pasos a otros niveles o cualquier otro que queramos utilizar en nuestros diagramas de flujo para un mejor entendimiento de las secuencias lógicas que nuestro futuro programa deberá seguir y los comandos a introducir dependiendo de las decisiones que el programa tome en cualquier momento de la ejecución.
El siguiente “flowchart” corresponde a la planificación del videojuego creado con Scratch para las clases de un grupo bilingüe de 4º ESO y que se ilustra en la figura 1 de este artículo.
Resultados
Estudios realizados desde los años 80 hasta nuestros días con la inclusión de la programación en la ESO demuestran que los estudiantes que usan algún lenguaje de programación entre sus asignaturas exhiben una mayor capacidad de atención, más autonomía, y muestran un mayor placer por el descubrimiento de nuevos conceptos (Clements, D. H. 1986).
Y en esta misma línea, un estudio a gran escala alumnos de secundaria que programaban demostró que obtuvieron mejores resultados en pruebas de matemáticas, razonamiento y resolución de problemas.
Además, estudios más recientes han demostrado que aprender a programar tiene un impacto positivo en la creatividad y respuesta emocional de niños con dificultades de aprendizaje, así como en el desarrollo de las habilidades cognitivas y socioemocionales (Douglas H. Clements y Sudha Swaminathan 2012).
Bibliografía y referencias.
- Alan Turing (20 enero 2020) Licencia Creative Commons . Wikipedia. Recuperado de: https://es.wikipedia.org/wiki/Alan_Turing
- 10 Ventajas de los niños que deciden aprender a programar. Playcode Academy. (30 enero, 2017). Recuperado de: https://playcodeacademy.com/10-ventajas-programacion-informatica-para-ninos/
- Evidencias científicas de los beneficios de aprender a programar desde infantil. Programamos. Jesús Moreno León (4 enero, 2014) Recuperado de: https://programamos.es/evidencias-cientificas-de-los-beneficios-de-aprender-a-programar-desde-infantil/
- Clements, D. H. (1986). Effects of Logo and CAI environments on cognition and creativity. Journal of Educational Psychology, 78(4), 309–318. Recuperado de: https://doi.org/10.1037/0022-0663.78.4.309
- Technology and School Change New Lamps for Old? Douglas H. Clements &Sudha Swaminathan: (25 Jul 2012) Recuperado de : https://doi.org/10.1080/00094056.1995.10522619
Figuras
- Figura 1. : Gerd Altmann. (10 agosto 2018) Código – [Fotografía] recuperada de: https://pixabay.com/es/photos/mujer-programaci%C3%B3n-gafas-reflejar-3597101/
- Figura 2. Gordon Johnson. (20 octubre 2016) Pensamiento lógico – [Fotografía] recuperada de: https://pixabay.com/es/vectors/anatom%C3%ADa-la-biolog%C3%ADa-cerebro-1751201/
- Figura 3. Álvaro Cabrero.( 06 / febrero / 2020) Scratch en primer ciclo. Fotografía propia.
- Figura 4. Álvaro Cabrero.( 06 / febrero / 2020) Aplicación en App Inventor. Fotografía propia.
- Figura 5. Álvaro Cabrero.( 06 / febrero / 2020) Aplicación S4A. Fotografía propia.
- Figura 6. Álvaro Cabrero.( 06 / febrero / 2020) IDE de Arduino . Fotografía propia.