Cómo enseñar programación a los adolescentes

Ya casi nadie duda de que la programación es una habilidad esencial en los planes educativos actuales. Todo niño debería aprender a programar, en mayor o menor nivel. El problema es que mientras que enseñar programación a niños pequeños es relativamente sencillo, al llegar a la adolescencia la mayoría de los chavales pierden el interés por la programación.

Sean Choi, un estudiante de doctorado de Ingeniería en Stanford, nos trae el apasionante relato de cómo se puede motivar a un adolescente para que aprenda programación. Podéis ver su artículo original en inglés aquí.

1_FNZLxkvfXe2PAIlT8pbf3w.jpeg


En el pasado, muchos padres entusiastas se me han acercado y me han preguntado cómo aprendí a programar, principalmente con el interés de encontrar maneras de ayudar a sus hijos a que programen también. No tenía una respuesta clara para ellos, porque aprendí a programar a una edad mucho más tardía que la mayoría de los hijos de estos padres. En el interés de ayudar a estos padres, también traté de encontrar formas de ayudar a los niños a aprender a programar.

Descubrí que hay muchos recursos que ayudan a los niños de primaria. Algunos ejemplos son Scratch y «Hour of Code» en Code.org, muy útiles para que alguien nuevo se familiarice con la programación.

A través de estas plataformas, los estudiantes escriben programas sencillos que hacen que criaturas virtuales se muevan o construyen juegos sencillos y aprenden las herramientas básicas de programación, como los bucles y los condicionales, al tiempo que adquieren habilidades útiles para resolver problemas generales. La mayor fortaleza de estas plataformas es la retroalimentación visual de la plataforma, que realmente ayuda a los estudiantes a mantenerse constantemente comprometidos con el plan de estudios y los ejercicios.

Sin embargo, enseñar programación a adolescentes es un reto completamente diferente. Este artículo muestra que más del 95% de los adolescentes de hoy en día tienen acceso a smartphones. Por lo tanto, la retroalimentación visual de Scratch o Code.org ya no les sorprende. De hecho, descubrí que los adolescentes los encuentran bastante mundanos e infantiles. No les interesan.

flappy-bird-kid-670x335.jpg

Los adolescentes quieren construir o hacer algo REAL que puedan mostrar a los demás. Por ejemplo, diseñar y lanzar una aplicación de iPhone, crear su propio sitio web o, porqué no, piratear algún sistema. Pero, ¿cómo se puede conseguir que alguien que acaba de terminar unos ejercicios de Scratch construya una aplicación para el iPhone, mientras se compromete constantemente a terminarla?

Quería compartir mis experiencias en la enseñanza de la programación a 4 adolescentes en el transcurso de dos años. Los estudiantes empezaron teniendo una gama diferente de habilidades de programación, personalidades y expectativas. Por lo tanto, para mantener a todos comprometidos, tuve que pasar por varias pruebas para encontrar los materiales de enseñanza que funcionaban para todos.

El objetivo principal de este artículo es compartir lo que aprendí y las pruebas que tuvieron éxito, con la esperanza de ayudar a otros adolescentes a aprender a amar la programación.

Los adolescentes tienen grandes expectativas

Aprendí que los adolescentes absorben las nuevas tecnologías como esponjas. Mientras que a los adultos les puede valer con ser un poco anticuados técnicamente, los adolescentes hacen todo lo posible por estar al tanto de lo nuevo y seguir las últimas tendencias. Descubrí que los adolescentes tienden a usar las aplicaciones más geniales y recientes,incluso antes de llegar a los titulares de TechCrunch o CNBC.

De hecho, fueron mis estudiantes los que me presentaron un montón de juegos de .io y HQ Trivia. Por lo tanto, es importante que lo que aprendan sea BUENO, y algo que puedan compartir con sus amigos.

Lo primero que me preguntaron cuando empecé la clase de programación fue: «¿Podemos hackear cosas, como sitios web y aplicaciones para iPhone?».

Así que les dije que primero deberíamos aprender HTML y CSS para aprender a hackear un sitio web y les mostré esto:

<!DOCTYPE HTML>
<html>
  <head><title>Hello World!</title></head>
  <body><h1>Hello World!</h1></body>
</html>

Les expliqué lo que significaba cada una de esas etiquetas y cómo aparecerán en una página. Cargué una página con ese hello.html y todas sus expectativas de ver una página web se fueron por el desagüe. Inmediatamente se aburrieron.

Sin embargo, continué la clase para enseñarles más HTML, CSS y JavaScript básico. Sentí que al enseñarles más HTML, CSS y JavaScript y algunas técnicas para construir algunos sitios web, se sentirían más comprometidos. Me equivoqué.

Incluso después de construir varios sitios web sencillos y desplegarlos en Firebase, seguían diciendo que querían hacer algo más REAL y algo que pudieran mostrar a sus amigos.

kids-who-code-prime-feat.jpg

Enseñándoles a hacer algo REAL

