viernes, noviembre 12, 2010

citas de Carl Sagan

http://alt1040.com/2010/11/carl-sagan-citas-frases


Afirmaciones extraordinarias requieren siempre de evidencia extraordinaria.

Si quieres salvar a tu hijo del polio puedes rezar o puedes vacunarlo… Aplica la ciencia.

Vivimos en una sociedad profundamente dependiente de la ciencia y la tecnología en la que nadie sabe nada de estos temas. Ello constituye una fórmula segura para el desastre.

El primer pecado de la humanidad fue la fe; la primera virtud la duda.

A veces creo que hay vida en otros planetas y a veces creo que no. En cualquiera de los dos casos la conclusión es asombrosa.

La ausencia de prueba no es prueba de ausencia.

Para hacer una tarta de manzana primero tienes que crear un universo.

En algún sitio algo increíble espera ser descubierto.

Somos el medio para que el Cosmos se conozca a sí mismo.

El universo no fue hecho a medida del hombre; tampoco le es hostil: Es indiferente.

La ciencia es más que un simple conjunto de conocimientos: es una manera de pensar.

Somos polvo de estrellas.

En la Ciencia la única verdad sagrada, es que no hay verdades sagradas.

Hemos averiguado que vivimos en un insignificante planeta de una triste estrella perdida en una galaxia metida en una esquina olvidada de un universo en el que hay muchas mas galaxias que personas.

La Tierra es un lugar más bello para nuestros ojos que cualquiera que conozcamos. Pero esa belleza ha sido esculpida por el cambio: el cambio suave, casi imperceptible, y el cambio repentino y violento. En el Cosmos no hay lugar que esté a salvo del cambio.

martes, noviembre 09, 2010

optimización c++

http://en.wikibooks.org/wiki/Optimizing_C%2B%2B

jueves, noviembre 04, 2010

kwallet

Me gusta mucho kwallet

El inconveniente es que sólo es válido para aplicaciones de kde, pero es un gran programa


kwallet se encarga de guardar las contraseñas de todos los programas de kde


Eso es bueno, porque si cada programa lo hace por su cuenta, tienes varios inconvenientes


¿Lo hace bien?
Quiero decir, ¿guarda las contraseñas encriptadas o en texto plano?
Alguno podría hacerlo bien y otro mal, quien sabe.

¿Dónde se guardan?
Cada uno lo guardará donde le convenga

¿Dónde y cómo se administran las contraseñas guardadas?
Si quieres ver, borrar, modificar una contraseña, tendrás una forma de hacerlo por cada programa (si es que la tienes)


kwallet te ofrece un lugar de acceso a tus contraseñas, protegido con una única contraseña


Puedes tener más de un wallet, pero yo nunca lo he hecho.

El caso, es que un programa kde que requiera contraseña, le informará a kwallet y este preguntará al usuario si quieres utilizar kwallet para gestionar la contraseña de ese programa


Dependiendo del nivel de seguridad, quizá convenga cambiar algunas configuraciones por defecto de kwallet


Si no me equivoco, kwallet viene configurado para que la "wallet" (cartera) no se cierre nunca una vez que se ha abierto.
Sería más razonable que se cierre después de 15 minutos de inactividad de la misma, por ejemplo.
Eso habría que combinarlo con un bloqueo de pantalla cada x minutos también por inactividad

Hay otras opciones sencillas de entender en la solapa de configuración


Un caso práctico.


En el trabajo, en la intranet (recién estrenada), me asignaron un usuario y una contraseña.
La contraseña caduca y tengo que meter una nueva que cumpla unas condiciones.
Cuando la contraseña caduca, me pide la anterior y la nueva. Pero nunca recuerdo la anterior porque el navegador (utilizando kwallet) la recuerda por mi.
Pero a la hora de cambiar la contraseña, los id de los cuadros de entrada están cambiados (eso es un detalle no relevante de mala programación) y me obliga a introducir una contraseña que no recuerdo.

La solución es fácil.

Me meto en kwallet, la busco, copio, pego y a correr


Tengo suscripciones a varios foros de cuestiones técnicas, contraseñas de acceso remoto a equipos windows, acceso ftp, etc...

Todas están en mi kwallet

Supongamos que cambias de ordenador y no recuerdas la contraseña de uno de los foros a los que te has suscrito
¿Te das de alta otra vez?

Pues no, abres el kwallet, lo buscas y punto.
Es más, puedes exportar (inseguro pero práctico, hacer con cuidado) toda la lista de contraseñas a un xml para verlas o simplemente importarlas



kwallet es genial, pero tiene algún INCONVENIENTE


El gran inconveniente, es que es para apliaciones de kde

Firefox, chromium-browser y los programas de gnome no lo utilizan

Lo que me disgustaba mucho del navegador arora (que está hecho con qt, pero no es kde) es que no se integraba con kwallet


¿Existe algo parecido en windows o gnome?


Si no es así, YA VA SIENDO HORA

Igual que en su día el sistema de comunicación de kde dcop/kparts fue un éxito superior a bonobo de gnome (que era una copia de COM de windows y ambos demostraron ser muy inferiores a dcop/kparts de kde) y la comunidad se planteó unificar en un único sistema de comunicación (llamado dbus), se podrían plantear tener un repositorio de contraseñas de escritorio común.

Por un kwallet único para todos


Mientras tanto, no tengo mucho problema porque utilizo mayoritariamente aplicaciones de kde




saludos

martes, noviembre 02, 2010

Fecha del ordenador

Se puede saber la fecha de un ordenador por la fecha de la BIOS

sudo dmidecode -s bios-release-date

viernes, octubre 22, 2010

La bolsa de Londres contenta con las pruebas y Linux

El sábado, septiembre 19, 2009 ya vi (y metí en este blog) la noticia de que la bolsa de Londres no estaba contenta con .NET y lo abandonaba.


Ahora la confirmación y alegría con el nuevo sistema


http://www.muylinux.com/2010/10/21/la-bolsa-de-londres-a-toda-pastilla-gracias-a-linux


El mercado bursátil londinense está de lo más contento: su sistema basado en Linux ha permitido alcanzar un récord mundial en la velocidad de las comunicaciones, con tiempos de operaciones financieras de tan solo 126 microsegundos.

Esta noticia precede a la migración a un sistema global a Linux durante el cual este sistema operativo de libre distribución reemplazará a la tecnología Microsoft .NET que operaba hasta la fecha en la Bolsa de Londres (London Stock Exchange, LSE). Esta organización había recibido muchas críticas por sus prestaciones, que obligaban a sufrir tiempos de operaciones de varios cientos de microsegundos.

Según ComputerWorld, la velocidad de 126 microsegundos es el doble de rápida que la que se obtiene en otros competidores internacionales com oBATS Europe y Chi-X, dos rivales electrónicos específicos del LSE, y que tienen unas latencias de 250 y 175 microsegundos respectivamente.

Durante los próximos 12 días se procederá con la migración total de los sistemas de la Bolsa de Londres, y si todo va bien el LSE abrirá con Linux como pilar fundamental el próximo 1 de noviembre. Excelentes noticias que demuestran una vez más la potencia de Linux en aplicaciones de misión crítica como estas operaciones financieras a gran escala.

lunes, octubre 11, 2010

Guía del empresario tecnológico emprendedor

Supongamos que viene un "mindundi" a proponerte que participes y colabores con él en un descrubrimiento que hizo y puede ser una revolución brutal dentro de unos años.

Supongamos que quiere que le subenciones parte de los costes de realizar la patente de ese producto
¿Qué harías?

Pues veamos un caso práctico REAL para ilustrar la situación
https://francisthemulenews.wordpress.com/2010/10/05/2010-nobel-fisica-andre-geim-y-konstantin-novoselov-por-el-descubrimiento-del-grafeno/

El "mindundi" es el premio nobel de física de este año.

Y según se puede ver en esta entrevista...

http://www.nature.com/news/2010/101007/full/news.2010.525.html

Traducción de una parte de la entrevista del enlace anterior

«Consideramos patentarlo, escribimos la patente y casi la registramos> Entonces tuve una interacción con una gran multinacional de la electrónica.
Me dirigí a un tipo en una conferencia y le dije: "Tenemos esta patente, ¿te interesaría patrocinarla a lo largo del tiempo?"
Resulta muy caro mantener viva una patente durante 20 años.

El tipo me dijo: "Estamos interesados en el grafeno, y puede que tenga un futuro a largo plazo. Si dentro de diez años consideramos que es tan importante como promete, le dedicaremos cien abogados de patentes para que escriban cien patentes al día, y te pasarás el resto de tu vida, y el producto interior bruto de tu islita, llevándonos a pleito".

Es una cita directa.» Observad y aprender de esta lección.

ABOGADOS. Eso es lo que hace falta en una empresa tecnológica de primer nivel ¿Viste la peli de la tapadera? Los dos señores gordos y serios, no eran mafiosos, eso es una mala traducción. Eran el presidente y el CEO de una empresa tecnológica puntera

O de como las pantentes incentivan la investigación e innovación

jueves, octubre 07, 2010

patentes en móviles

Lo primero y fundamental... Abogados Luego, también muy importante, gente con ideas para patentar cosas que sirvan para poner muchas demandas en el futuro y poner a trabajar a los abogados Y por último, no crear nunca ningún producto, la razón, al final de este correo Motorola demanda a Apple por cuestiones de patentes de móviles Mira en los siguientes gráficos (donde falta esta patente que indico) de patentes relacionadas con móviles http://www.flickr.com/photos/pconigs/5055027363/ http://www.guardian.co.uk/technology/2010/oct/04/microsoft-motorola-android-patent-lawsuit# http://infobeautiful2.s3.amazonaws.com/whos_suing_whom.png Atención al bucle Motorola demanda a Apple, Apple demanda a Nokia, Nokia demanda a Motorola y todos los abogados de todas las compañías salen ganando Mención especial a Kodak, que como todos sabemos es líder en tecnologías de teléfonos móviles ;-P Porque ellos sí que han cogido la idea Lo que hay que hacer es patentar y luego demandar NI SE TE OCURRA FABRICAR UN CACHARRILLO, porque luego te demandan Kodak es el rey, el que más demanda y al que no demanda nadie porque no ha participado en ningún teléfono. Estos sí que saben Hasta aquí la lección I del empresario tecnológico ¿alguien decía que las patentes en general (y de software en particular) promueven la investigación e innovación?

