sábado, 30 de diciembre de 2017

Pensamiento computacional ¿Una tercera competencia clave? (I)

Con ésta quiero iniciar una serie de entradas que en conjunto constituyan un capítulo del libro que estamos preparando para ser editado por la Editorial de la Universidad Católica de Santa María de Arequipa (Perú) con el título provisional de "Pensamiento computacional", cuya descripción y contenido se explica de forma provisional en otro post de este mismo blog
El título del capítulo ya encierra un propuesta de consideración de lo que debe ser el pensamiento computacional dentro del curriculum escolar de Primaria, Secundaria, Bachillerato o Secundaria Postobligatoria e incluso Educación Infantil: Pensamiento computacional ¿Una tercera competencia clave? 
Parte primera

¿Por qué un corpus curricular sobre “pensamiento computacional” ahora?

Hace dos años decíamos (Zapata-Ros, 2015) que “las instituciones y agencias competentes, los expertos y los autores de informes de tendencia se han visto sorprendidos por un hecho: la sociedad y los sistemas de producción, de servicios y de consumo demandan profesionales cualificados en las industrias de la información”. Constatando, en el mundo desarrollado, la existencia de altas tasas de paro con un considerable número de puestos de trabajo de ingenieros de software, desarrolladores de aplicaciones, documentalistas digitales, que se quedan sin cubrir por falta de egresados de las escuelas técnicas, por falta de demanda de estos estudios por parte de potenciales alumnos y sobre todo por la falta de personal capacitado.
Esta era una causa pero hay otras que señalamos en (Zapata-Ros, 2012) como son las disrupciones universitarias que hacen que un número considerable de individuos algunos extremadamente competentes soslayen la vía de formación, y promoción profesional formales que teóricamente la universidad tienen encomendadas por otras más autónomas.
Tras una primera etapa de toma de conciencia ante la situación algunos países han reaccionado de forma diversa según podemos ver otro apartado del presente trabajo.
En ese cuadro podemos ver distintas respuestas por parte de los sistemas educativos de los países más sensibles, los que han abordado el problema desde la perspectiva de una reorganización del curriculum. Sin embargo la cuestión de fondo supone la aparición de unas nuevas destrezas básicas. Las sociedades más conscientes han visto que se trata de una nueva alfabetización, una nueva alfabetización digital, y que por tanto hay que comenzar desde las primeras etapas del desarrollo individual, al igual como sucede con otras habilidades clave: la lectura, la escritura y las habilidades matemáticas, e incluso estudiando las concomitancias y coincidencias de esta nueva alfabetización con estas competencias claves tradicionales.
Afortunadamente la propuesta de poner los niños a programar desde las primeras etapas está cediendo. Según esta opción, la más frecuente hasta ahora y la más simple  a fuer de ser una respuesta  mecánica, ha consistido en favorecer el aprendizaje de la programación y de sus lenguajes de forma progresiva. Esto consistiría en proponer a los niños tareas de programar desde las primeras etapas. De manera que la progresión estuviese en la dificultad de las tareas y en su carácter motivador, desde las más sencillas y más lúdicas a las más complejas y aburridas. Se vincula aprendizaje con la respuesta a un estímulo, no con las características de aprendizaje y cognitivas del niño, en la tradición más clásica del conductismo.
Sin embargo una propuesta que hacíamos hace dos años (Zapata-Ros, 2015) se está abriendo cada vez más paso y lo hace de manera más decisiva. Se trata de la alternativa, ya tenida en cuenta (Papert, 1980),  que enlaza con corrientes clásicas del aprendizaje apoyado en la tecnología. Nos referimos al construccionismo. Esta alternativa está sostenida por algunos autores, inspira a profesores y grupos innovadores en la puesta en marcha de actividades y en algunos pocos casos a corporaciones que,  frecuentemente de forma aislada, nos planteamos la cuestión de otro modo: Las competencias que se muestran como más eficaces en la codificación son la parte más visible de una forma de pensar que es útil no sólo en ese ámbito de actividades cognitivas, las que se utilizan en el desarrollo y en la creación de programas y de sistemas informáticos. En definitiva sostienen que hay una forma específica de pensar, de organizar ideas y representaciones, que es propicia y que favorece las competencias computacionales. Se trata de una forma de pensar que propicia el análisis y la relación de ideas  para la organización y la representación lógica de procedimientos. Esas habilidades se ven favorecidas con ciertas actividades y con ciertos entornos de aprendizaje desde las primeras etapas. Se trata del desarrollo de un pensamiento específico, de un pensamiento computacional.
Hemos dicho que un precedente remoto de estas ideas está en el construccionismo, en las ideas de autores como Seymourt Paper en las ideas que puso en marcha ahora hace cincuenta años.
Paulo Blikstein (2013) de la Universidad de Stanford, dice que si un historiador tuviera que trazar una línea que uniese la obra de Jean Piaget sobre la psicología del desarrollo a las tendencias actuales en la tecnología educativa, la línea simplemente se llamaría “Papert”.  Seymour Papert ha estado en el centro de tres revoluciones: el desarrollo del pensamiento en la infancia, la inteligencia artificial y las tecnologías informáticas para la educación. Quizá el que no haya tenido el impacto debido se deba a que se anticipó.
La visión de Papert se podría sintetizar diciendo que “los niños deben programar la computadora en lugar de ser programados por ella” (children should be programming the computer rather than being programmed by it) (Papert, 1980  a través de Blikstein, 2013)
Ahora, en la fase actual del desarrollo de la tecnología y de las teorías del aprendizaje se podría decir “son los niños los que tienen que educar a los ordenadores no los ordenadores los que tienen que educar a los niños”
Este trabajo, el anterior (Zapata-Ros, 2015), y en general las actividades y reflexiones que se proponen, están justificados por el papel que, en el contexto de cambios sociales, laborales, y culturales (Zapata-Ros, 2014), tiene el desarrollo individual que, desde las primeras etapas, faciliten una integración en ese nuevo entorno, mediante un  aprendizaje orientado hacia las competencias que son necesarias en la programación.
Se trata pues, como vamos a ver, de una nueva alfabetización. De una alfabetización que permita a las personas en su vida real afrontar retos propios de la nueva sociedad. Pero no solo eso, que permita a los individuos organizar su entorno, sus estrategias de desenvolvimiento, de resolución de problemas cotidianos, además de  organizar su mundo de relaciones, en un contexto de comunicación más racional y eficiente.
Todo ello con el resultado de que los individuos puedan organizar estrategias más eficientes para conseguir objetivos personales de índole muy diversa. En definitiva se trata de conseguir una mayor calidad de vida y un mayor nivel de felicidad.
Coincidiendo con la perspectiva que señaló Paper (1980) y antes los psicólogos genéticos y constructivistas (Piaget, 1977) sobre el desarrollo, en este planteamiento subyace, como idea-fuerza,  que, al igual a como sucede con la música, con la danza o con la práctica de deportes, es clave  que se fomente una práctica formativa del pensamiento computacional desde las primeras etapas de desarrollo. De manera que, al igual que se pone en contacto a los niños con un entorno musical, de danza o de  deporte, se haga con un entorno de affordances y de actividades que promuevan, a través de la observación y de la manipulación, destrezas y formas de pensar que sean un campo abonado donde se inserten, fluyan, las formas de trabajar y de resolver problemas propias de los programadores eficientes.
Sin embargo hay que decir, y así lo constatamos en las indagaciones que hemos hecho para escribir este capítulo, que no tenemos en muchos casos ni evidencias de que esos entornos y esas manipulaciones desarrollen las destrezas computacionales o habilidades asociadas a lo que hemos llamado pensamiento computacional.  Habría pues, como primera cuestión, señalar la necesidad de fomentar investigaciones para tenerlas.
De alguna forma, no es nueva esta perspectiva, pero sí descontextualizada de esa situación. Tradicionalmente, en el diseño curricular de las primeras etapas de desarrollo se ha hablado de aprendizajes  o de destrezas concretas que en un fururo predispondría a los aprendices para aprender mejor en un futuro habilidades matemñatica, geométricas, de lenguaje, como son la seriación, discriminación de objetos por propiedades, en las primeras etapas, y en las del pensamiento abstracto o para la resolución de problemas se ha hablado de la modularización, de análisis descendente, de análisis ascendente, de recursividad,… en la perspectiva Montesori () por ejemplo esto es básico. Para ello se han desarrollado ya multitud de recursos, juegos y actividades que los educadores infantiles conocen bien.

