Edsger Wybe Dijkstra - Acerca de la crueldad de realmente enseñar ciencias de la computación

De
Publicado por

Esta charla trata de algunas de las consecuencias científicas y educacionales provenientes de la idea de que los computadores representan una novedad radical. Para darle contenidos claros a tal presunción, tenemos que ser mucho más precisos acerca de lo que se quiere decir en este contexto con el uso del adjetivo "radical". Lo haremos en la primera parte de esta charla, en la cual vamos a proveer evidencia que respalde esta suposición.
Publicado el : jueves, 01 de enero de 2009
Lectura(s) : 60
Fuente : Revista Digital Lámpsakos 2145-4086 (2009) Num. 2
Número de páginas: 10
Ver más Ver menos
Cette publication est accessible gratuitement

Serna, M. E. (2009). Edsger Wybe Dijkstra. Revista Digital Lámpsakos, No. 2, pp. 107-116.
EDSGER WYBE DIJKSTRA

Edgar Serna Montoya
Grupo de investigación SISCO. Funlam, Colombia
edgar.sernamo@amigo.edu.co

(Artículo de TRADUCCIÓN) (Recibido el 18 de febrero de 2009. Aceptado el 14 de mayo de 2009)


Rotterdam, Mayo 11 de 1930 – Nuenen, Agosto 6 de 2002

Fue uno de los más influyentes miembros de Entre sus contribuciones a la informática
la generación fundadora de las ciencias están “el algoritmo de caminos mínimos”,
computacionales. Son notables son aportes también conocido como “Algoritmo de
científicos en las áreas de: Dijkstra”, y haber sido el impulsor de un
Diseño de Algoritmos nuevo paradigma para la época, “la
Lenguajes de programación programación estructurada”. Era conocido
Diseño de programas por su baja opinión de la sentencia GOTO en
Sistemas operativos programación, que culminó en 1968 con su
Procesamiento distribuido artículo “Go To Statement Considered
Especificación y verificación formal Harmful”, visto como un paso importante
Diseño de argumentos matemáticos hacia el rechazo de esta expresión y de su
eficaz reemplazo por estructuras de control
Además, fue admirable su incesante deseo como el bucle while. Era un aficionado bien
por enseñar y por lograr la integración entre conocido de Algol60 y trabajó en el equipo
la ciencia computacional académica y la que desarrolló el primer compilador para
industria del software. En sus casi cuarenta este lenguaje; creó el primer sistema
años como científico computacional operativo con estructura jerárquica de
influenció a ambos sectores, y sus niveles o capas, denominado “THE” -
contribuciones le merecieron innumerables Technische Hogeschool, Eindhoven- que se
premios y reconocimientos, incluyendo el utilizó con fines didácticos.
más alto honor de las ciencias
computacionales, el ACM Turing Award en Desde los años 70, su principal interés fue la
1972. verificación formal. La opinión que
prevalecía entonces era que primero se debe
Estudió física teórica en la Universidad de escribir un programa y seguidamente
Leiden. Trabajó como investigador para proporcionar una prueba matemática de su
Burroughs Corporation a principios de los corrección. Dijkstra objetó que las pruebas
años 1970. En la Universidad de Texas en que resultan son largas e incómodas, y que la
prueba no da ninguna comprensión de cómo Austin, Estados Unidos, ocupó el
Schlumberger Centennial Chair in Computer se desarrolló el programa. Diseñó un método
Sciences. Se retiró en 2000. alternativo al que llamó “la derivación de
programas”, según el cual se deben
~ 107 ~
“desarrollar prueba y programa trabajos tratan sobre las maneras de hacer
conjuntamente”: se comienza con una fluida la argumentación matemática. Dijkstra
especificación matemática de lo que se murió el 6 de agosto de 2002 después de una
supone que el programa va a hacer, luego se larga lucha contra el cáncer.
aplican transformaciones matemáticas a la
especificación hasta que se transforma en un La siguiente es la traducción al español de su
programa que se pueda ejecutar. El artículo: “On the cruelty of really teaching
programa resultante se determina correcto computing science” - EWD1036, de 1988.
por construcción. Muchos de sus últimos

ACERCA DE LA CRUELDAD DE REALMENTE ENSEÑAR
CIENCIAS DE LA COMPUTACIÓN

Edsger Wybe Dijkstra

Esta charla trata de algunas de las consecuencias científicas y educacionales provenientes de la
idea de que los computadores representan una novedad radical. Para darle contenidos claros a
tal presunción, tenemos que ser mucho más precisos acerca de lo que se quiere decir en este
contexto con el uso del adjetivo "radical". Lo haremos en la primera parte de esta charla, en la
cual vamos a proveer evidencia que respalde esta suposición.