miércoles, octubre 06, 2010

Estudios científicos y detectar chapuzas

http://perarduaadastra.eu/2010/10/estudios-cientificos-como-detectar-una-chapuza/


Estudios científicos: cómo detectar una chapuza

48 comentarios

Muchas veces veréis en blogs científicos que uno nombra un estudio, y poco después llega alguien que se pone estupendo: que si no está aleatorizado, que si el tamaño muestral, el ciego… Algo que suena a chino (o a capullo) si quien lo lee no sabe el proceso que hay detrás de la producción científica. ¿Por qué un estudio es más fiable que otro, por qué sus conclusiones son más creíbles? Veamos la diferencia entre himbestigar e Investigar.

Viñedo de variedad tempranilloHimbestigación.

Quiero ver si un abono es bueno para las plantas. Cojo un árbol, le echo abono, y al cabo de los días lo observo: ah, pues sí que parece que está más lozano. Concluyo que el abono hace que el árbol crezca mejor, y me fumo un puro.

Cosa seria.

Quiero ver si un abono es bueno para las plantas.

  • Curvas de supervivencia en un ensayoPero no me puedo fiar de lo que le pase a un único árbol de la finca: lo mismo está a la entrada de la acequia, recibe más agua que el resto y por eso crece mejor… Así que se lo voy a echar a quinientos árboles (tamaño muestral).
  • Y, claro, igual este año hace más sol y mejor temperatura, y por eso crecen más hermosos, independientemente del fertilizante. Así que tendré que observar otro grupo de árboles, en las mismas condiciones que los abonados pero sin abono, a ver qué les pasa (grupo control).
  • Además, puede que este abono haga que los árboles necesiten más agua, aunque yo aún no lo sé. Y si lo doy en la finca que está en la vega del río es muy útil, pero si lo empleo tierra adentro, seco los árboles. De modo que fertilizaré árboles de distintas fincas (representatividad de la muestra).
  • También puede que, por casualidad (o porque soy el fabricante), abone sólo las fincas mejor regadas: ¡normal que luego los árboles crezcan más saludables! ¿No será mejor echar a suertes qué pedazos abono y cuáles no? (aleatorización) Y para asegurar que las diferencias se deben sólo a eso, los árboles tendrán que ser lo más parecidos posible entre sí. Eso también lo consigo asignando al azar (siempre que tenga suficientes elementos, claro).
  • Y, después de discurrir todo esto, yo me pregunto: ¿qué es lo que realmente me importa, que crezcan más lozanos, o que den más peras y más gordas? Hombre, si miro el verdor de los árboles sabré el resultado sin tener que esperar a cosechar… pero lo que a mí me parece frondoso, a otro puede que no. Vale, es más rápido observar la finca y ver su aspecto, que contar las peras que da cada uno y medir su calibre. Pero es que, realmente, la frondosidad o los brotes me la traen bastante floja. Yo quiero saber si usar el abono se traduce en mejores frutos (solidez de las variables de resultado).
  • Por otra parte, es verdad que medir las peras es más objetivo que la apariencia del árbol, pero lo mismo voy con el prejuicio deEs que esta finca nunca ha dado buen fruto o Este abono no puede ser bueno y, sin querer, altero los resultados. ¡No digo hacer trampa, ojo! Digo medir las peras más gordas inconscientemente, o coger las del árbol más flojo. Así que será mejor si la persona que mide los resultados no sabe qué fincas están abonadas o no: así nos aseguramos de que es completamente objetivo (ciego simple, doble o triple).
  • Perfecto. Me he devanado los sesos para planificarlo, he abonado, he recogido todo, y tengo aquí un montón de libretas con datos. ¿¿Qué coño hago con ellos?? Estadística. Procesarlos matemáticamente para que me respondan una pregunta: ¿hay diferencias entre los árboles tratados y los que no? Y, si las hay, ¿esas diferencias pueden ser casuales, o son demasiado grandes como para ser pura coincidencia? (significación estadística). Imagínate que lanzo una moneda al aire: yo espero que la mitad salgan caras, y la mitad cruces. Si la lanzo treinta veces, es posible que en diecisiete salga cara. Pero ni de coñadeberían salir treinta caras: si ocurre, ¡es que la moneda tiene truco!

Ampliando un poco: estudios médicos.

Esto que parece tan sencillo es algo que se pasan por el forro en estudios que luego los periodistas corren a publicar con titulares sensacionalistas, por eso me pareció útil explicarlo brevemente. Y, dejándome de peras y manzanas, veamos a qué me refiero concretamente en el ámbito de la investigación médica.

  • Tamaño muestral. Es crucial hacer un estudio con el mayor número posible de personas, así nos aseguramos de que nuestras conclusiones serán sólidas (una gaviota no hace verano, y esas cosas). Así pues, sabemos que la simvastatina sirve para bajar el colesterol y reducir la mortalidad gracias a un estudio con más de cuatro mil participantes. Y un ensayo con más de quince mil pacientes nos dijo que añadir el caro clopidogrel a la aspirina no aporta ninguna ventaja.
  • Grupo control. Es que si no hay grupo control, ¡no puedo calcular ninguna diferencia! Tengo que comparar mi fármaco con una sustancia biológicamente inactiva (placebo) o, mejor, con otro fármaco que ya haya demostrado su eficacia. Si no, no tengo forma de justificar que las variaciones que aparecen se deben a mi intervención: puede ser desde un efecto Hawthorne hasta una pura chiripa, pero en cualquier caso, mis resultados sirven para bastante poco.
  • Representatividad de la muestra, estudios multicéntricos. Quiero saber si mi medicamento será útil cuando se lo dé a pacientes con artrosis en general, no si se lo doy a mujeres menopáusicas de 55 a 65 años sin osteoporosis y que no hayan tomado antiinflamatorios en el último mes. Cuantas más condiciones ponga, más boletos tengo para que el estudio no sea extrapolable. Y un estudio que no es aplicable a la práctica clínica, es una perfecta pérdida de tiempo y dinero.
    Obviamente, esto también tiene un contrapartida: ¿y si resulta que el medicamento sólo es útil en mujeres? Para eso está elanálisis multivariante; cuando procesemos los resultados veremos que estos varían en función del sexo (o de la edad, o…) y dejaremos una sugerencia a otros investigadores: ¡eh, centraos en este subgrupo!
  • Aleatorización. Si asigno al azar quién recibe el fármaco y quién el placebo, al final tendré dos grupos iguales entre sí. Pero si en el hospital A damos el fármaco y en el B dan el placebo, ¿las diferencias se deben al medicamento, a que el A tiene pacientes más enfermos, o a que en el B se les añaden otros tratamientos?
  • Solidez de las variables de resultado. Todos sabemos que tener alto el azúcar es malo. Pero también sabemos que morirse es aún peor. Por consiguiente, a mí me da igual que un medicamento baje la glucosa: ¡lo que quiero es no morirme por la diabetes! No vaya a ser que el medicamento me baje el azúcar… pero me cause un infarto.
  • Ciego simple, doble o triple. Del mismo modo que a los catadores no se les dice qué están probando, en un ensayo no se debe decir si te estoy dando el antiguo y poco eficaz tratamiento, o la chachipastilla que te va a poner bueno en tres días. Entre otras cosas, porque quizás la pastilla no sea tan chachi… pero tú te lo creas y le digas al médico que, huy, ya estás mucho mejor de los temblores. Así que podemos “cegar” al paciente (simple ciego), al paciente y al médico que lo evalúa (doble), o al paciente, al médico, y al matemático que procesa los datos (triple ciego). Así nadie puede tener la tentación de inclinar los resultados.
  • Significación estadística. Significación clínica. Que algo sea “estadísticamente significativo” significa que, si realmente no hubiese diferencias entre las opciones ensayadas, sería la hostia de raro encontrar las diferencias de mi estudio, u otras aún mayores. Digamos que la significación estadística (que se otorga a partir del 5%, un valor elegido por convenio) es como un sello que avala mis resultados: señores, aquí hay una diferencia, y casi seguro que no es por casualidad.
    Pero precaución: significación estadística no implica relevancia clínica. Puede que un antibiótico cure la infección en 8,3 días y otro lo haga en 8,2. A eso le puedes poner las cintas que quieras, pero ya me dirás si vale la pena dar un medicamento nuevo y más caro a cambio de 0,1 días de ingreso menos.

En fin, damas y caballeros, esto es todo (¡como si fuese poco, menuda chapa nos ha soltado el cabrón!). He simplificado con la esperanza de que se entienda mejor: si no ha sido así, debajo de esta línea tenéis los comentarios.

jueves, septiembre 23, 2010

let's make a deal el problema de monty hall

Una simulación del problema

http://math.ucsd.edu/~crypto/cgi-bin/MontyKnows/monty2?1+6415

http://www.letsmakeadeal.com/

http://www.historiasdelaciencia.com/?p=502/#comment-12910

http://en.wikipedia.org/wiki/Monty_Hall_problem

Los que tenemos ya una edad y superamos las cuarenta primaveras tenemos en la memoria el programa Un, dos, tres, responda otra vez. Si no lo recordáis o no lo conocéis, no pasa nada. Recuerdo que había un juego en el que al concursante le presentaban tres puertas. Tras una de ellas había un coche. El concursante escogía una (digamos, la 1). Entonces, el presentador le mostraba otra puerta tras la cual no estaba el coche (digamos, la 2). Entonces le decían: ¿quiere Ud. cambiar de puerta? O sea, podía seleccionar la 1, que es la que había escogido al principio, o la 3. ¿Debía el concursante cambiar o no? ¿Hay alguna diferencia?

Mucho más tarde, me enteré que este problema es conocido como Problema de Monty Hall y que en realidad, no era una cuestión del programa español, sino de otro llamado “Let’s make a deal”, que funcionó desde 1963 hasta 1990. A los creadores de este programa debió dejarles perplejos que después de emitir unos 4.500 programas durante 28 años, el legado principal fuera esta cuestión.

Y es que con la respuesta han llovido ríos de tinta. Está claro que, si no cambiamos, la probabilidad de que acertemos la puerta correcta es 1/3. El hecho de que nos enseñen una puerta donde no está no hace que dichas probabilidades cambien. La cuestión es que una vez que nos han enseñado esa puerta vacía, si cambiamos, el problema es otro, pues escogemos con una información que no teníamos al principio: ¿cuál sería su elección entre tres puertas si sabemos que el coche no está en la 2, por ejemplo?