En el trabajo que sirve de precedente a este (Zapata-Ros, RED 46) recurrimos a un caso de un niño que secuencia a los pocos meses y ha utilizado juguetes de este tipo. Ese mismo niño ha utilizado juegos de composición (tangram y puzles) y de percepción y manipulación del espacio 3D, con un notable rendimiento en pensamiento abstracto en esta área. De esta manera en un ejercicio de dibujo, sin orientaciones previas, el niño fue capaz de dibujar la planta de su clase, como podemos ver la reproducción donde se distinguen elementos claramente simbolizados en formas, como son la pizarra la mesa y sillas o la escalera. Así como una persona que podría ser un maestro o un niño.
El niño se ha desprendido de su contingencia corporal-espacial y ha visto la distribución del espacio y objetos, claramente simbolizados como si estuviese desde arriba.


Hay por tanto multitud de áreas del aprendizaje que conviene explorar e investigar en esta nueva frontera. Y en la planificación de los curricula tendrá que plantearse esta dicotomía: Enseñar a programar con dificultad  progresiva (si se quiere incluso de forma lúdica o con juegos) o favorecer este nuevo tipo de pensamiento. Obviamente no hace falta decir que nuestra propuesta es la segunda, que además incluye a la primera.
Pero volvamos al tema central, la naturaleza y el tema del pensamiento computacional.
Tropezamos con varios problemas de comienzo: delimitar el contenido y encontrar los términos y conceptos adecuados para definirlo.
En un principio se utilizó la expresión codificación y precodificación. La segunda extraída de la literatura anglosajona, coding  o code. En este sentido se utilizó en los textos que publicitaron el año 2014 como el año del código, o de la codificación, o de la programación (Year of code). Es importante acceder al documento de difusión donde además de utilizar el término code dan una aproximación bastante general pero precisa del término ya desde el principio. Así se dice:
A través de la codificación (code) la gente puede descubrir el poder de la informática, cambiando su forma de pensar acerca de su entorno y obtener el máximo provecho del mundo que le rodea.