La manera usual con la cual se planifica hoy desafortunado accidente de la historia, y
para el mañana es en el vocabulario de ayer. debemos acercarnos a la novedad radical con
Lo hacemos porque tratamos de avanzar con la mente en blanco, rechazando
los conceptos que nos son familiares, los conscientemente el intento de vincularla con
cuales adquieren un significado en nuestra lo que ya nos es familiar, debido a que lo
experiencia pasada. Por supuesto, las familiar es desesperanzadamente
palabras y los conceptos no encajan inadecuado. Debemos, con una especie de
precisamente porque nuestro futuro difiere personalidad dividida, tomar una novedad
de nuestro pasado, pero las estiramos un radical como algo desasociado por propio
poco. Los lingüistas están bastante derecho. Comprender una novedad radical
familiarizados con el fenómeno en el cual los implica crear y aprender un lenguaje
significados de las palabras evolucionan en el extraño, el cual no puede ser traducido a
tiempo, pero también saben que éste es un nuestra lengua materna -Cualquiera que haya
proceso lento y progresivo. aprendido mecánica cuántica sabe a lo que
me refiero. No hace falta decirlo, ajustarse a
Es el método más común cuando se trata de las novedades radicales no es una actividad
lidiar con la novedad: utilizar metáforas y muy popular, ya que requiere mucho trabajo.
analogías para tratar de vincular lo nuevo Por la misma razón, las novedades radicales
con lo viejo, lo novedoso con lo familiar. En no son por sí mismas bienvenidas.
un proceso suficientemente lento y gradual,
esto funciona razonablemente bien; en el A esta altura, bien se pueden preguntar por
caso de una discontinuidad aguda, sin qué he prestado tanta atención y gastado
embargo, el método colapsa: aunque tanta elocuencia en una noción tan simple y
podemos glorificarlo con el nombre "sentido obvia como una novedad radical. Mi razón es
común", nuestra experiencia pasada ya no es muy simple: las novedades radicales son tan
más relevante, las analogías se tornan muy perturbadoras que tienden a ser suprimidas o
superficiales, y las metáforas se hacen ignoradas, al punto que la mera posibilidad
engañosas en vez de reveladoras. Esta es la de su existencia generalmente se niega antes
situación que caracteriza a la novedad que admitirla.
"radical".
Voy a ser breve en cuanto a la evidencia
Lidiar con una novedad radical requiere un histórica. Carl Friedrich Gauss, el Príncipe de
método ortogonal. Debemos considerar su los Matemáticos -pero algo cobarde-, sin
propio pasado, las experiencias recogidas y duda estaba al tanto del destino de Galileo–
los hábitos formados en él como un y, probablemente, podría haber predicho las
~ 108 ~
acusaciones a Einstein– cuando decidió alternativa al valioso uso del cerebro,
suprimir su descubrimiento de la geometría llamado "hacer matemáticas", alejando así el
no Euclidiana, dejando que Bolyai y peligro de la novedad radical mediante el
Lobatchewsky recibieran las críticas. Es simple método de ajustar sus definiciones a
probablemente más revelador ir un poco más sus necesidades: simplemente por definición,
atrás, a la Edad Media, en la que era las matemáticas continuarán siendo lo que
característico pensar que "razonar mediante solían ser. Demasiado para los matemáticos.
analogías" era descontrolado; otra
Déjenme darles un ejemplo más de la característica era el total estancamiento
desconfianza generalizada acerca de la intelectual, y ahora vemos porque ambas
existencia de las novedades radicales y, por características van juntas.
consiguiente, de la necesidad de aprender
cómo tratar con ellas. Es el accionar Una razón para mencionar esto es resaltar
educacional que prevalece, para el cual el que, si se desarrolla un oído entrenado para
cambio, casi imperceptible, parece ser el las analogías no garantizadas, uno puede
paradigma exclusivo. ¡Cuántos textos detectar gran cantidad de pensamiento
educacionales no son recomendados porque medieval hoy. La otra cosa que no puedo
apelan a la intuición del estudiante! resaltar lo suficiente es que la fracción de la
Constantemente tratan de presentar todo población, para la cual el cambio gradual
aquello que podría ser una emocionante parece ser cualquier cosa menos el único
novedad, como les sea posible, como algo paradigma de la historia, es muy grande,
muy familiar. Conscientemente tratan de probablemente mucho más grande de lo que
vincular el material nuevo con lo que se se esperaría. Ciertamente cuando comencé a
supone es el mundo familiar del estudiante. observarlo, su número resultó ser mucho
Por ejemplo al enseñar aritmética: en lugar mayor de lo que esperaba. Por ejemplo, la
de enseñar 2 + 3 = 5, el horrendo operador gran mayoría de la comunidad matemática
aritmético "más" es cuidadosamente nunca confrontó la suposición tácita de que
disfrazado llamándolo "y", y a los pequeños hacer matemáticas continúa básicamente
niños se les presentan primero varios como el mismo tipo de actividad mental que
ejemplos familiares, con objetos claramente siempre fue: los nuevos temas vendrán,
visibles como manzanas y peras, en contraste florecerán y se irán como lo hicieron en el
al uso de objetos numerables como pasado; pero siendo lo que es el cerebro
porcentajes y electrones, que no lo son. La humano y nuestras formas de enseñar y
misma tonta tradición se refleja en la aprender, el entendimiento, las
universidad en diferentes cursos matemáticas, la resolución de problemas y el
introductorios de cálculo para los futuros descubrimiento matemático continuarán
físicos, arquitectos o economistas, en los que siendo básicamente lo mismo.
cada uno los adorna con ejemplos de sus
Herbert Robbins expone claramente por qué respectivos campos.
descarta un salto cuántico en la habilidad
El dogma educacional parece ser que todo matemática:
está bien siempre y cuando el estudiante no Nadie va a correr 100 metros en cinco
segundos, sin importar cuánto se invierta en se dé cuenta que está aprendiendo algo
entrenamiento y máquinas. Lo mismo puede verdaderamente nuevo; generalmente, el
decirse acerca del uso del cerebro. La mente presentimiento del estudiante es de hecho
humana no es diferente ahora de lo que era correcto. Considero como un serio obstáculo
hace cinco mil años. Y cuando se trata de la falencia de una práctica educativa en
matemáticas, hay que darse cuenta que se
preparar a la próxima generación para el
trata de utilizar la mente humana al límite de
fenómeno de novedades radicales. Cuando el su capacidad.
Rey Fernando visitó la conservadora
universidad de Cervera, el Rector Mi comentario en el margen fue "¡entonces
orgullosamente le dijo al monarca: "Lejos reduzca el uso del cerebro y calcule!".
esté de nosotros, Señor, la peligrosa novedad Usando la propia analogía de Robbins, se
de pensar". Los problemas de España en el puede resaltar que, para ir rápido desde A
siglo que siguió justifican mi caracterización hasta B, pueden existir alternativas a la de
del problema como "serio". Demasiado para correr, que son órdenes más efectivas.
Robbins rechaza de plano analizar cualquier
~ 109 ~
adoptarse en la educación el paradigma de confrontamos un cociente completamente
9cambio gradual. abrumador de 10 . El programador está en la
desigual posición en la que la suya es la única
El concepto de novedades radicales es de disciplina y profesión donde un cociente tan
importancia contemporánea ya que, mientras gigante, lo cual completamente sobrepasa
estamos mal preparados para tratar con nuestra imaginación, debe consolidarse por
ellas, la ciencia y la tecnología no se una sola tecnología. Debe poder pensar en
muestran expertas en influirlas sobre términos de jerarquías conceptuales que son
nosotros. Ejemplos científicos antiguos son la mucho más profundas que todas aquellas que
teoría de la relatividad y la mecánica debió enfrentar una sola mente alguna vez.
cuántica; ejemplos tecnológicos modernos Comparado con ese número de niveles
son la bomba atómica y la píldora. Durante semánticos, la teoría matemática promedio
décadas, los dieron lugar a un torrente de es casi plana.
corrientes religiosas, científicas o cuasi-
científicas. Día a día podemos observar el Evocando la necesidad de profundas
profundo error de enfoque con el cual los jerarquías conceptuales, la computadora
últimos se abordan, ya sea por nuestros automática nos confronta con un radical
políticos y líderes religiosos o por el público desafío intelectual que no tiene precedente
en general. Demasiado para el daño hecho a histórico. Nuevamente, debo enfatizar esta
nuestra paz mental por las novedades novedad radical ya que el verdadero
radicales. creyente en el cambio gradual y las mejoras
incrementales no puede verla. Para él, una
Traje esto a colación debido a mi computadora automática es algo como una
convencimiento de que las computadoras familiar caja registradora, sólo que algo más
automáticas representan una novedad radical grande, rápida y más flexible. Pero la
y de que sólo identificándolas como tal analogía es ridículamente superficial: en
podemos identificar todo lo irrelevante, los órdenes de magnitud es como comparar un
conceptos errados y la mitología que las medio de transporte como el avión
rodea. Una inspección más a fondo revelará supersónico, con un bebé que gatea, ya que
que esto es todavía peor, ya que que las el cociente de velocidad es sólo de mil.
computadoras automáticas engloban no sólo
una novedad radical sino dos de ellas. La La segunda novedad radical es que la
primera es una consecuencia directa del computadora automática es nuestro primer
poder bruto de las computadoras actuales. dispositivo digital de gran escala. Tuvimos un
Todos sabemos cómo tratar con algo tan par de notables componentes discretos:
grande y complejo: divide y vencerás; por acabo de mencionar la caja registradora y
ejemplo, vemos el todo como una podemos agregar la máquina de escribir con
composición de partes y tratamos con las sus teclas individuales, con un sólo golpe
partes por separado, y si una parte es muy podemos escribir una Q o una W pero,
grande, repetimos el procedimiento: la aunque las teclas están una al lado de la
ciudad se estructura en barrios, que a su vez otra, nunca se mezclan las dos. Pero tales
se estructuran en calles, que contienen mecanismos son la excepción, y la amplia
edificios, que están hechos de paredes y mayoría de nuestros mecanismos son vistos
pisos, que están construidas de ladrillos..., como dispositivos analógicos cuyo
eventualmente se llega a las partículas comportamiento sobre un amplio rango es
elementales. Y tenemos a todos nuestros una función continua de todos los parámetros
especialistas sobre el tema, desde el involucrados: si presionamos la punta del
ingeniero civil, el arquitecto y el físico de lápiz un poco más fuerte, obtenemos una
estado sólido y demás. Ya que, en cierto línea levemente más gruesa; si el violinista
sentido, el todo es más grande que sus ubica su dedo levemente fuera de su posición
partes, la profundidad de una correcta, reproduce una nota levemente
descomposición jerárquica es algún tipo de desafinada. A esto debería agregar que, al
logaritmo del cociente entre los tamaños del punto que nos vemos como mecanismos, nos
todo y las partes más pequeñas. vemos primordialmente como dispositivos
analógicos: si nos esforzamos un poco más
Desde un bit a cien mega bytes, desde un esperamos rendir un poco más. A menudo el
microsegundo a media hora de cómputos, comportamiento no es solamente una función
~ 110 ~
continua sino también monótona, ya que pero no es así, ya que si lee cuidadosamente
para ver si un martillo es adecuado sobre un su literatura y analiza lo que realmente
cierto rango de clavos, lo probamos con el hacen quienes se avocan a ella, se descubrirá
más pequeño y el más grande de los clavos que la ingeniería de software adopta como
del rango, y si el resultado de ambos estatuto el "Cómo programar si usted no
experimentos es positivo, estamos puede".
perfectamente predispuestos a creer que el
martillo será apropiado para todos los clavos La popularidad de su nombre es suficiente
intermedios. para hacerla sospechosa. En lo que
denominamos sociedades primitivas, la
Es posible, inclusive tentador, ver un superstición de que conocer el verdadero
programa como un mecanismo abstracto, nombre de alguien otorgaba un poder mágico
como alguna clase de dispositivo. Pero sobre él, no es inusual. Difícilmente somos
hacerlo, sin embargo, es altamente menos primitivos: ¿por qué persistimos en
peligroso, ya que la analogía es muy contestar el teléfono con el poco útil "aló" en
superficial debido a que un programa es, vez de nuestro nombre? Tampoco estamos
como mecanismo, totalmente diferente de por encima de la primitiva superstición de
todos los familiares dispositivos analógicos que podemos tener cierto control sobre algún
con los cuáles crecimos. Como toda la demonio malicioso desconocido llamándolo
información digitalizada, tiene la inevitable e por un nombre seguro, familiar e inocente,
incómoda propiedad de que la menor de las tal como ingeniería. Pero esto es totalmente
posibles perturbaciones –cambios a un sólo simbólico, así como demostró uno de los
bit– puede tener las más drásticas fabricantes de computadoras de los EE.UU.
consecuencias. Para complementar agrego hace unos años, cuando contrató a cientos de
que la situación no cambia en su esencia por nuevos "ingenieros de software" mediante el
la introducción de la redundancia o la simple mecanismo de elevar a todos sus
corrección de errores. En el mundo discreto programadores a ese exaltante rango.
de la computación, no hay métrica Demasiado para ese término.
significativa en la cual pequeños cambios y
pequeños efectos vayan de la mano, y nunca La práctica está impregnada de la
los habrá. Esta segunda novedad radical confortable ilusión de que los programas son
comparte el destino usual a todas las simplemente dispositivos como cualquier
novedades radicales: es negada, porque su otro, la única diferencia que se admite es
verdad sería demasiado incómoda. No tengo que su fabricación pueden requerir un nuevo
idea lo que esta negación y descreencia tipo de especialistas: los programadores.
específica le cuesta a los Estados Unidos, Desde allí hay sólo un pequeño paso hasta
pero un millón de dólares al día parece una medir la “productividad del programador” en
modesta estimación. términos de la “cantidad de líneas
producidas por mes”. Esta es una unidad de
Luego de describir, en los términos más medida muy costosa, porque anima a escribir
amplios posibles, lo admito, la naturaleza de código insípido, y si la idea es contar líneas
las novedades computacionales, debo ahora de código, no deben verse como “líneas
proveer la evidencia de que tales novedades producidas”, sino como “líneas gastadas”. El
son, de hecho, radicales. Lo haré explicando sentido común actual es tan tonto como el
una serie de fenómenos que de otra manera hecho de contabilizar una cuenta del lado
serían extraños por la frustrante ocultación o erróneo del balance.
negación de su aterradora extrañeza. Cierta
cantidad de estos fenómenos se agrupan bajo Además de la noción de productividad, el
el nombre de "Ingeniería de Software". Así control de calidad también se distorsiona por
como la economía es conocida como "La la confortable ilusión de que los programas
ciencia miserable", la ingeniería de software funcionan como lo hacen otros aparatos. Han
debería ser conocida como "La disciplina pasado ya dos décadas desde que se señaló
condenada"; condenada porque ni siquiera que el testing de programas puede
puede acercarse a su meta, dado que la convincentemente demostrar la presencia de
misma es en sí misma contradictoria. La errores, pero nunca puede demostrar su
ingeniería de software, por supuesto, se ausencia. Después de citar devotamente este
presenta a sí misma como otra causa valiosa, comentario bien publicitado, el ingeniero de
~ 111 ~
software vuelve al orden del día y continúa consecuencias educativas son, por supuesto,
refinando sus estrategias de testing, tal como las más engorrosas, por lo tanto se discutirán
el alquimista de antaño, quien refinaba sus luego; primero tratemos con las ciencias de
purificaciones crisocósmicas. la computación en sí mismas. ¿Qué es la
computación? ¿De qué trata la ciencia de la
Un profundo malentendido revela el término computación? Una vez que todo está dicho y
“mantenimiento de software” como hecho, la única cosa que los computadores
resultado del cual muchas personas creen pueden hacer por nosotros es manipular
que los programas –inclusive los mismísimos símbolos y producir resultados de tales
lenguajes de programación– están sujetos a manipulaciones. De las observaciones
desgaste y ruptura. Es famosa la historia de previas, es necesario recordar que este es un
la empresa petrolera que creía que sus mundo discreto y, más aún, tanto los
programas en PASCAL no durarían tanto como números como los símbolos involucrados y la
sus programas en FORTRAN “porque PASCAL cantidad de manipulaciones realizadas, son
no tenía soporte”. En el mismo sentido órdenes de magnitudes mayores a los que el
también llama la atención la sorprendente hombre puede concebir: desconciertan
facilidad con que se acepta la sugerencia de totalmente cualquier imaginación y por lo
que los males de la producción de software tanto no es conveniente siquiera tratar de
de deben, en gran medida, a la falta de imaginarlas.
“herramientas de programación” apropiadas
–no falta sino que aparezca la frase “banco Pero antes que un computador esté listo para
de trabajo del programador”. Nuevamente, realizar alguna clase de manipulación con
lo miope de la analogía subyacente se debe a sentido –o cálculo, si se prefiere– es
la Edad Media: las confrontaciones con las necesario escribir un programa. ¿Qué es un
insípidas “herramientas” del tipo de programa? Varias respuestas son posibles: se
“animación de algoritmos” con el que puede ver como lo que transforma un
actualmente se quiere comparar al desarrollo computador de propósito general en un
de software, recuerda el proceso del negocio manipulador de símbolos de propósito
de aceite de serpientes de aquella época. específico, y lo hace sin necesidad de
cambiar un solo cable; lo que fue una
Finalmente, para corregir la posible enorme mejora respecto de las máquinas con
impresión de que la inhabilidad de enfrentar paneles de cables dependientes del
la novedad radical está confinada al mundo problema. Es mejor describirlo de la otra
industrial, analicemos la actual popularidad manera: un programa es un manipulador de
de la Inteligencia Artificial. Se esperaría que símbolos abstracto, que puede convertirse en
la gente se sintiera aterrorizada por los uno concreto suministrándole un
“cerebros gigantes de máquinas que computador. Después de todo, el propósito
piensan”; de hecho, el atemorizante de los programas ya no es más instruir a las
computador se vuelve menos atemorizante si máquinas, en estos días, el propósito de las
se utiliza solamente para simular un no- máquinas es ejecutar los programas.
computador más familiar. Con toda seguridad
que esta explicación será controvertida por Por lo tanto, es necesario diseñar
bastante tiempo dado que la Inteligencia manipuladores de símbolos abstractos. Que
Artificial, como imitadora de la mente se vean como programas o, para usar una
humana, prefiere verse a sí misma como a la terminología más general, usualmente
vanguardia, mientras que la anterior fórmulas de algún sistema formal un tanto
explicación la relega a la retaguardia. “El elaboradas. Realmente ayuda ver a un
esfuerzo de utilizar máquinas para imitar la programa como una fórmula: primero, pone
mente humana siempre me ha parecido la tarea del programador en la perspectiva
bastante tonto: las usaría para imitar algo correcta, tiene que derivar esa fórmula;
mejor”. segundo, explica por qué el mundo de las
matemáticas ignora el desafío de la
Hasta aquí la evidencia de que las novedades programación, los programas eran fórmulas
computacionales son, de hecho, radicales. mucho más largas que las usuales, al punto
Ahora viene la segunda –y más difícil– parte que ni siquiera las reconocieron como tales.
de esta charla: las consecuencias educativas Ahora, de vuelta al trabajo del programador:
y científicas de lo ya expuesta. Las tiene que derivar esa fórmula, tiene que
~ 112 ~
derivar ese programa, y se conoce una única no están mentalmente preparados para
forma confiable de hacerlo, mediante la aceptar que sólo resolvieron los problemas
manipulación de símbolos. más simples a precio de crear uno mucho
más difícil
Ahora el círculo está cerrado: se construyen 3. La subcultura del programador
manipuladores de símbolos mecánicos compulsivo, cuya ética prescribe que una
mediante la manipulación de símbolos idea tonta y un mes de codificación
humanos. Por lo tanto, la ciencia de la frenética, deberían bastar para hacerlo
computación está –y siempre estará– millonario de por vida
relacionada con la interacción entre la 4. Los ingenieros en computación, quienes
manipulación de símbolos mecanizada y quisieran continuar actuando como si
humana, usualmente llamadas fuera solamente cuestión de mayor flujo
“computación” y “programación”, de bits o más flops por segundo
respectivamente. Un beneficio inmediato de 5. Los militares, quienes están hoy
esta visión es que revela a la “programación totalmente absorbidos por el negocio de
automática” como una contradicción de usar computadores para transformar
términos; y un beneficio posterior es que partidas de miles de millones de dólares
indica dónde ubicar la ciencia de la en la ilusión de seguridad automática
computación en el mapa de las disciplinas 6. Todo tipo de ciencias para las cuales la
intelectuales: en la dirección de la computación ahora actúa de alguna
matemática formal y la lógica aplicada, pero especie de refugio interdisciplinario
mucho más allá de donde se encuentra 7. El negocio educativo que siente que, si
actualmente, dado que la ciencia de la tiene que enseñar matemática formal a
computación se interesa en el uso efectivo los estudiantes de Ciencias de la
de los métodos formales en una escala Computación, también deberían cerrar sus
mucho, mucho mayor de la que el ser facultades.
humano ha sido testigos hasta ahora.
Con este último ejemplo se alcanza,
Dado que ningún emprendimiento es imperceptiblemente pero también
respetable por estos días sin una Sigla de inevitablemente, la parte más engorrosa de
Tres Letras STL, propongamos que se adopte, esta charla: consecuencias educativas. El
para la ciencia de la computación, la sigla problema con la política educativa es que es
IMF -Iniciativa de los Métodos Formales-, y, difícilmente influenciada por consideraciones
para estar del lado seguro, es mejor seguir científicas derivadas de los tópicos dictados,
los brillantes ejemplos de nuestros líderes y y casi completamente determinada por
hacer de ella una Marca Registrada. En el circunstancias ajenas a la ciencia, como las
largo plazo se espera que la ciencia de la expectativas conjugadas de los estudiantes,
computación trascienda a sus disciplinas sus padres y sus futuros empleadores, y el
padres, matemática y lógica, de forma enfoque prevaleciente del rol de la
efectiva y realizando una parte significativa universidad. ¿El acento está en formar sus
del sueño de Leibniz: proveer un cálculo graduados para los trabajos de nivel inicial
simbólico como una alternativa al de hoy o en proveer a sus alumnos con el
razonamiento humano. Nótese la diferencia bagaje intelectual y las actitudes que
entre “imitar” y “proveer” una alternativa. perduraran por otros 50 años? ¿Se le da
rencorosamente a las ciencias abstractas solo
De más está decir que esta visión acerca de un rincón lejano en el campus, o se
lo qué trata la ciencia de la computación no reconocen como el motor indispensable de la
es universalmente aplaudida. Por el industria de alta tecnología? Aún si se hace lo
contrario, encuentra oposición –a veces hasta último, ¿se reconoce una industria de alta
violenta– desde todo tipo de direcciones. tecnología como tal si su tecnología
Mencionemos como ejemplos: pertenece principalmente a las matemáticas
1. La comunidad matemática, que quisiera formales? ¿Proveen las universidades a la
continuar creyendo que el Sueño de sociedad el liderazgo intelectual que
Leibniz es una ilusión irreal necesita o sólo el entrenamiento que
2. La comunidad empresarial, quienes, demanda?
habiéndoseles vendido la idea de que los
computadores harían la vida más simple,
~ 113 ~
La retórica académica tradicional está las violaciones, digamos veinticinco centavos
perfectamente dispuesta a dar a estas para estudiantes de grado, cincuenta
cuestiones las respuestas tranquilizadoras, centavos para estudiantes de postgrado y
pero es difícil creerlas. A modo de cinco dólares para miembros de la facultad,
ilustración, en un artículo de David Flaherty para final del primer semestre del nuevo
(Flaherty, 1988), groseramente se establece régimen, se habrá recolectado suficiente
que “Además, la élite de los negocios dinero para dos becas.
descarta a los académicos e intelectuales
como ampliamente irrelevantes e La razón para esta última sugerencia es que
impotentes”. Así, si se mira en una borrosa la metáfora antropomórfica –por cuya
bola de cristal hacia el futuro de la introducción se puede culpar al mismo John
educación en ciencias de la computación, von Neumann– es una enorme desventaja
sobrecogedoramente se ve la deprimente para cada comunidad informática que la
imagen del "negocio acostumbrado". A las adoptó. Se encuentran programas que
universidades les seguirá faltando el coraje quieren cosas, saben cosas, esperan cosas,
de enseñar ciencia dura, continuarán creen cosas, etc., y cada vez eso genera
orientando mal a los estudiantes, y cada confusiones evitables. La analogía que
nuevo escalón de infantilización del subyace a esta personificación es tan
currículum será exaltado como progreso superficial que no es solamente engañosa
educativo. sino también paralizante. Es engañosa en el
sentido que sugiere que se puede lidiar con
Este ejercicio de observar en la borrosa bola el desconocido discreto en términos del
de cristal, ofrece predicciones familiar continuo, es decir, nosotros mismos,
invariablemente melancólicas y usualmente quod non. Es paralizante en el sentido que,
correctas, a las que es necesario debido a que las personas existen y actúan en
acostumbrarse, y que no sean impedimentos el tiempo, su adopción efectivamente impide
para hacer sugerencias, aunque sea un despegue de la semántica operacional y
meramente un ejercicio vano cuyo único lleva a las personas a pensar sobre los
efecto es hacerlos sentir culpables. Por programas en términos de comportamientos
ejemplo, se puede comenzar por limpiar el computacionales, basados en un modelo
lenguaje con que se expresan los términos computacional subyacente. Esto es malo,
computacionales: denominar a un bug como porque el razonamiento operacional es un
error y no como bug -bicho, fastidio, tremendo desperdicio de esfuerzo mental.
sabandija (Nota del traductor). Es mucho más
honesto porque pone manifiestamente la Vamos a explicar la naturaleza de ese
culpa donde corresponde, es decir, en el tremendo desperdicio y que la frase
programador que cometió el error. La “tremendo desperdicio de esfuerzo mental”
metáfora animada del bug que se introdujo no es una exageración. Es necesario asumir
maliciosamente mientras el programador no un lenguaje altamente técnico: es el tipo de
estaba mirando es intelectualmente matemáticas que se puede hacer con las
deshonesta, ya que disfraza el hecho de que manos en los bolsillos. El punto a comunicar
el error es propia creación del programador. es que si se tiene que demostrar algo
Lo agradable de este simple cambio de respecto de todos los elementos de un
vocabulario es que tiene un profundo efecto: conjunto grande, es desesperanzadamente
antes, un programa con sólo un error solía ineficiente tratar con todos los elementos del
ser “casi correcto”, después de ello un conjunto individualmente: el argumento
programa con un error es simplemente eficiente no se refiere a elementos
“erróneo” -porque tiene un error. individuales en lo absoluto y se lleva a cabo
Otra sugerencia lingüística, un poco más en términos de la definición del conjunto.
rigurosa, es confrontar el síndrome de “si- Consideremos la figura plana Q, definida
este-tipo-quiere-hablarle-a-ese-tipo”: nunca como el cuadrado de 8 por 8 del cual, en dos
se refieran a partes de programas o piezas de esquinas opuestas, se quitan dos cuadrados
equipo en una terminología antropomórfica, de 1 por 1. El área de Q es 62, que equivale
ni permitan hacerlo a sus estudiantes. Esta al área combinada de 31 cuadros de 1 por 2.
mejora lingüística es mucho más difícil de El teorema es que la figura Q no puede ser
implementar de lo que podrían pensar: si se cubierta por 31 de estos cuadros. Otra
considerara la introducción de multas para manera de exponer el teorema es que si se
~ 114 ~
utiliza papel cuadriculado y se cubre éste el texto de los programas mientras –
ubicando cada siguiente cuadro en dos temporalmente- se ignora que admiten la
nuevos recuadros adyacentes, ninguna interpretación de código ejecutable.
distribución de 31 cuadros dará como
resultado la figura Q. Así, una posible manera Otra manera de decir la misma cosa: un
de probar el teorema es generar todas las lenguaje de programación, con su sintaxis
posibles distribuciones de cuadros y verificar formal y las reglas de demostración que
para cada distribución que no da como definen su semántica, es un sistema formal
resultado la figura Q. para el cual la ejecución del programa
provee solamente un modelo. Es bien
El argumento simple, sin embargo, es como conocido que los sistemas formales deberían
sigue: pintar los recuadros del papel ser tratados por derecho propio, y no en
cuadriculado como un tablero de ajedrez. términos de un modelo específico.
Cada cuadro, cubriendo dos recuadros Nuevamente, el corolario es que se debe
adyacentes, cubre 1 recuadro blanco y 1 razonar sobre los programas sin siquiera
negro y, por consiguiente, cada distribución mencionar su posible “comportamiento”.
cubre tantos recuadros blancos como Hasta aquí esta excursión técnica en el
recuadros negros. En la figura Q, sin motivo por el cual el razonamiento
embargo, el número de recuadros blancos y operacional sobre la programación es “un
el número de recuadros negros difiere en 2 – tremendo desperdicio de esfuerzo mental” y
esquinas opuestas sobre la misma diagonal– y por qué, en consecuencia, en la ciencia de la
por consiguiente ninguna disposición de computación debería prohibirse la metáfora
cuadros da como resultado la figura Q. antropomórfica.

