Noticias

Columna de opinión

Saber leer, escribir... y programar

Saber leer, escribir... y programar

Alfabetizar, según la Real Academia de la Lengua, es “enseñar a leer y a escribir”. Clásicamente alfabetizar es entregar las herramientas básicas para que un ser humano pueda integrarse a la vida social y comunicarse con los demás. Curiosamente saber “contar” o saber “sumar” no entraba en ese bagaje básico. Los censos antiguos contenían preguntas sobre si “sabe leer y escribir” pero no sobre si sabe sumar. Claro, no es fácil la pregunta. ¿Saber sumar cuánto? y luego, saber restar, multiplicar, dividir, etc.

 

Hoy nadie dudaría que “saber matemáticas” también es parte del conjunto de habilidades básicas que uno esperaría de un escolar. Para comenzar a entender y vivir en este mundo sin duda se necesita además de saber leer y ser capaz de redactar un informe o una carta, poder vérselas con los números: sacar cuentas, entender cifras y, ojalá, algo de estadística básica. Son herramientas sin cuyo dominio es prácticamente imposible, por un lado a entender la sociedad (historia, cultura, política, etc.) y por otro lado el ambiente en que vivimos (economía, mecánica, química, etc.).

 

En el mundo del lenguaje es posible distinguir una parte pasiva, receptiva, y una activa. La primera podríamos asociarla con la lectura y cierta escritura descriptiva, una suerte de “anotación” de la realidad. Por otra parte, el lenguaje activo comunica, mueve, transforma. Una carta que cambia el ánimo de otro, el discurso que conmueve, la arenga que agita, el manifiesto que organiza.

 

En el mundo de las matemáticas pareciera no haber parte “activa”. Las matemáticas ayudan a entender, a explicar, a describir. Formalizan y entregan herramientas y notaciones para entender. ¿Hay una suerte de “matemáticas activas”, que comuniquen acción, que “transformen” la realidad?  Sí, y se llama programación: el arte de especificar y comunicar acciones (usualmente a máquinas). Programar no es matemáticas y tampoco es literatura. Saber especificar acciones, programar, es una ciencia per se. Es sorprendente lo analfabeto que se muestra hasta el más hábil matemático en ello. Tampoco el lenguaje literario funciona. El siguiente es el intento de Julio Cortázar, un maestro en el oficio de la escritura, especificando un algoritmo para subir una escalera:

 

“Las escaleras se suben de frente, pues hacia atrás o de costado resultan particularmente incómodas. La actitud natural consiste en mantenerse de pie, los brazos colgando sin esfuerzo, la cabeza erguida aunque no tanto que los ojos dejen de ver los peldaños inmediatamente superiores al que se pisa, y respirando lenta y regularmente. Para subir una escalera se comienza por levantar esa parte del cuerpo situada a la derecha abajo, envuelta casi siempre en cuero o gamuza, y que salvo excepciones cabe exactamente en el escalón. Puesta en el primer peldaño dicha parte, que para abreviar llamaremos pie, se recoge la parte equivalente de la izquierda (también llamada pie, pero que no ha de confundirse con el pie antes citado), y llevándola a la altura del pie, se le hace seguir hasta colocarla en el segundo peldaño, con lo cual en éste descansará el pie, y en el primero descansará el pie (los primeros peldaños son siempre los más difíciles, hasta adquirir la coordinación necesaria. La coincidencia de nombre entre el pie y el pie hace difícil la explicación. Cuídese especialmente de no levantar al mismo tiempo el pie y el pie).

 

Llegado en esta forma al segundo peldaño, basta repetir alternadamente los movimientos hasta encontrarse con el final de la escalera. Se sale de ella fácilmente, con un ligero golpe de talón que la fija en su sitio, del que no se moverá hasta el momento del descenso”.

 

Un gran trozo de literatura. Pero absolutamente inútil a la hora de programar un robot para que suba una escalera. Lamentable intento. ¿Qué falló? La programación. Podemos oler varios elementos de ella que penan: la definición precisa de la variable pie (“no confundir con el pie antes citado”, etc.); la especificación de las acciones atómicas para cada variable; un repeat until con débil especificación de condición (¿qué es “final de la escalera”? ); etc. Resumen: Cortázar saca un 2.5 (un punto por la idea y medio por el esfuerzo) en su tarea subirEscalera.c. Un posible pseudocódigo para nota arriba de 4:

 

// 1. Comienzo     subirUnPeldano(pieIzquierdo); // 2. Repetir alternadamente     WHILE (ningun pie en el final de la escalera) {        subirDosPeldano(pie mas bajo);     } // 3. Salida     subirUnpeldano(pie mas bajo);     caminar normalmente;

 

Programar es una mezcla de análisis del problema, abstracción, especificación formal, simulación mental, conocimiento del lenguaje disponible, etc. Debiera ser, junto con leer, escribir y saber matemáticas básicas, parte del cajón de herramientas básicas del ciudadano hoy.No es casualidad que a nivel mundial se esté pensando seriamente en ello, como lo muestran estos artículos sobre la necesidad de más computación en las escuelas de California y la necesidad de enseñar programación en la escuela en la Comunidad Europea. Ya que nos gusta tanto copiar al primer mundo, ¿por qué no le copiamos estas ideas e introducimos programación en nuestro currículo escolar?

Galería de fotos

Últimas noticias