La codificación (coding) es cada vez más una competencia clave que tendrá que ser adquirida por todos los jóvenes estudiantes y cada vez más por los trabajadores en una amplia gama de actividades industriales y profesiones. La codificación es parte del razonamiento lógico y representa una de las habilidades clave que forma parte de lo que ahora se llaman “habilidades del siglo 21″.
Como vemos es un dominio conceptual muy próximo a lo que hemos visto y veremos que es el pensamiento computacional, al menos se expresa con ese sentido que le hemos atribuido.
Por otro lado de igual forma que se habla de prelectura, pre-escritura o precálculo para nombrar competencias que allanan el camino a las destrezas clave y a las competencias instrumentales que anuncian, cabe hablar de precodificación preprogramación para designar las competencias que son previas y necesarias en las fases anteriores del desarrollo para la codificación.
Un planteamiento útil en este sentido es que los niños se familiaricen en las primeras etapas de desarrollo a preconceptos de variable, función, valor, parámetros, que sin necesidad de referencias explícitas, desarrollen habilidades y preconceptos  que en el futuro puedan alojar operaciones o conceptos más complejos propios de habilidades cognitivas superiores más propios de la programación. Así los equivalesntes a variables pueden ser rasgos de objetos como el color, la forma, el tamaño,… Y los procedimientos u operaciones con estos rasgos (variables) pueden ser la seriación, el encaje, etc. Evidentemente hay muchas más habilidades y más complejas en su análisis y en el diseño de actividades y entornos para que este aprendizaje se produzca. Así, este ámbito de la instrucción es lo que podría denominarse precodificación o preprogramación. Sin embargo creemos que es más propio llamarle precodificación, pues codificación describe, con más precisión y más ajuste conceptual, la transferencia de acciones e informaciones para que puedan ser interpretados por los ordenadores y otros dispositivos de proceso, circulación y almacenamiento de la  información.
Si solamente hablásemos de algo preparatorio para la programación, podríamos hacerlo así, y sin duda sería correcto. Sin embargo esto se correspondía con un propósito más amplio que es prepararse para dotarse de claves de comprensión y de representación de los objetos de conocimiento en general. Es por ello que vemos más adecuada la expresión “pensamiento computacional” (computational thinking), que a continuación desarrollaremos
Otra expresión que se propone habitualmente es la de alfabetización digital, o “una nueva alfabetización digital”. Sin embargo hay que  reconocer que, al menos en español e impropiamente, esta expresión tiene resonancias próximas al término “alfabetización informática”, al menos en su uso. Que inevitablemente, por el uso, nos recuerda la informática de usuario, al considerare esta alfabetización como el conocimiento y la destreza para manejarse en entornos de usuario. Así es frecuente entre la gente poco ilustrada confundir al buen informático con el que maneja bien, es hábil, con los programas de usuario, las APPs, o al que se maneja con fluidez y rapidez en los ambientes de menús, ventanas y opciones, o simplemente al que tiene habilidad en los pulgares para manejar un smartphone, o con el índice para moverse por un tablet. En una acepción lamentablemente muy extendida y banal ha dado lugar a que prendan conceptos paracientíficos como son los de nativo y emigrante digital.
En lo que sigue aceptamos la definición de alfabetización digital (computer literacy) como el conocimiento y la capacidad de utilizar las computadoras y la tecnología relacionada con ellas de manera eficiente, con una serie de habilidades que cubren los niveles de uso elemental de la programación y la resolución de problemas avanzada (Washington, US Congress of Technology Assessment, OTA CIT-235 April 1984, page 234). Con el reparo, ya citado,  de que en ese mismo documento se acepta que la expresión alfabetización digital también se puede utilizar para describir el nivel de acomodo que un individuo tiene con el uso de programas de ordenador y otras aplicaciones que están asociados con las computadoras . La alfabetización digital por último se puede referir a la comprensión de cómo funcionan los ordenadores y a la facilidad de operar con ellos.
En lo que sigue hablaremos más de “pensamiento computacional” (computational thinking) y de  las iniciativas necesarias para que esta nueva alfabetización digital se produzca: El estudio y la investigación de un nuevo curriculum escolar y el análisis de propuestas para la formación para maestros y profesores.