No sólo es el simple argumento anterior Un programa no es más que la mitad de una
muchas órdenes de magnitud más corto que conjetura, la otra mitad es la especificación
la investigación exhaustiva de las posibles funcional que se supone que satisface el
distribuciones de 31 cuadros, es también programa. La tarea del programador es
esencialmente más poderoso, dado que cubre presentar las conjeturas completas como
la generalización de Q reemplazando el teoremas demostrados.
cuadrado original de 8 por 8 por cualquier
rectángulo con lados de longitud par. Siendo Consideremos la siguiente forma de hacer
infinito el número de tales rectángulos, el justicia a las novedades radicales de la
método previo de exploración exhaustiva es computación en un curso introductorio a la
esencialmente inadecuado para probar programación: por un lado, se enseña algo
nuestro teorema generalizado. Y esto que se parece al cálculo de predicados, pero
concluye el ejemplo. Se presentó porque se hace de manera muy distinta a los
ilustra fácilmente el poder de las filósofos. A fin de entrenar al programador
matemáticas terrenales; no hace falta novato en la manipulación de fórmulas sin
decirlo, la negación de explotar este poder interpretar, se enseña más como álgebra
de las matemáticas terrenales escala al booleana, familiarizando al estudiante con
suicidio intelectual y tecnológico. La todas las propiedades algebraicas de los
moraleja de la historia es: tratar con todos conectivos lógicos. Para romper aún más los
los elementos de un conjunto ignorándolos y vínculos con la intuición, ser renombran los
trabajando con la definición del conjunto. valores {verdadero, falso} del dominio
booleano como {negro, blanco}. Por otro
Volvamos a la programación. La aseveración lado, se enseña un lenguaje de programación
de que un programa dado cumple una cierta imperativo simple y claro, con un skip y una
especificación, escala a una aseveración asignación múltiple como sentencias básicas,
sobre todos los cálculos computacionales que con una estructura de bloque para variables
podrían ocurrir bajo el control de ese locales, el punto y coma como operador para
programa dado. Y dado que este conjunto de composición de sentencias, una bonita
cálculos está definido por el programa dado, construcción alternativa, una bonita
la anterior moraleja dice: trate con todas los repetición y, si se quiere, una llamada a
cálculos posibles bajo control de un programa procedimiento. A esto se agrega un mínimo
dado ignorándolas y trabajando con el de tipos de datos, digamos booleanos,
programa. Debemos aprender a trabajar con enteros, caracteres y cadenas. Lo esencial es
~ 115 ~
que, para lo que sea que se introduzca, la desde principios de los 80, se dio este curso
semántica correspondiente está definida por introductorio a la programación a cientos de
las reglas de demostración que la estudiantes de primer curso de grado cada
acompañan. Desde el comienzo, y a través de año -ya que decir esto no es suficiente, la
todo el curso, se enfatiza en que la tarea del sentencia previa debería repetirse por lo
programador no es sólo escribir un programa, menos otras dos veces. Así que, intentemos
sino que su tarea principal es dar una prueba de nuevo. Admitiendo renuentemente que
formal de que el programa que propone podría quizás enseñarse a estudiantes
cumple la especificación funcional - suficientemente dóciles, todavía rechazan
igualmente formal. Mientras se diseñan esta propuesta porque tal curso se desviaría
demostraciones y programas conjuntamente, tanto de lo que los estudiantes de 18 años
el estudiante adquiere una amplia están habituados y esperan, que enseñarles
oportunidad de perfeccionar su destreza esto es un acto de irresponsabilidad
manipulativa con el cálculo de predicados. educativa: sólo frustraría a los estudiantes.
Finalmente, para hacer llegar el mensaje de No hace falta decirlo, esa cometa tampoco
que este curso introductorio a la va a volar. Es cierto que el estudiante que
programación es principalmente un curso en nunca ha manipulado fórmulas sin interpretar
matemáticas formales, nos encargamos de se da rápidamente cuenta que se confronta
que el lenguaje de programación en cuestión con algo totalmente distinto a cualquier cosa
no haya sido implementado en el campus de que haya visto antes. Pero afortunadamente,
manera que los estudiantes estén protegidos las reglas de manipulación son en este caso
de la tentación de probar sus programas. tan pocas y simples que muy poco después
hace el excitante descubrimiento de que
Esta es una propuesta seria, y sumamente comienza a dominar el uso de una
sensible. Su única desventaja es que es herramienta que, en toda su simplicidad, le
demasiado radical para muchos, quienes, da un poder que sobrepasa sus sueños más
siendo incapaces de aceptarla, se ven audaces.
forzados a inventar alguna justificación
rápida para desestimarla, no importa lo Enseñar a jóvenes desprevenidos el uso
inválida sea. Veamos unas pocas de esas efectivo de los métodos formales es uno de
justificaciones. los placeres de la vida, porque es
extremadamente gratificante. En pocos
No necesitan tomar esta propuesta meses, encuentran su camino en un mundo
seriamente porque es tan ridícula que está nuevo con justificado grado de confianza,
obviamente desconectada del mundo real. que es radicalmente novedoso para ellos; en
Pero esa cometa no va a volar, ya que el pocos meses, su concepto de cultura
mundo real es otra cosa: los problemas del intelectual adquiere una dimensión
mundo real son principalmente aquellos con radicalmente novedosa, ¿no es esto de lo de
los que ustedes se quedan después de lo que se trata la educación. Las
negarse a aplicar sus efectivas soluciones. Así universidades no deberían temerle a enseñar
que, probemos de nuevo. No necesitan tomar novedades radicales; por el contrario, es su
seriamente esta propuesta porque es llamado dar la bienvenida a la oportunidad
sumamente surrealista intentar enseñar tal de hacerlo. Su disposición a hacerlo es
material a alumnos de primer año. ¿No sería nuestra principal salvaguarda contra las
esa una salida fácil? Acaban de postular que dictaduras, sean del proletariado, del
esto sería por lejos muy difícil. Pero esa establishment académico, o de la élite
cometa tampoco va a volar, dado que el corporativa.
postulado se demostró falso hace tiempo:

FUENTES
1. E. W. Dijkstra. (1989). On the cruelty of really teaching computing science. Communications
of the ACM, Vol. 32, No. 12, pp. 1398-1404.
2. Flaherty, D. H. (1988). Who Rules Canada? In Stephen Richards Graubard’s “In search of
Canada”, pp. 99-128.
3. Wikipedia.org

~ 116 ~

¡Sé el primero en escribir un comentario!

13/1000 caracteres como máximo.