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?
¿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.
Más precisa es la definición del informe
de 2014 de la Unión Europea Computing
our future Computer programmingand coding – Priorities, school curricula and
initiatives across Europe:
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 o 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.
Raja, T. (2014). We can code
it!. http://www.motherjones.com/media/2014/06/computer-science-programming-code-diversity-sexism-education.
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
Comentarios
Publicar un comentario