El primer dilema del pensamiento computacional

Como hemos señalado, una vez aceptada la necesidad de que los niños, desde sus primeras etapas de desarrollo, adquieran las habilidades del pensamiento computacional, constatamos que se han producido dos alternativas que constituyen los términos de un dilema:
Por un lado la respuesta más frecuente y  más simple,  a fuer de ser una respuesta  mecánica, ha consistido en favorecer el aprendizaje de las técnicas ya consagradas de programación y de sus lenguajes de forma progresiva, o de lenguajes cada vez más complejos: primero juegos con estructuras constructivas de lenguajes ---bucles, iteraciones, etc---- luego lenguajes sencillos utilizados para resolver problemas divertidos, de juegos, etc y posteriormente ir aumentando la dificultad, sin señalar que en cada uno de estos pasos hemos ido dejando gente por el camino y al final nos quedamos con la élite friki de los programadores de siempre. En esencia se trataba de proponer a los niños tareas de programar desde las primeras etapas. De manera que la progresión estuviese en la dificultad de las tareas y en su carácter motivador, desde las más sencillas y más lúdicas a las más complejas y aburridas. Se vincula aprendizaje con la respuesta a un estímulo, no con las características de aprendizaje y cognitivas del niño, en la tradición más clásica del conductismo.
Este es el tipo de planteamiento que está detrás de la idea simple pero eminentemente de rendimiento y productividad: La de obtener individuos que hagan muchas líneas de programa y capaces de  hacerlas muy rápidamente, sin pensar previamente mucho en el problema a resolver, sin diagramas, sin diseño,… En definitiva es la idea que hay detrás de los concursos de programación, de enseñar a programar a través de juegos, etc.
Como hemos dicho es un planteamiento competitivo, que deja a fuera a muchos niños y que como corolario tiene otro efecto: hacer poco deseable para muchos ser programador, o cuanto menos  les da una imagen de frikis a los programadores (individuo gordo descuidado, atado al ordenador poco amigo del ejercicio físico y del aseo personal). En definitiva unos tipos raros con un perfil poco atractivo. Éste  puede llegar a ser un planteamiento por muchas razones excluyente.
Luego está el otro término del dilema. Lo importante según esta visión no es que los alumnos escriban programas, sino desarrollar en ellos actitudes y capacidades para  enfrentar los problemas en las situaciones previas no solo al código, sino incluso al algoritmo. De manera que la organización de la solución, a partir de la visión del problema y de las herramientas cognitivas y metacognitivas, de que dispone para resolverlo, le fluya. Para ello lo importante es que los maestros sepan cómo los alumnos se representan la realidad, su mundo de objetivos y expectativas, pero también cómo funcionan los mecanismos de aprendizaje en estos casos, y cuáles son las formas de trabajar exitosas de los que tienen éxito en hacer programas potentes.
Así pues lo importante no es el software que escriben, sino lo que piensan cuando lo escriben. Y sobre todo la forma en que lo piensan.
Conocer este mundo de ideas, de procedimientos y de representaciones, cómo operan, constituye el principio básico del “pensamiento computacional”. Y cualquier otro conocimiento, como memorizar a la perfección las reglas que constituyen la sintaxis y las primitivas (la gramática) de cualquier lenguaje de programación, no le sirve de nada a los alumnos si no pueden pensar en buenas maneras de aplicarlas.
Éste es pues el segundo término del dilema en el que hay que decidir.
Desgraciadamente, como veremos en la segunda parte de este capítulo, la modalidad por la que se ha optado de forma más frecuente ha sido la de enseñar a programar directamente. Esa ha sido también la que se ha empezando a utilizar en nuestro país. Así,  por ejemplo, se ha hecho en la Comunidad de Madrid[1] (Valverde et al, 2015). Simplemente se describen los contenidos y destrezas de programación a conseguir. La novedad consiste en introducir un bloque de contenidos, de forma convencional (no diferente de cómo se hace con el resto) dentro de las asignaturas de libre configuración autonómica. Así en el punto c (1º y 2º) del artículo 8, que remiten al anexo III de la orden, dice:
“1º (…) se establecen los contenidos, los criterios de evaluación y los estándares de aprendizaje evaluables de las materias Tecnología, Programación y Robótica, Ampliación de Matemáticas: Resolución de Problemas y Taller de Música.
2º. El Departamento de Coordinación Didáctica de Tecnología se responsabilizará de la impartición de la materia Tecnología, Programación y Robótica con carácter prioritario. Secundariamente, podrán impartirla profesores de la especialidad de Informática, siempre que previamente estén cubiertos en su totalidad los horarios de la Familia Profesional de Informática y Comunicaciones.”
El patrón es el mismo que cualquier otra disciplina, pero en este caso se hace además de forma subsidiaria.
Lo que subyace en la redacción, en éste como en otros casos es un abordamiento convencional: Conducir a los alumnos de secundaria por el camino más áspero, el de los contenidos y estándares de aprendizaje, pero en este caso, los de la programación per se. En este contexto no se proporcionan, ni se mencionan, otro tipo de ayudas o de claves para conseguir los efectos de que hablamos en el apartado anterior. Está muy lejos, cuando no en otra esfera, de lo que se plantea como Pensamiento Computacional.
Algunos de los resultados de esta forma de operar puede ser la exclusión de los que no tienen el don, o la habilidad innata, para programar directamente. De aquellos alumnos que ante sólo la presencia del problema a resolver se les activan mecanismos para con los elementos de programación (de los que proporciona un lenguaje específico: Sintaxis, órdenes, procedimientos, filosofía propia del lenguaje) elaborar el código.  Esta dinámica conduce a la creación de estereotipos y perfiles de alumnos con facilidad para la programación, y del tópico de que la programación es solo cosa de los programadores.
Hay otro efecto derivado. Si se aprende a programar como algo asociado a un lenguaje, es posible que no se produzca la transferencia,  y que en futuras ocasiones o en distintos contextos no se pueda repetir el proceso. Esto hace que la competencia profesional sea menos, y que la inserción no se produzca con toda eficacia que podría ser si se hiciera vinculado a operaciones cognitivas superiores. Las asociaciones profesionales se quejan de que las empresas contraten a informáticos de forma efímera. Sin reparar que es posible que suceda porque han aprendido de forma efímera, como algo vinculado a lenguajes y a programas pasajeros. De manera que en un futuro próximo, cuando cambie el programa o la versión actual, no tendrán flexibilidad mental para adaptarse a nuevos entornos, no solo de programación, sino de problemas. Esto no sucede, y las empresas lo saben, si contratan a titulados más familiarizados con elementos de pensamiento heurísticos, o de otro tipo de entre los glosados en el repertorio del trabajo de referencia (Zapata-Ros, 2015). Nos referimos a la facilidad con que estas empresas recurren a matemáticos o físicos, que sí tienen esa competencia de abstraer los procedimientos para distinguir aspectos invariantes de la resolución de problemas en entornos cambiantes.
Esto no ocurre así cuando se empieza por desarrollar habilidades generales previas que se puedan activar en situaciones de elaboración de códigos o de resolución de otros problemas. Podemos afirmar que sí existen referencias (Raja, 2014) de investigaciones que ponen de manifiesto que cuando se empieza por enseñar el pensamiento computacional en vez de por la elaboración de códigos, desvinculando la iniciación en el aprendizaje a ser diestros con el ordenador, tal como se entiende habitualmente, se evita el principio de discriminación que hace que algún tipo de niños y de niñas se inhiban.
Una última derivación del tema es que esta forma de organizar el aprendizaje supone  un principio de democratización en el acceso a este conocimiento, que de esta form no queda restringido a las élites de programadores. De manera que incluso, los que en un futuro pueden ser bibliotecarios, médicos o artistas, pueden ser también buenos programadores. Y por ende podría ampliar la base de conocimiento que se vuelca al mundo de la computación, lo que constituye el motor y el combustible de la Sociedad del Conocimiento.


