sábado, 20 de diciembre de 2014

Por qué el pensamiento computacional (II) ¿cuál es el problema?

Publicado con el mismo título en Pensamiento computacional y alfabetización digital / Computational thinking and computer literacy, el 14 de noviembre de 2014



En la entrada anterior decíamos 
“el planteamiento más frecuente y el menos reflexivo, ha consistido en favorecer el aprendizaje de la programación de forma progresiva. Proponiendo a los niños tareas de programar, desde las más sencillas y más lúdicas hasta  las más complejas y aburridas (más aburridas a fuer de ser más reales o de ser aplicadas a temas menos motivadores). Éste es el planteamiento típicamente conductista.”
Este es el tipo de planteamiento que está detrás de inducir a los niños a hacer muchas líneas de programa y a hacerlas muy rápidamente, sin pensar previamente mucho en el problema a resolver, sin diagramas, sin diseño,... Es la idea que hay detrás de los concursos de programación, de enseñar a programar a través de juegos, etc.
Es un planteamiento competitivo que deja a fuera a muchos niños y que posiblemente haga odiosos a los programadores, o al menos les haga ser para muchos unos frikis. O unos tipos raros con un perfil difícil de tener. En definitiva puede llegar a ser un planteamiento por muchas razones excluyente.

Pero volvamos al principio, antes de empezar a escribir código de forma compulsiva. Lo importante es saber lo que tienen en la cabeza, lo que piensan los que tienen éxito en hacer programas potentes. Lo importante no es el software que escriben sino lo que piensan. Y sobre todo la forma en que piensan.
Este es principio básico del "pensamiento computacional", y saber de memoria toda la sintaxis y las primitivas de Java que hay en el mundo y por haber no le sirve de nada a los muchachos si no pueden pensar en buenas maneras de aplicarla.

Desgraciadamente la forma más frecuente de enseñar a programar y la que se está empezando a utilizar en nuestro país, léase lo que se ha hecho en la Comunidad de Madrid, está en la clave señalada: Echar a los alumnos de secundaria por el camino más áspero de la programación per se. Dejando excluidos a los que no valen para programar directamente, y creando el estereotipo de que la programación es solo cosa de los programadores.
Luego nos extrañamos que las empresas no contraten a informáticos, que han aprendido de forma vinculada a lenguajes y programas efímeros, y que no tienen flexibilidad mental para adaptarse a nuevos entornos, no solo de programación, sino de problemas, y sin embargo contraten a matemáticos o a físicos que sí tienen esa competencia de resolver problemas en entornos cambiantes.
Sin embargo tenemos referencias (Raja, 2014) de investigaciones que ponen de manifiesto que si se empieza por el pensamiento computacional en vez de por la elaboración de códigos, desvinculando la iniciación 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. Supone pues un principio de democratización del aprendizaje. Esto supone además que 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.
Pensemos en un ejemplo de pensamiento computacional (en una época en que no había ordenadores) utilizado por un lego, un médico especializado en epidemias, para resolver un problema crucial. Hoy probablemente esto no podría haber sucedido así. Los programadores no tienen conocimientos de epidemiología, y los epidemiólogos no tienen por lo general pensamiento computacional (Koch and Denike, 2009, a través de Raja, 2014).
En 1854 , un médico de Londres llamado John Snow ayudó a sofocar un brote de cólera que había matado a 616 vecinos. Dejando de lado la teoría predominante de la época, la Teoría miasmática de la enfermedad, que aseguraba que las enfermedades se producián por emanaciones surgidas del terreno, indagó las costumbres y los rasgos de la forma de vivir de los enfermos. En un mapa levanto columnas con la ubicación de los muertos, la frecuencia (¿no nos recuerda un infograma?):

Mapa obtenido de  "On the Mode of Communication of Cholera," 1854 Fig. 1. En Rev. Henry Whitehead mapped almost 700 cholera deaths, sewer lines, and both the incorrect location of the old plague burial site (oval) and its correct size and location a block from the Broad Street pump in this 1855 map (Koch and Denike, 2009) y en JOHN SNOW'S MAP 1 (Broad Street Pump Outbreak, 1854)

Observó que las columnas crecían alrededor de una bomba de agua en Broad Street en el Soho (ver el mapa) que además estaba cerca de un pozo negro con fugas. La hipótesis que formuló es que la causa de la enfermedad estaba en el agua. Implicitamente estaba aplicando principios que ahora son clásicos de pensamiento computacional entraron: Cruzar dos conjuntos de datos para obtener un conocimiento nuevo (cruzar la ubicación de las muertes con las ubicaciones de las bombas de agua), contrastar el resultado por iteraciones sucesivas y y el reconocimiento de patrones. Cuando se clausuró la bomba el brote cesó.


Continuamos en la próxima entrada con la definición de pensamiento computacional.

Referencias.-

Koch, T., & Denike, K. (2009). Crediting his critics' concerns: Remaking John Snow's map of Broad Street cholera, 1854. Social science & medicine, 69(8), 1246-1251.http://www.albany.edu/faculty/fboscoe/papers/koch2009.pdf

Raja, T. (2014). We can code it!. http://www.motherjones.com/media/2014/06/computer-science-programming-code-diversity-sexism-education.

No hay comentarios:

Publicar un comentario en la entrada