Me di cuenta de que hay muchas maneras de hacer algo real y no era necesario crear software con una interfaz gráfica de usuario atractiva,o enseñarles nuevas estructuras de datos, o mostrarles material de Harvard CS50.

Decidí que sería mejor usar hardware y que los estudiantes sintieran físicamente lo que habían programado. Mis dos opciones eran Raspberry Pi y Arduino.

Raspberry Pi es una computadora en miniatura que ejecuta su propia versión de Linux y que es capaz de ejecutar la mayoría de los lenguajes de programación. Permite que varios periféricos sean controlados a través de su propio software personalizado.

Arduino es como una plataforma de hardware de código abierto y muchas compañías construyen varios kits, como Smart Autonomous Car y Quadruped Robot.

1_ib4dnl9vakxsgfm-mzfgvg.jpeg

Usando Raspberry Pi construimos una estación meteorológica que detecta la temperatura y la presión atmosférica del entorno y la envía a una base de datos en la nube. Luego los estudiantes pudieron ver los datos meteorológicos a través de una herramienta de visualización de datos online. También programamos funciones simples, como cambiar las unidades de temperatura y encontrar la temperatura mínima/máxima/promedio, para publicarlos en la base de datos. Estos ejercicios ayudaron a los estudiantes a aprender estructuras de datos y algoritmos simples, tales como matrices, diccionarios y clasificación.

Después de esto, pasamos a construir un coche autónomo basado en Arduino. Cada estudiante tenía un código de muestra que hacía que los coches se movieran y detectaran obstáculos. Luego, construimos un laberinto y le dimos un premio al estudiante que consiguiese que el coche saliera primero del laberinto.

Naturalmente, los estudiantes discutieron entre ellos qué lógica ayudaría al coche a salir del laberinto de la manera más eficiente. Y les pareció genial que su algoritmo funcionase inmediatamente en el coche que construyeron. Lo más importante es que los estudiantes realmente lo disfrutaron, ya que crearon algo real y tangible.

También hicimos algunos ejercicios para aprender lo básico de hacking!, similar a LeetCode. Hay muchas herramientas construidas para ayudar a los estudiantes a aprender conceptos básicos de hacking. Por ejemplo, HackThis es un gran sitio web que ofrece una serie de desafíos para resolver en el navegador. Requiere utilizar muchas de las herramientas de navegación existentes, como las herramientas de desarrollo de Chrome, para encontrar deficiencias que puedas aprovechar para acceder al sistema.

A los alumnos les encantó este ejercicio, porque resolverlo les hizo sentirse como espías de Misión Imposible. Después de terminar el desafío, en realidad pasaron a sitios web reales (me aseguré de que no hicieran algo ilegal…) y trataron de encontrar vulnerabilidades que pudieran explotar.

Una vez se encuentren más preparados y aprendan los conceptos básicos de Linux, pienso enseñarles conceptos de hacking más avanzados con Kali Linux, lo que creo que será aún más emocionante.

La competición como herramienta de aprendizaje

1_3bxZOuD0a5pSG5shyoXH1w.png

Finalmente, lo último que aprendí fue que los adolescentes son muy competitivos. Les gustan los ejercicios que les dan recompensa inmediata, como darles una puntuación, una insignia o colocarlos en un marcador real.

La mejor plataforma que encontré para motivar a los estudiantes fue CodingGame. Ellos resolverían cada ejercicio de programación y subirían de nivel en el proceso. Los ejercicios también tienen algunos componentes visuales agradables, lo que permite a los estudiantes estar muy comprometidos con los ejercicios.

También comenzaríamos el día haciendo una sesión de Clash of Code, que es un reto de programación en vivo de 5 minutos entre otros usuarios en línea, y los estudiantes a veces ganaban contra otros jugadores que tenían niveles más altos que ellos! Realmente los estimuló para comenzar otro día de aprender a programar.

Reflexiones finales

Enseñar programación es divertido y educativo. No sólo aprendes a enseñar a otra persona, sino que también te da la oportunidad de ponerte en el lugar del estudiante. Aprendes a entender cómo piensan los demás sobre un problema y te das cuenta de que hay muchas maneras diferentes de percibir el mismo. También aprendes a describir los problemas de forma que los estudiantes disfruten pensando en ellos. Además, personalmente, creo que enseñar te ayuda a ser una persona más comprensiva y paciente.

2018-11-03_191052.png  Sean Choi

Fuente: Medium

Un comentario en “Cómo enseñar programación a los adolescentes

  1. Sean muy bueno tu articulo. Estoy muy de acuerdo contigo. Mi hijo tiene 14 años y tiene interés por la programación, he intentado con el hacer algunos cursos, pero se aburre muy rápido, esto que planteas me parece súper interesante, por lo práctico. Pero sabes si hay alguna página o curso por ejemplo para los kit d arduino que dejaste el link. O esos kit vienen con instrucciones para programar y es más tipo autodidacta? Te agradezco si me das alguna pista

Deja un comentario