Referencias.-

Blikstein,  (2013). Seymour Papert’s Legacy: Thinking About Learning, and Learning About Thinking. https://tltl.stanford.edu/content/seymour-papert-s-legacy-thinking-about-learning-and-learning-about-thinking
Papert, S. (1980). Mindstorms: Children, computers, and powerful ideas. Basic Books, Inc. http://www.arvindguptatoys.com/arvindgupta/mindstorms.pdf
Piaget, J. (1947). La psychologie de l'intelligence [The psychology of intelligence]. http://dx.doi.org/10.4324/9780203278895
Piaget, J. (1972). Psicología de la inteligencia. Editorial Psique. Buenos Aires.
Piaget, J. (1977). The role of action in the development of thinking. In Knowledge and development (pp. 17-42). Springer US.
Zapata-Ros, M. (2012). La Sociedad Postindustrial del Conocimiento. Un enfoque multidisciplinar desde la perspectiva de los nuevos métodos para organizar el aprendizaje. Amazon. Consultado en http://www.amazon.es/Sociedad-Postindustrial-del-Conocimiento-multidisciplinar/dp/1492180580.
Zapata-Ros, M. (2015). Pensamiento computacional: Una nueva alfabetización digital. RED. Revista de Educación a Distancia. Número 46.  15 de Septiembre de 2015. Consultado el (dd/mm/aa) en http://www.um.es/ead/red/46




[1] DECRETO 48/2015, de 14 de mayo, del Consejo de Gobierno, por el que se establece para la Comunidad de Madrid el currículo de la Educación Secundaria Obligatoria. Recuperado a partir de http://www.bocm.es/boletin/CM_Orden_BOCM/2015/05/20/BOCM-20150520-1.PDF




No hay comentarios:

Publicar un comentario