Ir al contenido principal

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

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.

Comentarios

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Tengo dos problemas con esta nota. El primero se relaciona con una especie de exaltación del buen programador como arquetipo de pensador computacional. El segundo, con el ejemplo de pensamiento computacional que se propone.

    Pensar computacionalmente implica ver el mundo en términos computacionales, de representaciones discretas (estructuras de datos digitales) y procesos algorítmicos (programas), pero no necesariamente conocimiento suficiente de un lenguaje de programación. Si bien el autor hace énfasis en "lo que piensan" los programadores y no en los programas que escriben, no deja de haber un énfasis en la relación entre la programación y el pensamiento computacional.

    Ahora bien, es precisamente cuando el autor trata de despegarse de la programación y sostener el pensamiento computacional en sí mismo cuando comete el error de confundir el pensamiento científico y el razonamiento lógico matemático con el pensamiento computacional. Un mejor ejemplo hubiera sido el trabajo contemporáneo de Charles Darwin, que tras observar un sinnúmero de especies animales, su distribución geográfica y sus condiciones de vida, aventuró una explicación computacional de su existencia, la teoría de la evolución, como lo sugiere Daniel Dennett en Darwin's Dangerous Idea: Evolution and the Meaning of Life.

    ResponderEliminar
  3. Ahora bien, es precisamente cuando el autor trata de despegarse de la programación y sostener el pensamiento computacional en sí mismo cuando comete el error de confundir el pensamiento científico y el razonamiento lógico matemático con el pensamiento computacional. Un mejor ejem https://coaching-mastery.com/como-saber-si-puedo-vender-mi-coche-por-partes/

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Pensamiento computacional desenchufado (VI).- Materiales

Esta serie de posts es un material extraido del libro   El pensamiento computacional, análisis de una competencia clave  (II Edición)  ISBN:   9781798608524. (Versión  ebook ) Muchos hemos estado en Ikea y hemos visto juguetes basados en metodologías de aprendizaje por manipulación, los popularmente conocidos como juguetes Montessori. Tienen este nombre por ser esta autora la que más impulsó y desarrolló este tipo de aprendizaje, el que se produce por la manipulación autónoma por el alumno en un entorno, al que en este caso se denomina rincón, organizado para este fin. Son juguetes para que los niños, a través de la exploración y del desarrollo de sus actividades motoras y sensoriales también desarrollen otras habilidades y facultades cognitivas que en otro momento pueden facilitar aprendizajes de este tipo más complejos. Nos referimos, solo a modo de ejemplo, sin ser exhaustivos, a algunos de estos aprendizajes: A sus habilidades de secuenciación: Por forma, tamaño, co

Pensamiento bayesiano, una componente distinta y relevante del pensamiento computacional (II)

Fuente:  http://www.forbes.com/2010/12/21/speechome-interactive-visualization-language-acquisition.html Veamos ahora otro campo: La lingüística, el aprendizaje automático de lenguajes naturales y el procesamiento del lenguaje natural (PNL). En él nos encontramos este libro de Shay Cohen (2019) titulado Bayesian Analysis in Natural Language Processing , y reseñado por Brett Drury (agosto 2019). En él se sostiene que el análisis y razonamiento probabilístico es un subcampo del aprendizaje automático aplicado al procesamiento del lenguaje natural (PNL). Y, en su contexto, un campo de Probabilidad, la estadística bayesiana, puede ofrecer técnicas únicas para el PNL. Como en el resto de la tradición bayesiana, pero ahora apoyada por el análisis de grandes conjuntos de datos, la asignación de probabilidad a un suceso se basa en la probabilidad de su inverso (probabilidad a priori ), a través del resultado en experimentos conocidos (probabilidad inversa, probabilidad compuesta y teorem

¿Cómo el pensamiento computacional se ha convertido en una competencia clave para los tiempos que corren?

Este post tiene su origen en la pregunta que, con el mismo enunciado que el título de este artículo, me hacen para la presentación del libro "Tecnologías en (y para) la educación" y del máster EduTIC, ambos de FLACSO. I Entre el quinto y tercer milenio antes de Cristo se desarrolla, primero en Mesopotamia del Sur y luego en amplias zonas que hay entre lo que hoy es Siria e Irán, un tipo de escritura basada en símbolos abstractos similares de los que hoy constituyen el código alfabético latino, el griego, el cirílico o el arameo. Es un código que supera las distintas escrituras ideográficas anteriores y posteriores, permitiendo la complejidad de expresar circunstancias, cualidades, acciones e ideas, modificándolas en función del tiempo, del modo, de la intención, del grado de desarrollo y de otros rasgos. Es la escritura cuneiforme Tableta del periodo Uruk ( 3800 a. C.  a  3200 a. C. https://es.wikipedia.org/wiki/Per%C3%ADodo_de_Uruk ) Fuente BBC News https://www.bbc.c