Hubo muchos que dijeron que había que cambiar porque al inicio, la probabilidad de acierto era 1 entre 3; pero después, como sólo quedaban dos puertas, en el caso de cambiar, la probabilidad de acertar era 1 entre 2, o sea, un 50% de posibilidades en lugar del 33%. Por ello, el cambio era recomendable.

Por lo menos, parecía ser así hasta que entró en escena una mujer llamada Marilyn vos Savant ¿No la conocéis? Es la mujer que tiene el Coeficiente Intelectual (CI) más alto del mundo, con una puntuación de 228. Consta, incluso, en el libro Guinness de los Récords desde el año 1986. También es famosa por estar casada con Robert Jarvik, inventor del corazón artificial Jarvik. Pero la fama al gran público llegó por otro lado.

Tenía una columna en la revista Parade llamada “Ask Marilyn” y le plantearon esta cuestión. La amiga Marilyn contestó que, efectivamente, debía cambiar pero nuesta probabilidad de acierto no sería del 50%, sino del 66%, o sea, de 2/3.

Bueno los lectores de su columna casi se volvieron locos. Recibió unas 10.000 cartas en las que le corregían o se sentían defraudados por fallar en una pregunta tan sencilla. Entre las cartas había unos 1.000 matemáticos (muchos de ellos, doctores). Era tan evidente: había dos puertas, ¿no? pues una posibilidad entre dos era un 50%. ¿Qué podía haber más sencillo? Uno de ellos, un matemático, escribió un contundente la jodiste:

Deja que me explique: si se enseña una puerta perdedora, esa información cambia la probabilidad de cualquier elección mantenida, ninguna de las cuales tiene ninguna razón para ser más probable a 1/2. Como matemático profesional, estoy muy preocupado por la falta de habilidad matemática del público general. Por favor, ayuda confesando tu error y, en el futuro, sé más prudente.

Pero Marilyn siguió en sus trece. Otros matemáticos de otras universidades también escribieron:

Estoy conmocionado después de haber sido corregido por al menos tres matemáticos, tú todavía no ves tu error.

¿Cuántos matemáticos furiosos se necesitan para cambiar tu opinión?

Si todos esos doctores están equivocados, el país se encontraría en serios problemas.

Incluso el grandísimo Paul Erdös dijo: “Esto es imposible”.

Solo cuando se hicieron simulaciones por ordenador y se vio el resultado, Erdös aceptó que estaba equivocado. Pero un momento, ¿cómo era posible que todo el mundo, salvo Marilyn, dijera el 50% y las simulaciones dieran un 66%? ¿Acaso tenía razón Marilyn? ¿Estaba entonces el país en serios problemas como advertía aquel matemático?

En realidad, el problema ya había sido resuelto por Martin Gardner en 1959 (ver elcomentario de Jordi Solà). Voy a intentar explicaros por qué Marilyn tenía razón y aquel montón de gente se equivocaba. Normalmente, cuando alguien intenta explicarlo, lo hace calculando la probabilidad de acierto. Yo voy a hacer lo contrario: voy a imaginar que sé dónde está el coche y ver en cuál de las casillas acierto. Con este punto de vista, la explicación es casi evidente.

Vamos a imaginar que el coche está en la puerta 1 y consideremos las tres posibilidades: que escojamos la puerta 1, la 2 o la 3 y que siempre cambiaremos la puerta después de que nos enseñen la que no lo tiene.

Estado inicial

1.- Escogemos la puerta 1.

Escogemos la puerta 1

En ese caso, el presentador nos enseña la puerta 2 o la 3 (puertas sobre las que hay un círculo verde), cualquiera de ellas, ya que el coche no está allí. Nosotros cambiamos y perdemos. Resumiendo: si seleccionamos la 1 y cambiamos, perdemos.

2.- Escogemos la puerta 2.

Escogemos la puerta 2

En ese caso, el presentador no puede enseñarnos la puerta 1, ya que destrás está el coche; y no puede mostrarnos la puerta 2, pues la hemos escogido. Por tanto, debe enseñarnos la puerta 3 (marcada con el círculo verde), puesto que allí no está el coche.

Nosotros cambiamos a la que queda, o sea, la 1 y ganamos. Resumiendo: si seleccionamos la 2 y cambiamos, ganamos.

3.- Escogemos la puerta 3.

Escogemos la puerta 3

Ahora, el presentador sigue sin poder enseñarnos la puerta 1, y la 3 tampoco, puesto que es la que hemos seleccionado. Sólo puede mostrarnos la 2 (sobre la que está el círculo verde), pues el coche no está allí. Nosotros cambiamos a la 1 y ganamos. Resumiendo: si seleccionamos la 3 y cambiamos, ganamos.

¿Os habéis dado cuenta? Veamos, partiendo de la premisa de que hacemos el cambio de puerta:

Si al principio seleccionamos la 1 y cambiamos, perdemos.

Si al principio seleccionamos la 2 y cambiamos, ganamos.

Si al principio seleccionamos la 3 y cambiamos, ganamos.

Este razonamiento lo podría repetir tanto si el coche está tras la puerta 2 o la puerta 3, pues la posición de la que partimos donde está el coche es indiferente. Sí, cambiaría los números de las puertas, pero la conclusión sería la misma: en dos puertas ganaríamos el juego y en una perderíamos.

Por tanto, ¿no es, acaso, una probabilidad de 2 entre 3 de ganar? Parece que, después de todo, la señora Marilyn tenía razón, ¿no?

Existen simulaciones por en las que se hace una estadística de aciertos en esta página. Y por si no he sido suficientemente claro, tenéis otra explicación (con un poco más de parafernalia técnica) en esta otra página.

Y es que, en ciencia, no cuenta el número de personas que estén a favor o en contra de una argumentación. Y tampoco ganan quienes más gritan o quienes son más elocuentes. Ya lo dijo nuestro Santo Padre Galileo Galilei:




#2.- Enviado por: Iñaki

EL DÍA 21 DE SEPTIEMBRE DE 2010 A LAS 19:49

Había oído la anécdota, pero ¿realmente pasó así o es una exageración alimentada con el paso de los años? Es que se me hace increíble que hubiera un solo matemático que fallase de esa manera en una cuestión tan simple.

No obstante, cuando ha salido alguna vez el tema en alguna conversación, siempre queda algún incrédulo. En esos casos, siempre pongo el siguiente ejemplo:

Imagina que el juego consta de 1.000.000 de puertas. Tras una de ellas hay un premio, en el resto, nada. Eliges una puerta y acto seguido abren 999.998 puertas tras las que no hay nada. Así, quedan dos cerradas: la tuya y otra. ¿Cambias o no cambias?



miércoles, septiembre 01, 2010

Arturo Pérez Reverte y la violencia de GÉNERO

http://xlsemanal.finanzas.com/web/firma.php?id_firma=664&id_edicion=89


Se veía venir. Ley contra la Violencia de Género, la han llamado. Pese a los argumentos de la Real Academia Española, el Gobierno del talante y el buen rollito, impasible el ademán, se ha pasado por el forro de los huevos y de las huevas los detallados argumentos que se le presentaron, y que podríamos resumir por quincuagésima vez diciendo que ese género, tan caro a las feministas, es un anglicismo que proviene del puritano gender con el que los gringos, tan fariseos ellos, eluden la palabra sex. En España, donde las palabras son viejas y sabias, llamar violencia de género a la ejercida contra la mujer es una incorrección y una imbecilidad; pues en nuestra lengua, género se refiere a los conjuntos de seres, cosas o palabras con caracteres comunes –género humano, género femenino, género literario–, mientras que la condición orgánica de animales y plantas no es el género, sino el sexo. Recuerden que antiguamente los capullos cursis llamaban sexo débil a las mujeres, y que género débil no se ha dicho en la puta vida.

Todo eso, pero con palabras más finas y académicas, se le explicó hace meses al Gobierno en un documento respaldado por sabios rigurosos como don Francisco Rodríguez Adrados, don Manuel Seco, don Valentín García Yebra y don Gregorio Salvador, entre otros. Ahí se sugerían alternativas –la RAE nunca impone, sólo aconseja–, recomendando el uso de la expresión violencia doméstica, por ejemplo, que es más recta y adecuada. Al Gobierno le pareció de perlas, prometió tenerlo en cuenta, y hasta filtró el informe –que era reservado– a la prensa. De modo que todo cristo empezó a decir violencia doméstica. Por una vez, se congratuló la Docta Casa, los políticos atienden. Hay justos en Gomorra. Etcétera.

Pero, como decía La Codorniz, tiemble después de haber reído. Ha bastado que algunas feministas fueran a la Moncloa a decir que la Real Academia no tiene ni idea del uso correcto de las palabras, y a exigir que se ignore la opinión de unos tiñalpas sin otra autoridad que ser lingüistas, filólogos o lexicógrafos, para que el Gobierno se baje los calzones, rectifique, deje de decir violencia doméstica, y la expresión violencia de género figure en todo lo alto de la nueva ley, como un par de banderillas negras en el lomo de una lengua maltratada por quienes más deberían respetarla. Aunque tal vez lo que ocurre sea, como asegura la franciscana peña que nos rige, que el mundo se arregla, además de con diálogo entre Occidente y el Islam –Occidente sentado en una silla y el Islam en otra, supongo–, con igualdad de géneros y géneras. El otro día ya oí hablar de la España que nos legaron nuestros padres y madres. Tela. Como ven, esto promete.

En cualquier caso, el nombre de la nueva ley es un desaire y un insulto a la Real Academia y a la lengua española; y ocurre mientras el español –aquí llamado castellano, para no crispar– se afianza y se reclama en todas partes, cuando en Brasil lo estudian millones de personas y es obligatorio en la escuela, y cuando se estima que en las universidades de Estados Unidos será lengua mayoritaria, sobre el inglés, hacia 2020. Y oigan. Yo no soy filólogo; sólo un académico de infantería que hace lo que puede, y cada jueves habla a sus mayores de usted. Esos doctos señores no van a quejarse, porque son unos caballeros y hay asuntos más importantes, entre ellos seguir haciendo posible el milagro de que veintidós academias asociadas, representando a cuatrocientos millones de hispanohablantes, mantengan la unidad y la fascinante diversidad de la lengua más hermosa del mundo –Quevedo, Góngora, Sor Juana y los otros, ya saben: esos plumíferos opresores y franquistas–, y que un estudiante de Gerona, un médico de Bogotá y un arquitecto de Chicago utilicen el mismo diccionario que, se supone, utilizan en La Moncloa. Pero yo no soy un caballero. Me educaron para serlo, pero no ejerzo. Así que me tomo la libertad de decir, amparado en el magisterio de esa Real Academia que el Gobierno de España acaba de pasarse por la entrepierna, que llamar violencia de género a la violencia doméstica es una tontería y una estupidez. Y que la palabra que corresponde a quien hace eso –página 1.421 del DRAE: persona tonta o estúpida– es, literalmente, soplapollas. Eso sí: el año que viene, a la hora de hacerse fotos en el cuarto centenario del Quijote, se les llenará a todos la boca de Cervantes. Ahí los espero.

