Ante esta realidad, es oportuno y a la vez necesario pensar, ¿por qué enseñar programación y robótica? y si estimamos que esto es necesario: ¿cómo enseñarla?
La primera pregunta, ¿por qué? tiene una respuesta inmediata: la programación y la robótica es y será altamente demandada profesionalmente en los próximos años. Nadie duda de las oportunidades laborales de aquellos que dominan la tecnología, no como consumidores, sino como creadores, no como usuarios, sino como diseñadores, programadores… en resumen: como ingenieros. A riesgo de instrumentalizar la educación este es un argumento con suficiente peso como para justificar su inclusión en el aula. Y es que en la mayoría de las profesiones técnicas actuales, la programación es un lenguaje de comunicación (con las máquinas) tan universal como lo son las matemáticas o el inglés.
Pero, ¿es este argumento suficiente? sobre todo cuando se corre el riesgo de que la programación y la robótica desplacen a otras asignaturas en las que se juzga una menor utilidad profesionalizante. En opinión de los autores sería equivocado elegir el currículum por criterios meramente profesionales, y es que la educación obligatoria no es una escuela de oficios, por lo que las miras deben ser más amplias que el mero utilitarismo laboral. ¿Entonces? Analicemos qué otros elementos harían pertinente la enseñanza de la programación y la robótica más allá de abrir las puertas de un prometedor futuro laboral.
Programación, robótica, resolución de problemas y pensamiento computacional
Cuando trabajamos programación y robótica con nuestros alumnos, ¿qué están aprendiendo realmente? Más allá de aprender qué es una variable, un bucle while o una sentencia condicional, estamos ayudando a nuestros alumnos a desarrollar una serie de estrategias para la resolución de problemas. Estas estrategias son el resultado de desarrollar los procesos cognitivos necesarios para resolver un problema de programación. Estos procesos son:
- abstracción,
- recopilación de información,
- análisis y representación de datos,
- secuenciación o creación de algoritmos,
- descomposición del problema,
- automatización,
- paralelismo y
- simulación
De todos ellos, los procesos de abstracción, recopilación, análisis y representación de datos, secuenciación o creación de algoritmos, son descritos habitualmente como los procesos llevados a cabo en la resolución de problemas.
Siempre que afrontamos un problema (lo resolvamos o no mediante un programa de ordenador) seguimos, de un modo más o menos explícito o, más o menos conscientemente estos procesos. La resolución de problemas implica una serie de acciones que pretenden lograr un objetivo. Estas acciones siguen una secuencia determinada desde el estado inicial del problema hasta alcanzar su solución. Para definir dichas acciones empezamos mediante un proceso de abstracción. La abstracción consiste en identificar el problema a resolver, extrayendo la idea principal y deshaciéndonos de los detalles. Durante todo el proceso de resolución recopilamos los datos necesarios para afrontar dicho problema, mediante su análisis y su representación identificamos cómo afectan en su resolución. Con todo esto podemos generar las acciones secuenciales que nos llevan a la solución, descomponiéndolas si es necesario en acciones más simples (lo que se conoce en programación como algoritmo). La automatización y el paralelismo son procesos propios de la programación que permiten aportar un solución más eficaz. Finalmente la simulación es el proceso mental por el que evaluamos la solución que aportamos antes de ponerla en práctica.
Todos estos procesos forman lo que se conoce como Pensamiento computacional. Lo importante para nosotros es que nuestros alumnos están ejercitando y entrenando estrategias sistemáticas para la resolución de problemas. Esto, más allá de enseñarles los contenidos específicos de programación o robótica, les dota de una serie de hábitos y habilidades cognitivas para afrontar cualquier problema que se les presente, siendo capaces de afrontarlos de un modo ordenado y estructurado.
Nuestros alumnos desarrollan una destreza que se empieza a considerar fundamental para todas las personas, no solo en el ámbito de la computación, sino también en disciplinas tan variopintas como la lectura, la escritura, la aritmética, etc.
Para la resolución de problemas, las personas requerimos herramientas mentales que habitualmente son usadas por la ciencia de la computación, de ahí que se haya escogido el adjetivo “computacional” para dar cuenta de este pensamiento.
El desarrollo del pensamiento computacional busca que las personas seamos capaces de hacer frente a la complejidad de los problemas actuales en cualquier campo de estudio, y no solo los problemas relacionados con el campo de la computación.
El empleo de las estrategias de resolución de problemas asociadas al pensamiento computacional facilita la resolución de cualquier problema que requiere procesos complejos como el análisis y la representación de datos, la descomposición de problemas, la utilización de algoritmos y procedimientos, etc.
Por estos motivos, el pensamiento computacional está siendo impulsado desde un nuevo enfoque de enseñanza respaldado por la International Society for Technology in Education (ISTE) y la Computer Science Teacher Association (CSTA).
Competencias que se trabajan con la programación y la robótica
Llamamos competencia a las habilidades, actitudes y conocimientos procedimentales y factuales, relacionadas con un área particular. Es muy importante tomarlos como un todo integrado.
Dominar las competencias clave para una tarea permite desenvolverse eficazmente ante un conjunto de situaciones concretas aplicadas, tanto
en esa tarea concreta como para otras en las que el procedimiento de actuación es similar. Todas las personas precisan determinadas competencias para su realización y desarrollo personal y social, sea cual sea su campo.
Tradicionalmente la educación se ha orientado a la enseñanza de saberes (contenidos). Últimamente, sin embargo, la educación se está empezando a centrar en desarrollar competencias.
Este modo de trabajar y de evaluar se adapta mejor a las exigencias que nos encontramos en el siglo XXI, ya que en la actualidad nos encontramos en una sociedad en continuo cambio (¡y más en tecnología!), en la que resulta más útil aprender y desarrollar una serie de competencias que permitan a los estudiantes continuar su aprendizaje una vez terminada su etapa académica.
A continuación listamos las competencias y habilidades que mejor se trabajan con la programación y la robótica (siempre que diseñemos adecuadamente las actividades que vamos a proponer a nuestros alumnos):
* Concentración y perseverancia. La programación y la robótica requieren de la concentración para poder crear todas las instrucciones necesarias. Además, la programación nos ayuda a confiar en la utilidad de ser perseverante, ya que no siempre logramos que nuestro programa haga lo que queramos en el primer intento y nos motiva a descubrir cómo dar correctamente las instrucciones.
* Inteligencia emocional intrapersonal: autoconfianza y autoestima. La programación y la robótica son un buen recurso para aumentar la confianza en uno mismo y mejorar su autoestima, ya que al crear un programa y ver que ejecuta las órdenes tal cual nosotros queremos, nos sentimos más capaces y mejor con nosotros mismos.
* Pensamiento lógico–matemático. La programación y la robótica utilizan lógica proposicional y operaciones matemáticas para determinar las instrucciones que va a ejecutar, en ocasiones según resultados matemáticos de instrucciones previas o datos externos recibidos. Por eso es importante que no les enseñemos a hacerlo paso por paso, ya que cuando se queden atascados en algo, deben pensar de forma lógica y estructurar su pensamiento para dar con la solución. Nuestra tarea, por tanto, consiste en hacer preguntas de reflexión para que sean nuestros alumnos los que piensen en el paso a paso.
* Competencia digital. La programación y la robótica son fundamentales para entender cómo funcionan los sistemas robótica e informáticos.
* Pensamiento crítico. La programación y la robótica ayudan al desarrollo del pensamiento crítico cuando elaboramos una porción un sistema a partir de lo que sabemos y lo que necesitamos, o cuando reciclamos y adaptamos porciones de otros sistemas para que nuestro programa haga algo similar.
* Creatividad e innovación. La creatividad y la innovación van de la mano en la programación y la robótica. En estos casos, la creatividad es vista como una estrategia que llevamos a cabo en el proceso de resolver un problema, especialmente en primeras las fases que incluyen una fase de pensamiento divergente en la que debemos pensar en la mayor cantidad de opciones posibles para resolver el problema.
* Autonomía y emprendimiento. La autonomía incluye una serie de conocimientos sobre cómo actuar en cada momento, siendo capaz de detectar la necesidad concreta para determinar las pautas de actuación.
De esta última competencia cabe destacar el famoso emprendimiento, tan presente hoy en todos los programas de innovación educativa como uno de los valores a trabajar para el futuro desarrollo del país. Es muy importante destacar que casi todas las actividades que se desarrollan con tal fin se hacen desde la perspectiva organizacional de cómo montar una empresa, cómo aprovechar las ocasiones de mercado, cómo desenvolverse en un entorno cooperativo–competitivo. Sin embargo pocos se preocupan de la pregunta clave: ¿qué emprender?
La tecnología, en la medida que agudiza la capacidad creativa y de resolución de problemas provee de una herramienta privilegiada para detectar necesidades
de nuestro entorno y plantear soluciones viables, elementos claves del emprendimiento. Trabajando la programación y la robótica en el aula estamos, indirectamente, cultivando y fomentando desde la infancia las habilidades y herramientas necesarias para afrontar los retos tecnológicos del mundo que les rodea.
¿Y si, además, trabajamos en grupo?
Si utilizamos grupos de trabajo en nuestros proyectos de programación podemos desarrollar además una serie de competencias interpersonales necesarias en el siglo XXI.
El diseño y construcción de sistemas robóticos en grupo es lo más adecuada, ya que permite dialogar y razonar la elección de cada porción de código. Las competencias interpersonales que salen más favorecidas de trabajar en grupo son:
* Comunicación y colaboración
* Aprendizaje cooperativo
Con todo lo dicho hasta ahora ya nos debe quedar claro por qué enseñar programación y robótica, vayamos a la siguiente pregunta, ¿cómo debemos enseñarla para alcanzar estos objetivos de aprendizaje?
Desarrollando un programa educativo de programación y robótica
Cuando el profesor se enfrenta al reto de impartir la asignatura de programación y robótica por primera vez se ve tentado a pensar en primer lugar: ¿qué es lo que yo sé? A partir de ahí establece la lista de contenidos para su asignatura, que luego enseñará a sus alumnos en el aula. Esta aproximación no es correcta.
Lo primero que debemos hacer es plantear cuáles son los objetivos de aprendizaje que queremos desarrollar, y estos no solo incluyen los contenidos, sino también, y sobre todo, las competencias y estrategias de resolución de problemas.
Por ello, incluso antes de decidir si vamos a trabajar con Scratch o con Bitbloq, con Arduino o con Python, debemos pensar qué competencias vamos a potenciar y en función de eso configurar el modo en el que desarrollaremos los contenidos, este es el “cómo”, fundamental para el éxito del aprendizaje.
Por ejemplo, si entre nuestro objetivos es fomentar el trabajo en equipo, una configuración de aula en el que las mesas están dispuestas contra la pared, con un ordenador por alumno, no permiten dicho trabajo. Quizá, a pesar de la inversión de nuestro centro en una maravillosa aula de informática, debemos huir al aula de plástica o tecnología, donde los alumnos puedan levantarse y trabajar alrededor de las mesas. Asimismo, si queremos que las horas de aula sean de trabajo significativo en equipo, quizá debamos descartar las clases de pizarra para pasar a un modelo de clase invertida donde los alumnos preparan en casa lo que posteriormente trabajarán de modo activo en el aula. Es una inversión no solo del modo de trabajar, es pasar del aprendizaje pasivo al aprendizaje activo donde los alumnos son los protagonistas de su aprendizaje.
Otro ejemplo, si queremos trabajar la creatividad (como sin duda querremos hacer) deberíamos trabajar a través de retos abiertos y no ejercicios con soluciones cerradas. Por ejemplo (y disculpadnos si el ejemplo es técnico), podríamos decir a nuestros alumnos que realicen un sistema que al pulsar un botón se encienda una luz (lo cual es muy sencillo utilizando Bitbloq y un kit de Arduino), pero también podríamos exponerles el siguiente problema: en una casa hay un niño sordo que no oye el timbre, ¿cómo podemos ayudarle? Este problema incluye como solución hacer un sistema que al pulsar un botón se encienda una luz, pero también podríamos construir otro que al pulsar el botón vibre el móvil, usando BlueTooth y AppInventor, y así numerosas soluciones, algunas más correctas que otras, que, más allá de enseñar a programar a nuestros alumnos, agudizan su ingenio y creatividad.
Este modo de trabajar en el aula no está carente de retos y dificultades, no solo por la inercia que tiene la enseñanza y probablemente nuestro centro, sino también por los espacios en los que trabajamos, más diseñados pensando en lecciones magistrales centradas en el profesor que en laboratorios de trabajo centrados en el aprendizaje colaborativo basado en proyectos. Sin embargo contamos a nuestro favor con que la programación y la robótica son materias en las que los estudiantes están motivados de por sí y van a ponerlo todo de su parte. Es el momento ideal para innovar y experimentar nuevos métodos y técnicas. Los errores que nuestros alumnos no nos perdonarían en otras asignaturas no serán ningún problema ante un grupo motivado por los retos que se les plantean. Quizá, como en pocas ocasiones, en programación y robótica los alumnos serán nuestro aliados.
Necesidades del profesorado
Sin embargo, aunque el protagonista del aprendizaje sea el alumno, no debemos olvidar que el agente originador de la enseñanza es el profesor, y por desgracia, en muchas ocasiones se siente abandonado a su suerte. Es por ello fundamental promover, tando desde la administración pública como desde las instituciones privadas dedicadas a la educación, una formación al profesorado acorde a estas exigencias y un desarrollo de contenidos editoriales adaptados a las nuevas necesidades.
En este sentido cabe destacar iniciativas editoriales como el proyecto Set21 . Asimismo cabe destacar los cursos online promovidos también por Santillana a través de su plataforma BeJob, destacando los cursos de programación y robótica disponibles en https://www.bejob.com/categoria-producto/programacion-de-las-cosas/
Desde el entorno universitario no faltan tampoco iniciativas dirigidas al profesorado, como el Experto Universitario en Programación, Robótica e Impresión 3D dirigido a profesores de la Universidad Internacional de la Rioja o el Experto Universitario en Aplicaciones educativas basadas en Robótica, Diseño 3D y Programación de la Universidad Autónoma de Madrid. También, universidades como la Rey Juan Carlos de Madrid y la Universidad de Alcalá de Henares, comienzan a incluir en sus Másteres oficiales de Formación del profesorado de Secundaria, Bachillerato y Formación Profesional contenidos a Programación y Robótica, algo inédito hasta la fecha.
No faltarán sin duda aquellos profesores innovadores que sabrán aprovechar esta oportunidad para dar una vuelta de tuerca más en el cambio educativo, generando espacios de aprendizaje donde sus alumnos adquieran los contenidos y competencias necesarias para afrontar los retos del siglo XXI”.