martes, agosto 31, 2010

regla del 90-90

http://es.wikipedia.org/wiki/Regla_del_noventa-noventaRegla del noventa-noventa


En Programación e Ingeniería de software la regla del noventa-noventa hace referencia a un aforismo cómico:
"El primer 90% del código ocupa el 90% del tiempo de desarrollo. El 10% restante del código ocupa el otro 90% de tiempo de desarrollo."
(The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.)
La regla es atribuida a Tom Cargill de Bell Laboratories (Laboratorios Bell) y fue hecha popular por Jon Bentley's en septiembre de 1985, en una columna llamada "Programming Pearls" de la revista "Communications of the ACM".
Esta instancia del Principio de Pareto hace clara alusión a la creencia generalizada en el entorno del desarrollo de software de que cualquier planificación nace condenada a no cumplirse. De ahí que los porcentajes sumen más de 100.
[editar]Variaciones

Precisamente por este motivo, como los porcentajes no suman 100, el aforismo de Cargill muchas veces es confundido como un error tipográfico. La versión "corregida" de la regla muchas veces se enuncia como:
"El primer 90% del código ocupa el 10% del tiempo de desarrollo. El 10% restante del código ocupa el otro 90% de tiempo de desarrollo."
El sueño de todo programador es identificar este 10% de código y optimizarlo para futuras versiones de software.

pareto priciple

http://en.wikipedia.org/wiki/Pareto_principle


Descripción

Pareto enunció el principio basándose en el denominado conocimiento empírico. Observó que la gente en su sociedad se dividía naturalmente entre los «pocos de mucho» y los «muchos de poco»; se establecían así dos grupos de proporciones 80-20 tales que el grupo minoritario, formado por un 20% de población, ostentaba el 80% de algo y el grupo mayoritario, formado por un 80% de población, el 20% de ese mismo algo.
Estas cifras son arbitrarias; no son exactas y pueden variar. Su aplicación reside en la descripción de un fenómeno y, como tal, es aproximada y adaptable a cada caso particular.
El principio de Pareto se ha aplicado con éxito a los ámbitos de la política y la Economía. Se describió cómo una población en la que aproximadamente el 20% ostentaba el 80% del poder político y la abundancia económica, mientras que el otro 80% de población, lo que Pareto denominó «las masas», se repartía el 20% restante de la riqueza y tenía poca influencia política. Así sucede, en líneas generales, con el reparto de los bienes naturales y la riqueza mundial.
[editar]Aplicaciones

Dijkstra: Por qué Juancito no puede entender

http://www.smaldone.com.ar/documentos/ewd/juancito.html


Por qué Juancito no puede entender

Edsger W. Dijkstra. (EWD991)
http://www.cs.utexas.edu/users/EWD/ewd09xx/EWD991.PDF

Hace unos años escuché una disertación sobre la estructura de las pruebas. Sin vacilar, el disertante se volvió muy gráfico y las pruebas se convirtieron en grafos dirigidos con flechas de los antecedentes a los consecuentes. [Mathematics Inc. hubiera comercializado el producto por aquellos días como Entendimiento Asistido por Computadoras Mediante Animación de Argumentos.] Luego de quince minutos el orador dirigió nuestra atención hacia el hecho de que algunas pruebas eran planas, en tanto que otras no lo eran. Luego, mostró cómo transformaciones simples de las pruebas en otras lógicamente equivalentes podían cambiar su "planaridad"; pero en vez de concluir que, por lo tanto, la planaridad de las pruebas no era probablemente un concepto relevante, se embarcó en un estudio de los argumentos intrínsecamente no-planos, etc.

Fue la disertación más absurda que he oído en años. (Por eso aún la recuerdo.) El pobre tipo era una grave víctima de su educación: confundía el grafo dirigido, como un subconjunto de los pares ordenados, con la representación gráfica de flechas entre puntos. [Si hubiera sido instruido sobre las matrices de incidencia, podría haber disertado sobre los eigenvalores de las pruebas.]

Esto es lo que nos sucede una y otra vez. Cuando se nos introduce un nuevo concepto se nos dan varios ejemplos de un contexto esperanzadoramente familiar, o se nos dan uno o dos modelos en los cuales el nuevo formalismo, sus objetos y sus operaciones pueden ser "entendidos". Y realmente se nos alienta a realizar esas interpretaciones para convencernos a nosotros mismos de que el nuevo formalismo "tiene sentido". Fallan, sin embargo, en advertirnos de que tales interpretaciones tienden a ser engañosas porque los modelos son sobreespecíficos; en que tales hábitos de entendimiento son totalmente desconcertantes cuando las visualizaciones que los acompañan desorientan a la imaginación y que la carga mental de moverse hacia y desde la fórmula y su interpretación, debe mejor evitarse. De hecho, uno solo puede esperar que, al aumentar la familiaridad con el formalismo, el modelo tranquilamente se esfume de nuestra conciencia.

Esto ya había comenzado cuando se nos enseñaron los números naturales. No aprendimos que 2 + 3 = 5, primero aprendimos -¡gráficamente!- que dos manzanas y tres manzanas son cinco manzanas, y luego para peras, para plumas, para gatos, árboles y elefantes. El modelo de la manzana es penosamente inadecuado, dado que, para dar lugar al producto, la manzana tiene que ser elevada al cuadrado, y por consiguiente -y afortunadamente- se desvanece; pero no antes de haber creado un obstáculo para los enteros negativos. Se puede argumentar que seguimos pagando el precio, esto es, si consideramos la invisibilidad del cero en el modelo de la manzana como la responsable de todas las complicaciones matemáticas causadas por considerar el 1 como el menor número natural. (En comparación con los griegos hemos sido afortunados: con sus segmentos de línea pudieron multiplicar muy poco, desafortunadamente lo suficiente como para no tirar su modelo. Y eventualmente la matemática griega murió por su pobreza conceptual y complejidad gráfica: una lección para todos nosotros.)

Dudo seriamente que el desvío a través del modelo de la manzana sea esencial para enseñar los enteros a niños pequeños, pero aún en tal caso, no veo la razón por la cual un proceso de aprendizaje que pueda ser apropiado para niños pequeños deba serlo también para la mente adulta. Y esta parece ser la asunción sobre la cual operan la mayoría de los escritores y muchos de los lectores adultos. Mi -triste- conclusión es que los patrones más difundidos de entendimiento no han sido seleccionados concienzudamente por su efectividad y pueden ser mejor descriptos como hábitos adictivos, muchos de los cuales merecen una advertencia de cirugía general.

Mi observación más común es ver gente que se siente más confortable con el específico innecesario. Cuando son confrontados a un conjunto parcialmente ordenado, piensan mentalmente "por ejemplo, los enteros". Mientras yo fui entrenado para evitar los ejemplos al leer un texto -dado que pueden ser superfluos y, en cualquier caso, distraen-, veo gente que se siente más incómoda fuando se enfrentan a un texto sin ejemplos. Gente que tiene dificultad en entender una construcción que contiene un parámetro natural k me ha asegurado que dicha parametrización presenta un obstáculo adicional que podrían remover sustituyendo inicialmente k por un valor pequeño, digamos 3. No tengo motivos para dudar de su palabra; el extraño fenómeno probablemente estaba conectado al hecho de que k no ocurría en un contexto muy aritmético, sino como la longitud de cadenas o la cantidad de arcos que confluyen en un vértice (contextos en los cuales están habituados a manejarse en términos de gráficos). De la misma forma una permutación "arbitraria" creó problemas similares: hubieran preferido una específica, posiblemente seguida de un comentario al final que indicara que la elección de la permutación no importaba realmente. Es muy extraño, hasta desconcertante, ver a gente perturbada cuando se dejan abiertas preguntas cuyas respuestas son irrelevantes.

Una observación final me sugiere que, de hecho, es culpa del sistema educativo. Recuerdo muy bien la introducción de la idea de que es tarea del profesor el motivar a sus estudiantes. (La recuerdo muy bien porque pensé que la idea era muy absurda.) Ahora encuentro jóvenes científicos educados bajo el régimen motivador, que tienen una desventaja notable: su habilidad para absorber información no motivada está limitada a unas 10 líneas. El objeto y su propósito son cosas diferentes, pero ellos no aprendieron a distinguirlo y ahora son incapaces de separar estos asuntos. Es un ejemplo atemorizador de cómo la educación puede infundir necesidades psicológicas que se vuelven una importante desventaja.

Austin, 5 de noviembre de 1986

prof.dr.Edsger W.Dijkstra
Departamento de Ciencias de la Computación
Universidad de Texas
Austin, TX 78712-1188
Estados Unidos de América

Transcripción y traducción: Javier Smaldone.

Última revisión: 23 de agosto de 2006.

Última versión y actualizaciones: http://www.smaldone.com.ar/documentos/ewd.shtml

Nota del traductor: La versión HTML contiene el texto original en forma de comentarios, para simplificar su corrección.

Dijkstra: Escrito enojado

Escrito enojado

Edsger W. Dijkstra (EWD696)

"Pero los gráficos no son la cuestión central de la geometría, y no está permitido razonar a partir de ellos. Es cierto que mucha gente, incluyendo a los matemáticos, se apoyan en ellos como una muleta y se encuentran incapacitados de hablar cuando se les quita dicha muleta."

Morris Kline en el capítulo "Un Discurso sobre el Método" de "Matemáticas en la Cultura Occidental", Oxford University Press, Inc., 1953

La observación de Morris Kline es correcta. Omite la explicación de lo que ha observado, aunque dicha explicación es simple: la mayoría de la gente, incluyendo a los matemáticos, son pensadores aficionados en el sentido en que no se les ha enseñado cómo pensar eficazmente. No se les ha dicho que tiren la muleta y, por lo tanto, nunca han aprendido a correr.

El hábito de usar ayudas gráficas, como cualquier hábito, es muy dificil de erradicar. Sin embargo, si aceptamos alguna responsabilidad por la eficacia de nuestros hábitos de razonamiento, deberíamos tratar de abandonarlo tan rápido como sea posible; dado que es un mal hábito, desconcertante y engañoso hasta el punto de ser paralizante. Una de las contras de los gráficos es que son casi siempre sobre-específicos. Uno no puede graficar "un triángulo arbitrario": ni bien uno lo ha hecho, éste tiene un ángulo obtuso o no, mientras que para "el triángulo arbitrario" la propiedad de tener un ángulo obtuso está explicitamente indefinida. En el caso de los grafos es aún peor, porque el mismo grafo específico tiene tantas representaciones gráficas, que el sólo establecer que dos gráficos distintos representan el mismo grafo requiere de un tosco proceso de verificación. En el caso de los árboles y listas una circunstancia simpáticamente desconcertante es que la mayoría de las convenciones gráficas no incluyen una representación visible para el árbol o la lista vacía. Son engañosos porque la misma cosa tiene varias representaciones visualmente muy diferentes; su uso es desconcertante porque es insólito cuando un autor establece que dos gráficos distintos tienen que ser considerados semánticamente equivalentes, y son paralizantes porque sólo pueden representar miembros individuales de un conjunto. Y cuando trabajamos con un conjunto, uno de los peores errores que podemos cometer al razonar es tratar de lidiar con el conjunto como un todo, trabajando con los miembros individuales de un subconjunto del cual sólo podemos rogar que sea representativo: uno solamente puede trabajar con un conjunto -y por lo tanto con todos sus miembros- mediante su definición. Una vez que haya comprendido esto, no lo sorprenderá escuchar que uno de los mayores componentes del aprendizaje del razonamiento efectivo es el "desaprendizaje" del uso de gráficos. (Y el "desaprendizaje" es muy dificultoso, dado que su pasado seguirá siendo su pasado: lo único que puede hacer es superponer un nuevo pasado sobre el anterior, y rogar que el más reciente sea dominante.)

Y todo esto fue desencadenado por el "Diseño de Programas Abstractos en un Entorno Interactivo", la tesis doctoral de Lars Kahn, de Estocolmo, quién gentilmente me envió una copia; la cual revisé la otra noche. Entre otros comentarios que no citaré, (el ahora Doctor) Lars Kahn escablece que "[es] mi propia experiencia y la de otros, que es más natural en el proceso de diseño el uso de una notación gráfica en vez de texto. Por varios motivos, no he tenido la oportunidad de implementar una herramienta interactiva con notación gráfica, pero creo que un sistema visual gráfico fácilmente operable para el diseño de programas sería la mejor asistencia mental". Aquí "más natural" debe leerse como "más natural para el ignorante": su "sistema visual gráfico fácilmente operable" significaría el perjuicio más grave al diseño de programas que puedo imaginar. La disertación -de esto me di cuenta más tarde, habiendo salteado las letras pequeñas- fue para el grado de Doctor en ciencias sociales, lo cual trata ciertamente sobre el ignorante. A veces temo que además sean para el ignorante, y por el ignorante.

20 de diciembre de 1978

Plataanstraat 5
5671 AL Nuenen
Holanda
prof.dr.Edsger W.Dijkstra
Investigador Asociado de Burroughs

Transcripción y traducción: Javier Smaldone.

Última revisión: 21 de agosto de 2006.

Última versión y actualizaciones: http://www.smaldone.com.ar/documentos/ewd.shtml

Nota del traductor: La versión HTML contiene el texto original en forma de comentarios, para simplificar su corrección.

Dijkstra: Sobre la crueldad de verdaderamente enseñar ciencias de la computación

http://www.smaldone.com.ar/documentos/ewd/sobre_la_crueldad.html



Sobre la crueldad de verdaderamente enseñar ciencias de la computación

Edsger W. Dijkstra.

La segunda parte de esta charla denota algunas de las consecuencias científicas y educacionales provenientes de la idea de que las computadoras representan una novedad radical. Para darle contenidos claros a esta asunción, tenemos que ser mucho más precisos acerca de lo que queremos 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 nuestra suposición.

La manera usual en la cual hoy planificamos para el mañana es en el vocabulario de ayer. Lo hacemos porque tratamos de avanzar con los conceptos que nos son familiares, los cuales han adquirido un significado en nuestra experiencia pasada. Por supuesto, las palabras y los conceptos no encajan precisamente porque nuestro futuro difiere de nuestro pasado, pero las estiramos un poco. Los lingüistas están bastante familiarizados con el fenómeno en el cual los significados de las palabras evolucionan a través del tiempo, pero también saben que este es un proceso lento y gradual.

Es el método más común cuando se trata de lidiar con la novedad: utilizando metáforas y analogías tratamos de vincular lo nuevo con lo viejo, lo novedoso con lo familiar. Bajo un cambio suficientemente lento y gradual, esto funciona razonablemente bien; en el caso de una discontinuidad aguda, sin embargo, el método colapsa: aunque podemos glorificarlo con el nombre "sentido común", nuestra experiencia pasada ya no es más relevante, las analogías se tornan muy superficiales, y las metáforas se hacen engañosas en vez de reveladoras. Esta es la situación que caracteriza a la novedad "radical".

Lidiar con una novedad radical requiere un método ortogonal. Uno debe considerar su propio pasado, las experiencias recogidas, y los hábitos formados en él como un desafortunado accidente de la historia, y debe acercarse a la novedad radical con la mente en blanco, rechazando conscientemente el intento de vincularla con lo que ya es familiar, debido a que lo familiar es desesperanzadamente inadecuado. Uno debe, con una especie de personalidad dividida, tomar una novedad radical como algo desasociado por propio derecho. Comprender una novedad radical implica crear y aprender un lenguaje extraño, el cual no puede ser traducido a nuestra lengua materna. (Cualquiera que haya aprendido mecánica cuántica sabe a lo que me refiero.) No hace falta decirlo, ajustarse a las novedades radicales no es una actividad muy popular, ya que requiere mucho trabajo. Por la misma razón, las novedad radicales no son por sí mismas bienvenidas.

A esta altura, bien se pueden preguntar por qué he prestado tanta atención y he gastado tanta elocuencia en una noción tan simple y obvia como una novedad radical. Mi razón es muy simple: las novedades radicales son tan perturbantes que tienden a ser suprimidas o ignoradas, al punto que la mera posibilidad de su existencia es generalmente negada antes que admitida.

Voy a ser breve en cuanto a la evidencia histórica. Carl Friedrich Gauss, el Príncipe de los Matemáticos pero algo cobarde, sin duda estaba al tanto del destino de Galileo –y probablemente podría haber predicho las acusaciones a Einstein– cuando decidió suprimir su descubrimiento de la geometría no Euclidiana, dejando que Bolyai y Lobatchewsky recibieran las críticas. Es probablemente más revelador ir un poco más atrás, a la Edad Media. Una de sus características era que "razonar mediante analogías" era descontrolado; otra característica era el total estancamiento intelectual, y ahora vemos porque ambas características van juntas. Una razón para mencionar esto es resaltar que, desarrollando un oído entrenado para las analogías no garantizadas, uno puede detectar una gran cantidad de pensamiento medieval hoy en día.

La otra cosa que no puedo resaltar lo suficiente es que la fracción de la población para la cuál el cambio gradual parece ser cualquier cosa menos el único paradigma de la historia es muy grande, probablemente mucho más grande de lo que esperarían. Ciertamente cuando comencé a observarlo, su número resultó ser mucho mayor de lo que esperaba.

Por ejemplo, la gran mayoría de la comunidad matemática nunca ha confrontado la suposición tácita de que hacer matemáticas va a continuar siendo básicamente el mismo tipo de actividad mental que siempre ha sido: los nuevos temas vendrán, florecerán, e irán como lo han hecho en el pasado, pero siendo lo que es el cerebro humano, nuestras formas de enseñar, aprender, y el entendimiento las matemáticas, la resolución de problemas y el descubrimiento matemático van a continuar siendo básicamente lo mismo. Herbert Robbins expone claramente por qué él descarta un salto cuántico en la habilidad matemática:

"Nadie va a correr 100 metros en cinco segundos, sin importar cuánto se invierta en entrenamiento y máquinas. Lo mismo puede decirse acerca del uso del cerebro. La mente humana no es diferente ahora de lo que era hace cinco mil años. Y cuando se trata de matemáticas, debe darse cuenta de que se trata de la mente humana a un extremo límite de su capacidad".

Mi comentario en el margen fue "¡entonces reduzca el uso del cerebro y calcule!". Usando la propia analogía de Robbins, uno puede resaltar que, para ir rápido desde A hasta B, podrían existir ahora alternativas a la de correr que son órdenes de magnitud más efectivas. Robbins rechaza de llano honrar cualquier alternativa al valioso uso del cerebro llamado "hacer matemáticas", exorcizando así el peligro de la novedad radical mediante el simple método de ajustar sus definiciones a sus necesidades: simplemente por definición, las matemáticas continuarán siendo lo que solían ser. Demasiado para los matemáticos.

Déjenme darles un ejemplo más de la desconfianza generalizada sobre la existencia de las novedades radicales y, por consiguiente, de la necesidad de aprender cómo lidiar con ellas. Es el accionar educacional que prevalece, para el cuál el cambio, casi imperceptible, parece ser el paradigma exclusivo. ¡Cuántos textos educacionales no son recomendados porque apelan a la intuición del estudiante! Constantemente tratan de presentar todo aquello que podría ser una emocionante novedad como algo tan familiar como sea posible. Conscientemente tratan de vincular el material nuevo con lo que se supone es el mundo familiar del estudiante. Ya empieza con la enseñanza de la aritmética. En vez de enseñar 2 + 3 = 5, el horrendo operador aritmético "más" es cuidadosamente disfrazado llamándolo "y", y a los pequeños niños se les dan muchos ejemplos familiares primero, con objetos claramente visibles como manzanas y peras, que lo son, en contraste al uso de objetos numerables como porcentajes y electrones, que no lo son. La misma tonta tradición es reflejada a nivel universitario en diferentes cursos introductorios de cálculo para los futuros físicos, arquitectos, economistas, cada uno adornado con ejemplos de sus respectivos campos. El dogma educacional parece ser que todo está bien siempre y cuando el estudiante no se dé cuenta de que está aprendiendo algo verdaderamente nuevo; generalmente, el presentimiento del estudiante es de hecho correcto. Considero como un serio obstáculo la falencia de una práctica educativa en preparar a la próxima generación para el fenómeno de novedades radicales. [Cuando el Rey Fernando visitó la conservadora universidad de Cervera, el Rector orgullosamente aseguró al monarca con las palabras: "Lejos esté de nosotros, Señor, la peligrosa novedad de pensar". Los problemas de España en el siglo que siguió justifican mi caracterización del problema como "serio"]. Demasiado para la adopción por parte de la educación del paradigma de cambio gradual.

El concepto de novedades radicales es de importancia contemporánea ya que, mientras estamos mal preparados para lidiar con ellas, la ciencia y la tecnología no se han mostrado expertas en influirlas sobre nosotros. Ejemplos científicos antiguos son la teoría de la relatividad y la mecánica cuántica; ejemplos tecnológicos modernos son la bomba atómica y la píldora. Durante décadas, los primeros dos ejemplos dieron lugar a un torrente de corrientes religiosas, científicas o de otra manera cuasi-científicas. Día a día podemos observar el profundo error de enfoque con el cuál los últimos dos ejemplos han sido abordados, ya sea por nuestros políticos y líderes religiosos o por el público en general. Demasiado para el daño hecho a nuestra paz mental por las novedades radicales.

Traje esto a colación debido a mi convencimiento de que las computadoras automáticas representan una novedad radical y de que sólo identificándolas como tal podemos identificar todo lo irrelevante, los conceptos errados y la mitología que las rodea. Una inspección más a fondo revelará que esto es todavía peor, a saber, que las computadoras automáticas engloban no sólo una novedad radical sino dos de ellas.

La primera novedad radical es una consecuencia directa del poder bruto de las computadoras actuales. Todos sabemos como lidiar con algo tan grande y complejo; divide y vencerás, por ejemplo vemos el todo como una composición de partes y tratamos con las partes por separado. Y si una parte es muy grande, repetimos el procedimiento. La ciudad está compuesto por barrios, que están a su vez estructurados por calles, que contienen edificios, que están hechos de paredes y pisos, que están construidas de ladrillos, etc. eventualmente llegando a las partículas elementales. Y tenemos a todos nuestros especialistas sobre el tema, desde el ingeniero civil, pasando por el arquitecto hasta el físico de estado sólido y consiguientes. Ya que, en cierto sentido, el todo es "mas grande" que sus partes, la profundidad de una descomposición jerárquica es algún tipo de logaritmo del cociente entre los "tamaños" del todo y las partes más pequeñas. Desde un bit a cien mega bytes, desde un microsegundo a media hora de cómputos nos confronta con un cociente completamente abrumador de 10^9! El programador está en la posición inigualada en la cual la suya es la única disciplina y profesión donde un cociente tan gigante, lo cual completamente sobrepasa nuestra imaginación, debe ser consolidado por una sola tecnología. Debe poder pensar en términos de jerarquías conceptuales que son mucho más profundas que todas aquellas que debió enfrentar una sola mente alguna vez. Comparado con ese número de niveles semánticos, la teoría matemática promedio es casi plana. Evocando la necesidad de profundas jerarquías conceptuales, la computadora automática nos confronta con un radical desafío intelectual que no tiene precedente histórico.

Nuevamente, debo enfatizar esta novedad radical ya que el verdadero creyente en el cambio gradual y las mejoras incrementales no puede verla. Para él, una computadora automática es algo como una familiar caja registradora, sólo que algo más grande, rápida y más flexible. Pero la analogía es ridículamente superficial: es órdenes de magnitud peor que comparar, como un medio de transporte, el avión supersónico con un bebé que gatea, ya que el cociente de velocidad es sólo de mil.

La segunda novedad radical es que la computadora automática es nuestro primer dispositivo digital de gran escala. Tuvimos un par de notables componentes discretos: Acabo de mencionar la caja registradora y podemos agregar la máquina de escribir con sus teclas individuales: con un sólo golpe podemos escribir puedes escribir una Q o una W pero, aunque las teclas están una al lado de la otra, no una mezcla de las dos. Pero tales mecanismos son la excepción, y la amplia mayoría de nuestros mecanismos son vistos como dispositivos analógicos cuyo comportamiento sobre un amplio rango es una función continua de todos los parámetros involucrados: si presionamos la punta del lápiz un poco más fuerte, obtenemos una línea levemente más gruesa, si el violinista ubica su dedo levemente fuera de su posición correcta, reproduce una nota levemente desafinada. A esto debería agregar que, al punto que nos vemos como mecanismos, nos vemos primordialmente como dispositivos analógicos: si nos esforzamos un poco más esperamos rendir un poco más. A menudo el comportamiento no es solamente una función continua sino también monótona: para ver si un martillo es adecuado sobre un cierto rango de clavos, lo probamos con el más pequeño y el más grande de los clavos del rango, y si el resultado de ambos experimentos es positivo, estamos perfectamente predispuestos a creer que el martillo será apropiado para todos los clavos intermedios.

Es posible, inclusive tentador, ver a un programa como un mecanismo abstracto, como alguna clase de dispositivo. Pero hacerlo, sin embargo, es altamente peligroso: la analogía es muy superficial debido a que un programa es, como mecanismo, totalmente diferente de todos los familiares dispositivos analógicos con los cuáles crecimos. Como toda la información digitalizada, tiene la inevitable e incómoda propiedad de que la menor de las posibles perturbaciones –por ejemplo cambios a un sólo bit– puede tener las más drásticas consecuencias. [Por completitud agrego que la situación no cambia en su esencia por la introducción de la redundancia o la corrección de errores]. En el mundo discreto de la computación, no hay métrica significativa en la cual "pequeños" cambios y "pequeños" efectos vayan de la mano, y nunca los habrá.

Esta segunda novedad radical comparte el destino usual a todas las novedades radicales: es negada, porque su verdad sería demasiado incómoda. No tengo idea lo que esta negación y descreencia específica le cuesta a los Estados Unidos, pero un millón de dólares al día parece una modesta estimación.

Habiendo descripto –en los términos más amplios posibles, lo admito– la naturaleza de las novedades computacionales, debo ahora proveer la evidencia de que tales novedades son, de hecho, radicales. Lo haré explicando una serie de fenómenos que de otra manera serían extraños por la frustrante –pero, como ahora sabemos, condenada– ocultación o negación de su aterradora extrañeza.

Cierta cantidad de estos fenómenos han sido agrupados bajo el nombre de "Ingeniería de Software". Así como la economía es conocida como "La Ciencia Miserable", la ingeniería de software debería ser conocida como "La Disciplina Condenada", condenada porque ni siquiera puede acercarse a su meta, dado que la misma es en sí misma contradictoria. La ingeniería de software, por supuesto, se presenta a sí misma como otra causa valiosa, pero es un colirio: si lee cuidadosamente su literatura y analiza lo que realmente hacen quienes se avocan a ella, descubrirá que la ingeniería de software ha adoptado como su estatuto "Cómo programar si usted no puede".

La popularidad de su nombre es suficiente para hacerla sospechosa. En lo que denominamos "sociedades primitivas", la superstición de que conocer el verdadero nombre de alguien otorga un poder mágico sobre él no es inusual. Difícilmente somos menos primitivos: ¿por qué persistimos en contestar el teléfono con el poco útil "hola" en vez de nuestro nombre? Tampoco estamos por encima de la primitiva superstición de que podemos tener cierto control sobre algún demonio malicioso desconocido llamándolo por un nombre seguro, familiar e inocente, tal como "ingeniería". Pero esto es totalmente simbólico, así como demostró uno de los fabricantes de computadoras de los EE.UU. hace unos años cuando contrató, una noche, cientos de nuevos "ingenieros de software" mediante el simple mecanismo de elevar a todos sus programadores a ese exaltante rango. Demasiado para ese término.

La práctica está impregnada de la confortable ilusión de que los programas son simplemente dispositivos como cualquier otro, la única diferencia que se admite es que su fabricación pueden requerir un nuevo tipo de expertos, a saber: programadores. Desde allí hay sólo un pequeño paso hasta medir la "productividad del programador" en términos de la "cantidad de líneas producidas por mes". Esta es una unidad de medida muy costosa, porque anima a escribir código insípido, pero hoy estoy menos interesado en qué tan tonta es una unidad, aún desde un punto de vista puramente empresarial. Mi punto hoy es que, si deseamos contar líneas de código, no deberíamos verlas como "líneas producidas", sino como "líneas gastadas": el sentido común actual es tan tonto como contabilizar esa cuenta del lado erróneo del balance.

Además de la noción de productividad, también el control de calidad sigue estando distorsionado por la confortable ilusión de que funciona con otros aparatos como lo hace con los programas. Han pasado ya dos décadas desde que se señaló que el testing de programas puede convincentemente demostrar la presencia de errores, pero nunca puede demostrar su ausencia. Después de citar devotamente este comentario bien publicitado, el ingeniero de software vuelve al orden del día y continúa refinando sus estrategias de testing, tal como el alquimista de antaño, quien continuaba refinando sus purificaciones crisocósmicas.

Un profundo malentendido es luego revelado por el término "mantenimiento de software", como resultado del cual muchas personas siguen creyendo que los programas –e inclusive los mismísimos lenguajes de programación– están sujetos a desgaste y ruptura. Su auto también necesita mantenimiento, ¿no es así? Es famosa la historia de la empresa petrolera que creía que sus programas PASCAL no durarían tanto como sus programas FORTRAN "porque PASCAL no estaba mantenido".

En el mismo sentido debo llamar la atención sobre la sorprendente facilidad con que se ha aceptado la sugerencia de que los males de la producción de software de deben, en gran medida, a la falta de "herramientas de programación" apropiadas. (Pronto aparecería la frase "banco de trabajo del programador".) Nuevamente, la chatura de la analogía subyacente se debe a la Edad Media. Las confrontaciones con las insípidas "herramientas" del tipo de "animación de algoritmos" no ha suavizado mi juicio; por el contrario, ha confirmado mi sospecha inicial de que estamos tratando principalmente con otra dimensión del negocio del aceite de serpientes.

Finalmente, para corregir la posible impresión de que la inhabilidad de enfrentar la novedad radical está confinada al mundo industrial, déjenme ofrecerles una explicación de la –al menos americana– popularidad de la Inteligencia Artificial. Uno esperaría que la gente se sintiera aterrorizada por los "cerebros gigantes de máquinas que piensan". De hecho, la atemorizante computadora se vuelve menos atemorizante si es utilizada solamente para simular una no-computadora que nos es familiar. Estoy seguro de que esta explicación seguirá siendo controvertida por bastante tiempo, dado que la Inteligencia Artificial como imitadora de la mente humana prefiere verse a sí misma como a la vanguardia, mientras mi explicación la relega a la retaguardia. (El esfuerzo de utilizar máquinas para imitar la mente humana siempre me ha parecido bastante tonto: las usaría para imitar algo mejor.)

Hasta aquí la evidencia de que las novedades computacionales son, de hecho, radicales.

Y ahora viene la segunda –y más difícil– parte de mi charla: las consecuencias educativas y científicas de lo anterior. Las consecuencias educativas son, por supuesto, las más engorrosas, por lo tanto pospongamos su discusión y quedémonos mientras tanto con las ciencias de la computación en sí mismas. ¿Qué es la computación? ¿Y de qué se trata la ciencia de la computación?

Bien, una vez que todo está dicho y hecho, la única cosa que las computadoras pueden hacer por nosotros es manipular símbolos y producir resultados de tales manipulaciones. De nuestras observaciones previas, deberíamos recordar que este es un mundo discreto y, más aún, tanto los números como los símbolos involucrados así como la cantidad de manipulaciones realizadas son varios órdenes de magnitud mayores que los que podemos concebir: desconciertan totalmente nuestra imaginación y por lo tanto no debemos tratar de imaginárnoslos.

Pero antes de que una computadora esté lista para realizar alguna clase de manipulación con sentido –o cálculo, si se prefiere– debemos escribir un programa. ¿Qué es un programa? Varias respuestas son posibles. Podemos ver a un programa como lo que transforma una computadora de propósito general en un manipulador de símbolos de propósito específico, y lo hace sin necesidad de cambiar un solo cable (Esto fue una enorme mejora respecto de las máquinas con paneles de cables dependientes del problema.) Prefiero describirlo de la otra manera: un programa es un manipulador de símbolos abstracto, que puede convertirse en uno concreto suministrándole una computadora. Después de todo, el propósito de los programas ya no es más instruir a nuestras máquinas; en estos días, el propósito de las máquinas es ejecutar nuestros programas.

Por lo tanto, tenemos que diseñar manipuladores de símbolos abstractos. Todos sabemos cómo se ven: se ven como programas o –para usar una terminología más general– usualmente fórmulas de algún sistema formal un tanto elaboradas. Realmente ayuda ver a un programa como una fórmula. Primero, pone la tarea del programador en la perspectiva correcta: tiene que derivar esa fórmula. Segundo, explica por qué el mundo de las matemáticas ha ignorado el desafío de la programación: los programas eran fórmulas mucho más largas que las usuales, al punto que ni siquiera las reconocieron como tales. Ahora, de vuelta al trabajo del programador: tiene que derivar esa fórmula, tiene que derivar ese programa. Sabemos de una única forma confiable de hacerlo, mediante la manipulación de símbolos. Y ahora el círculo está cerrado: construimos nuestros manipuladores de símbolos mecánicos mediante la manipulación de símbolos humana.

Por lo tanto, la ciencia de la computación está –y siempre estará– relacionada con la interacción entre la manipulación de símbolos mecanizada y humana, usualmente llamadas "computación" y "programación", respectivamente. Un beneficio inmediato de esta visión es que revela a la "programación automática" como una contradicción en términos. Un beneficio posterior es que nos da una clara indicación acerca de dónde ubicar la ciencia de la computación en el mapa de las disciplinas intelectuales: en la dirección de la matemática formal y la lógica aplicada, pero finalmente mucho más allá de donde se encuentra actualmente, dado que la ciencia de la computación se interesa en el uso efectivo de los métodos formales en una escala mucho, mucho mayor de la que hemos sido testigos hasta ahora. Dado que ningún emprendimiento es respetable por estos días sin una STL (Sigla de Tres Letras) propongo que adoptemos para la ciencia de la computación IMF (Iniciativa de los Métodos Formales), y, para estar del lado seguro, mejor sigamos los brillantes ejemplos de nuestros líderes y hagamos de ella una Marca Registrada.

En el largo plazo espero que la ciencia de la computación trascienda a sus disciplinas padres, matemática y lógica, efectivamente realizando una parte significativa del Sueño de Leibniz de proveer un cálculo simbólico como una alternativa al razonamiento humano. (Por favor, note la diferencia entre "imitar" y "proveer una alternativa a": a las alternativas se les permite ser mejores.)

De más está decirlo, esta visión acerca de qué trata la ciencia de la computación no es universalmente aplaudida. Por el contrario, ha encontrado oposición –y a veces hasta violenta– desde todo tipo de direcciones. Menciono como ejemplos:

(0) la comunidad matemática, que quisiera continuar creyendo que el Sueño de Leibniz es una ilusión irreal

(1) la comunidad empresarial, quienes, habiéndoseles vendido la idea de que las computadoras harían la vida más simple, no están mentalmente preparados para aceptar que sólo resolvieron los problemas más simples al precio de crear uno mucho más difícil

(2) la subcultura del programador compulsivo, cuya ética prescribe que una idea tonta y un mes de codificación frenética deberían bastar para hacerlo millonario de por vida

(3) los ingenieros en computación, quienes quisieran continuar actuando como si fuera solamente cuestión de mayor flujo de bits o más flops por segundo

(4) la milicia, quienes están hoy totalmente absorbidos por el negocio de usar computadoras para transformar partidas de miles de millones de dólares en la ilusión de seguridad automática

(5) todo tipo de ciencias para las cuales la computación ahora actúa de alguna especie de refugio interdisciplinario

(6) el negocio educativo que siente que, si tiene que enseñar matemática formal a los estudiantes de Ciencias de la Computación, también debería cerrar sus escuelas.

Y con este sexto ejemplo he alcanzado, imperceptiblemente pero también inevitablemente, la parte más engorrosa de esta charla: consecuencias educativas.

El problema con la política educativa es que es difícilmente influenciada por consideraciones científicas derivadas de los tópicos dictados, y casi completamente determinada por circunstancias ajenas a la ciencia tales como las expectativas conjugadas de los estudiantes, sus padres y sus futuros empleadores, y el enfoque prevaleciente del rol de la universidad: el acento está en formar sus graduados para los trabajos de nivel inicial de hoy o en proveer a su alumnado con el bagaje intelectual y las actitudes que perduraran por otros 50 años? ¿Le damos rencorosamente a las ciencias abstractas solo un rincón lejano en el campus, o las reconocemos como el motor indispensable de la industria de alta tecnología? Aún si hacemos esto último, ¿reconocemos una industria de alta tecnología como tal si su tecnología pertenece principalmente a las matemáticas formales? ¿Proveen las universidades a la sociedad el liderazgo intelectual que necesita o sólo el entrenamiento que demanda?

La retórica académica tradicional está perfectamente dispuesta a dar a estas cuestiones las respuestas tranquilizadoras, pero no creo en ellas. A modo de ilustrar mis dudas, en un artículo reciente en "¿Quién gobierna Canadá?", David H. Flaherty groseramente establece que "Además, la élite de los negocios descarta a los académicos e intelectuales como ampliamente irrelevantes e impotentes."

Así, si miro en mi borrosa bola de cristal hacia el futuro de la educación en ciencias de la computación, veo sobrecogedoramente la deprimente imagen del "Negocio acostumbrado". A las universidades les seguirá faltando el coraje de enseñar ciencia dura, continuará orientando mal a los estudiantes, y cada nuevo escalón de infantilización del currículum será exaltado como progreso educativo.

Hace un buen rato que tengo mi borrosa bola de cristal. Sus predicciones son invariablemente melancólicas y usualmente correctas, pero estoy bastante acostumbrado a eso y no me impiden darles unas pocas sugerencias, aún si es meramente un ejercicio vano cuyo único efecto es hacerlos sentir culpables.

Podemos, por ejemplo, comenzar limpiando nuestro lenguaje no denominando a un bug un bug, sino denominándolo un error. Es mucho mas honesto porque pone manifiestamente la culpa donde corresponde, es decir, en el programador que cometió el error. La metáfora animada del bug que se introdujo maliciosamente mientras el programador no estaba mirando es intelectualmente deshonesta ya que disfraza el hecho de que el error es propia creación del programador. Lo agradable de este simple cambio de vocabulario es que tiene un profundo efecto: mientras, antes, un programa con sólo un error solía ser "casi correcto", después de ello un programa con un error es simplemente "erróneo" (porque tiene un error).

Mi próxima sugerencia lingüística es más rigurosa. Se trata de confrontar el síndrome de "si-este-tipo-quiere-hablarle-a-ese-tipo": nunca se refieran a partes de programas o piezas de equipo en una terminología antropomórfica, ni permitan hacerlo a sus estudiantes. Esta mejora lingüística es mucho más difícil de implementar de lo que podrían pensar, y su departamento puede considerar la introducción de multas para las violaciones, digamos veinticinco centavos para estudiantes de grado, cincuenta centavos para estudiantes de postgrado y cinco dólares para miembros de la facultad: para final del primer semestre del nuevo régimen, habrán recolectado suficiente dinero para dos becas.

La razón para esta última sugerencia es que la metáfora antropomórfica –por cuya introducción podemos culpar a John von Neumann– es una enorme desventaja para cada comunidad informática que la ha adoptado. He encontrado programas que quieren cosas, saben cosas, esperan cosas, creen cosas, etc., y cada vez eso generaba confusiones evitables. La analogía que subyace a esta personificación es tan superficial que no es solamente engañosa sino también paralizante.

Es engañosa en el sentido que sugiere que podemos lidiar con el desconocido discreto en términos del familiar continuo, es decir, nosotros mismos, quod non. Es paralizante en el sentido que, debido a que las personas existen y actúan en el tiempo, su adopción efectivamente impide un despegue de la semántica operacional y fuerza así a la gente a pensar sobre los programas en términos de comportamientos computacionales, basados en un modelo computacional subyacente. Esto es malo, porque el razonamiento operacional es un tremendo desperdicio de esfuerzo mental.

Déjenme explicarles la naturaleza de ese tremendo desperdicio, y permítanme tratar de convencerlos de que el término "tremendo desperdicio de esfuerzo mental" no es una exageración. Por un breve lapso, me tornaré altamente técnico, pero no se acobarden: es el tipo de matemáticas que uno puede hacer con las manos en los bolsillos. El punto a comunicar es que si tenemos que demostrar algo respecto de todos los elementos de un conjunto grande, es desesperanzadamente ineficiente tratar con todos los elementos del conjunto individualmente: el argumento eficiente no se refiere a elementos individuales en lo absoluto y se lleva a cabo en términos de la definición del conjunto.

Consideren la figura plana Q, definida como el cuadrado de 8 por 8 del cual, en dos esquinas opuestas, han sido quitados dos cuadrados de 1 por 1. El área de Q es 62, que equivale al área combinada de 31 dominós de 1 por 2. El teorema es que la figura Q no puede ser cubierta por 31 de tales dominós.

Otra manera de exponer el teorema es que si comienza con papel cuadriculado y se cubre este ubicando cada siguiente dominó en dos nuevos recuadros adyacentes, ninguna distribución de 31 dominós dará como resultado la figura Q.

Así, una posible manera de probar el teorema es generando todas las posibles distribuciones de dominós y verificando para cada distribución que no da como resultado la figura Q.

El argumento simple, sin embargo, es como sigue. Pinte los recuadros del papel cuadriculado como un tablero de ajedrez. Cada dominó, cubriendo dos recuadros adyacentes, cubre 1 recuadro blanco y 1 negro, y , por consiguiente, cada distribución cubre tantos recuadros blancos como recuadros negros. En la figura Q, sin embargo, el número de recuadros blancos y el número de recuadros negros difiere en 2 –esquinas opuestas sobre la misma diagonal– y por consiguiente ninguna disposición de dominós da como resultado la figura Q.

No sólo es el simple argumento previo muchos órdenes de magnitud más corto que la investigación exhaustiva de las posibles distribuciones de 31 dominós, es también esencialmente más poderosa, dado que cubre la generalización de Q reemplazando el cuadrado original de 8 por 8 por cualquier rectángulo con lados de longitud par. Siendo infinito el número de tales rectángulos, el método previo de exploración exhaustiva es esencialmente inadecuada para probar nuestro teorema generalizado.

Y esto concluye mi ejemplo. Ha sido presentado porque ilustra de un tirón el poder de las matemáticas terrenales; no hace falta decirlo, la negación de explotar este poder de las matemáticas terrenales escala al suicidio intelectual y tecnológico. La moraleja de la historia es: tratar con todos los elementos de un conjunto ignorándolos y trabajando con la definición del conjunto.

Volvamos a la programación. La aseveración de que un programa dado cumple una cierta especificación escala a una aseveración sobre todos los cálculos computacionales que podrían ocurrir bajo el control de ese programa dado. Y dado que este conjunto de cálculos está definido por el programa dado, nuestra reciente moraleja dice: trate con todas los cálculos posibles bajo control de un programa dado ignorándolas y trabajando con el programa. Debemos aprender a trabajar con el texto de los programas mientras (temporalmente) se ignora que admiten la interpretación de código ejecutable.

Otra manera de decir la misma cosa es la siguiente. Un lenguaje de programación, con su sintaxis formal y las reglas de demostración que define su semántica, es un sistema formal para el cual la ejecución del programa provee solamente un modelo. Es bien conocido que los sistemas formales deberían ser tratados por derecho propio, y no en términos de un modelo específico. Y, de nuevo, el corolario es que deberíamos razonar sobre los programas sin siquiera mencionar su posible "comportamiento".

Y esto concluye mi excursión técnica en el motivo por el cual el razonamiento operacional sobre la programación es "un tremendo desperdicio de esfuerzo mental" y por qué, en consecuencia, en la ciencia de la computación debería prohibirse la metáfora antropomórfica.

No todo el mundo comprende esto suficientemente bien. Recientemente fui expuesto a una demostración de lo que pretendía ser software educativo para un curso introductorio de programación. Con sus "visualizaciones" en la pantalla era un caso tan obvio de infantilización del currículum que su autor debería ser acusado de su "menosprecio del cuerpo estudiantil", pero esto era sólo un daño menor comparado con para qué se usaban las visualizaciones: ¡se usaban para mostrar todo tipo de características de cálculos computacionales evolucionando bajo el control del programa del estudiante! El sistema remarcaba precisamente aquello que el estudiante tiene que aprender a ignorar, reforzaba precisamente lo que el estudiante tiene que desaprender. Dado que quitarse los malos hábitos, más que adquirir nuevos, es la parte más dura del aprendizaje, debemos esperar de ese sistema un daño mental permanente para la mayoría de los estudiantes expuestos.

No hace falta decirlo, ese sistema ocultaba completamente el hecho de que, por sí sólo, un programa no es más que la mitad de una conjetura. La otra mitad de la conjetura es la especificación funcional que se supone que satisface el programa. La tarea del programador es presentar las conjeturas completas como teoremas demostrados.

Antes de irnos, me gustaría invitarlos a considerar la siguiente forma de hacer justicia a las novedades radicales de la computación en un curso introductorio a la programación.

Por un lado, enseñamos algo que se parece al cálculo de predicados, pero lo hacemos de manera muy distinta a los filósofos. A fin de entrenar al programador novato en la manipulación de fórmulas sin interpretar, lo enseñamos más como álgebra booleana, familiarizando al estudiante con todas las propiedades algebraicas de los conectivos lógicos. Para romper aún más los vínculos con la intuición, renombramos los valores {verdadero, falso} del dominio booleano como {negro, blanco}

Por otro lado, enseñamos un lenguaje de programación imperativo simple y claro, con un skip y una asignación múltiple como sentencias básicas, con una estructura de bloque para variables locales, el punto y coma como operador para composición de sentencias, una bonita construcción alternativa, una bonita repetición y, si se quiere, una llamada a procedimiento. A esto agregamos un mínimo de tipos de datos, digamos booleanos, enteros, caracteres y cadenas. Lo esencial es que, para lo que sea que introduzcamos, la semántica correspondiente está definida por las reglas de demostración que la acompañan.

Desde el comienzo, y a través de todo el curso, enfatizamos que la tarea del programador no es sólo escribir un programa, sino que su tarea principal es dar una prueba formal de que el programa que propone cumple la especificación funcional (igualmente formal). Mientras se diseñan demostraciones y programas conjuntamente, el estudiante adquiere una amplia oportunidad de perfeccionar su destreza manipulativa con el cálculo de predicados. Finalmente, para hacer llegar el mensaje de que este curso introductorio a la programación es principalmente un curso en matemáticas formales, nos encargamos de que el lenguaje de programación en cuestión no haya sido implementado en el campus de manera que los estudiantes estén protegidos de la tentación de probar sus programas. Y esto concluye el esbozo de mi propuesta para un curso introductorio a la programación para estudiantes de primer año.

Esta es una propuesta seria, y sumamente sensible. Su única desventaja es que es demasiado radical para muchos, quienes, siendo incapaces de aceptarla, se ven forzados a inventar alguna justificación rápida para desestimarla, no importa cuan inválida sea. Les daré unas pocas de esas justificaciones.

No necesitan tomar mi propuesta seriamente porque es tan ridícula que estoy obviamente desconectado del mundo real. Pero ese barrilete no va a volar, ya que conozco el mundo real demasiado bien: los problemas del mundo real son principalmente aquellos con los que ustedes se quedan después de negarse a aplicar sus efectivas soluciones. Así que, probemos de nuevo.

No necesitan tomar seriamente mi propuesta porque es sumamente surrealista intentar enseñar tal material a alumnos de primer año. ¿No sería esa una salida fácil? Acaban de postular que esto sería por lejos muy difícil. Pero ese barrilete tampoco va a volar, dado que el postulado se ha demostrado falso: desde principios de los '80, se ha dado tal curso introductorio a la programación a cientos de estudiantes de primer curso de grado cada año. [Porque, en mi experiencia, decir esto no es suficiente, la sentencia previa debería repetirse al menos otras dos veces]. Así que, intentemos de nuevo.

Admitiendo renuentemente que podría quizás enseñarse a estudiantes suficientemente dóciles, todavía rechazan mi propuesta porque tal curso se desviaría tanto de lo que los estudiantes de 18 años están habituados y esperan, que inflingírselos sería un acto de irresponsabilidad educativa: sólo frustraría a los estudiantes. No hace falta decirlo, ese barrilete tampoco va a volar. Es cierto que el estudiante que nunca ha manipulado fórmulas sin interpretar se da rápidamente cuenta que se confronta con algo totalmente distinto a cualquier cosa que haya visto antes. Pero afortunadamente, las reglas de manipulación son en este caso tan pocas y simples que muy poco después hace el excitante descubrimiento de que está comenzando a dominar el uso de una herramienta que, en toda su simplicidad, le da un poder que sobrepasa sus sueños más audaces.

Enseñar a jóvenes desprevenidos el uso efectivo de los métodos formales es uno de los placeres de la vida porque es extremadamente gratificante. En pocos meses, encuentran su camino en un mundo nuevo con justificado grado de confianza, que es radicalmente novedoso para ellos; en pocos meses, su concepto de cultura intelectual ha adquirido una dimensión radicalmente novedosa. Para mi gusto y estilo, esto es de lo que se trata la educación. Las universidades no deberían temer a enseñar novedades radicales; por el contrario, es su llamado dar la bienvenida a la oportunidad de hacerlo. Su disposición a hacerlo es nuestra principal salvaguarda contra las dictaduras, sean del proletariado, del establishment académico, o de la élite corporativa.

Austin, 2 de Diciembre de 1988

prof. dr. Edsger W. Dijkstra

Departamento de Ciencias de la Computación

Universidad de Texas

Austin, TX 78712-1188

USA

Traducción: Javier Smaldone y Billy Biset.

Transcripción original: Javier Smaldone.

Última revisión: 5 de agosto de 2006 (11:45 am).

Última versión y actualizaciones: http://www.smaldone.com.ar/documentos/ewd.shtml

Nota de los traductores: La versión HTML contiene el texto original en forma de comentarios, para simplificar su corrección.