Olimpíada Matemática Argentina

Investigación y docencia

Divagues

La introducción a un libro de 1994

Primera versión: 2/6/2017, revisado: 9/6/2017

Una de las tareas que me he propuesto es ir actualizando apuntes viejos, y uno de los primeros candidatos es el libro Introducción a la computación en matemática usando Mathematica (Red Olímpica, 1994).

A los mayores (o sea, a los viejos) nos preocupa dar fundamentos y hacer algo de historia sobre las propuestas que presentamos, y tratando de hacerlo para la nueva versión de Intro..., me pareció interesante repasar lo que escribí en ese libro.

Es curioso ver que muchas de la aplicaciones (software) han desaparecido, pero más sorprendente aún es comprobar que han pasado más de 20 años y mi pensamiento es prácticamente el mismo de ese entonces.

Así que aquí va, con mínimas modificaciones.

Sobre los contenidos de estas notas

Estas notas están dirigidas a aquéllos que tienen interés en usar la computadora como herramienta en el estudio o la enseñanza de la matemática y pueden ser leídas por cualquier persona con conocimientos básicos (nivel de enseñanza medio o superior) de matemáticas.

Si bien el objetivo fundamental es mostrar algunas de las relaciones entre las matemáticas y la computación, es impensable describir en poco tiempo todos los elementos que las relacionan. Entre las posibilidades están las de ver cómo puede ayudar la computadora en temas de la currícula clásica, ver temas elementales que normalmente no se incluyen, ver temas de programación, etc. Desde ya que estas notas deben considerarse sólo como una introducción, tenemos que hacer elecciones, y mi elección para esta ocasión es la siguiente:

Usaremos como software, un tanto arbitrariamente, a Mathematica (en la próxima sección explicamos un poco esta decisión). Desde ya, todas las cosas que hacemos aquí pueden traducirse a lenguajes más conocidos como BASIC o PASCAL.

Como supongo que no muchas personas que lean estas notas están familiarizadas con la computadora, mucho menos con Mathematica, empezaremos por describir el uso de este software viendo la sintaxis de algunos comandos simples (capítulo 1). Los capítulos 2 a 7 dan una idea un poco más precisa del uso de Mathematica. Así, en los capítulos 2 y 3 vemos el uso de las facilidades gráficas, para después, en los capítulos 4 a 7, ver una introducción a la programación en Mathematica, mostrando distintas posibilidades. Ya más familiarizados con el uso de Mathematica, en el capítulo 8 nos dedicamos a estudiar algoritmos de búsqueda, obteniendo un algoritmo sencillo (sin usar derivadas) para la aproximación a raíces de ecuaciones. En los capítulos 9 a 11 vemos algunas propiedades de los números enteros, estudiando con alguna profundidad el algoritmo de Euclides y sus aplicaciones (capítulo 9), números de Fibonacci y algunas de sus aplicaciones (capítulo 10) y números primos (muy por arriba) en el capítulo 11. En el capítulo 12 estudiamos el juego de Nim, para terminar en el capítulo 13 con un repaso de “números aleatorios”, aplicándolos a un ejemplo de simulación. Una buena posibilidad es primero ver por encima los primeros capítulos y leer con atención recién a partir del capítulo 8 ó 9, dejando los capítulos anteriores como referencia.

Mathematica es un software complejo. Es posible hacer mucho con él aprendiendo algunos comandos relativamente sencillos, pero, al igual que con el estudio de cualquier lenguaje de programación, para obtener “la perfección” en cuanto a elegancia, simpleza o eficiencia, y “sacarle todo el jugo” hay que dedicar tiempo a su estudio.

Dicho de otro modo, Mathematica tiene más de 1000 instrucciones. Pretender conocer a todos los comandos a la perfección es como pedir a alguien que conozca totalmente los contenidos de una enciclopedia: es un objetivo sin sentido, ¡no desesperar!

Los dejo con Mathematica resolviendo una de esas expresiones que horrorizan a los alumnos (y a mí!)

En esta transcripción no puse ni la entrada a ni la salida de Mathematica como están en el original, sólo el enunciado del ejercicio y la respuesta de Mathematica.

Ejercicio (tomado de un libro) Simplificar la expresión
\[ \frac{(a^8 - 9 b^8)(1 + a)}{(a^4 - a^6 - 3 b^4 + 3 a^2 b^4)} - \frac{(a^4 + 3 b^4)}{(1 - a)}. \]
Respuesta: $0$.

... para los mayores, un poco de filosofía

Mucho se ha reflexionado, discutido y escrito sobre cómo llevar a la enseñanza la relación entre la computación y las matemáticas. Aunque (o quizás porque) todavía no se ha asentado el polvo, parece de cualquier forma importante presentar algunos elementos “filosóficos” básicos.

Las ideas presentadas aquí no aparecen por primera vez. Así, gran parte de lo que sigue en esta introducción está tomado, con algunas modificaciones, de los “Memorandum” al Profesor que edita el Departamento de Educación de la Unión Matemática Argentina sobre Computación y Matemática. Habiendo hecho las disculpas y establecidos los “copyrights” del caso, pasemos a la descripción de algunas de estas ideas.

La computadora ha cambiado y cambiará muchas cosas en nuestra sociedad, constantemente hardware y software son más potentes y más accesibles monetariamente. Pero, ¿cómo es y cómo será su influencia en la enseñanza de las matemáticas?

Como su nombre en nuestro país lo indica (en España se denominan “ordenadores”, nombre que aparte de la diferencia en género apunta a las posibilidades en informática), en una primera etapa las computadoras hicieron sentir su influencia en las matemáticas como herramienta de cálculo numérico. En esa etapa, los algoritmos utilizados y los lenguajes de programación que se usaban eran lo suficientemente complicados como para que sólo especialistas pudieran entenderlos. De este modo, la computadora se utilizaba sólo en la enseñanza universitaria en cursos destinados a futuros especialistas.

Luego, en la medida que las facilidades gráficas se hicieron más poderosas y accesibles al público común, los gráficos ayudaron a interpretar cualitativamente cantidades masivas de datos (“un dibujo vale más que mil palabras”) lo que es importante tanto en ciencia como en el manejo empresarial. Estas facilidades permitieron la aparición del LOGO, lenguaje desarrollado fundamentalmente por S. Papert teniendo en mente a la educación de los niños en la escuela primaria con la geometría de la tortuga. Si bien el LOGO ha perdido algo de su ímpetu original, aún siguen apareciendo nuevos artículos sobre él. Aunque en medida mínima, también se usa el LOGO en cuestiones de “inteligencia artificial” a nivel profesional.

Casi simultáneamente con la aparición del lenguaje LOGO, N. Wirth hacía la presentación de su lenguaje PASCAL, desarrollado como herramienta en la enseñanza de la programación para sus alumnos universitarios. Sin embargo, el lenguaje PASCAL tuvo una enorme difusión, excediendo su importancia como lenguaje profesional de programación al de lenguaje educacional. El énfasis del PASCAL era completamente diferente al del LOGO, haciendo mayor hincapié en la programación estructurada y algoritmos numéricos y seminuméricos. Con la aparición de las computadoras personales en las escuelas primarias y secundarias, unos 10 años atrás, estos dos lenguajes (LOGO y PASCAL) fueron adoptados en la enseñanza primaria y secundaria.

El Massachusetts Institute of Technology (MIT) fue un factor importante en el desarrollo de muchas herramientas computacionales, entre ellas el LOGO (íntimamente relacionado con “inteligencia artificial”) y el sistema MACSYMA de cálculo matemático simbólico. El MACSYMA fue de alguna forma el padre de los muchos sistemas disponibles hoy en las computadoras personales que integran las posibilidades de cálculo numérico, cálculo simbólico y gráficas en dos y tres dimensiones como DERIVE, MAPLE, MATHEMATICA y REDUCE, entre otros (además del MACSYMA). Estos paquetes de software, casi específicamente destinados a matemáticas, a su vez han causado una revolución en la enseñanza, muy comparable a la revolución causada por las calculadoras portátiles. Más aún, algunos de estos paquetes pueden incorporarse como módulos a calculadoras con posibilidades gráficas. En países como Estados Unidos, donde hay una gran disponibilidadd de computadoras personales, desde hace años se está trabajando en la enseñanza de matemáticas con la ayuda de estos paquetes. Pero aún no se ha asentado el polvo: constantemente aparecen artículos señalando las ventajas y desventajas del uso de estos sistemas en el aprenizaje.

Es que es muy fácil dejarse llevar y dar mayor preponderancia al medio antes que al fin. Esto no debe sorprendernos y podemos concentrarnos en un ejemplo sencillo: En algunas escuelas aún se enseña el algoritmo para la extracción de la raíz cuadrada, cuando casi cualquier calculadora puede realizar esta operación casi instantáneamente. Entonces tenemos que preguntarnos: ¿cuál es la importancia del algoritmo de extracción de la raíz cuadrada? Podemos decir que es instructivo si es que en su enseñanza destacamos cómo se combinan la estructura de posición decimal y la expansión del cuadrado del binomio para obtener el algoritmo, es inútil si sólo queremos recordar una técnica para obtener un resultado (la calculadora es mucho más eficiente). Observemos que, por otra parte, la calculadora difícilmente use ese algoritmo para extraer la raíz cuadrada. Seguramente el algoritmo de la raíz cuadrada se ha enseñado muchas veces dando mayor importancia al medio (el algoritmo) que al fin (para qué queremos el resultado). Pero ¿es esto un error?, ¿vale más la pena estudiar los algoritmos que usan las calculadoras y computadoras para extraer raíces cuadradas?, ¿o es mejor dejar que sencillamente las calculadoras y computadoras hagan su trabajo y enseñar otros temas?

Podemos hacernos preguntas similares en todo tipo de técnicas usadas en matemáticas: desde las sencillas como el algoritmo de la suma o producto hasta técnicas de derivación o integración en matemáticas más avanzadas. ¿Debemos elminar el uso de las calculadoras y, en corto tiempo, las computadoras?

De aquí a preguntarnos para qué sirven las matemáticas, y en particular para qué las enseñamos, estamos a un paso. Y eso es muy saludable pues habíamos caído en dos trampas: la enseñanza de técnicas repetitivas y el excesivo formalismo, en detrimento del estudio de las propiedades básicas, y más profundamente, de la creatividad y la solución de problemas concretos de la realidad que nos rodea.

Cuando se piense en nuevos planes de estudio, necesariamente habrá que hacer una reflexión profunda sobre estos temas. Deberá tenerse en cuenta que las nuevas tecnologías que van apareciendo hacen y harán rápidamente obsoletas muchas propuestas. Los programas de estudio tendrán que ser flexibles, permitiendo adaptaciones rápidas a esta realidad ya que, al menos parcialmente, sus contenidos necesariamente tendrán que ir cambiando en ciclos de pocos años. Por cierto, los docentes de todos los niveles tendremos que mantenernos actualizados constantemente para que estos cambios puedan llevarse al aula.

Desde el punto de vista de las matemáticas, que nos interesa aquí, la computadora, o la calculadora programable con gráficos incorporados, debe entenderse hoy como:

  1. Una herramienta para realizar cálculos, apretando los correspondientes botones o dando las instrucciones adecuadas.
  2. Una forma de hacer gráficos que nos ayudarán a entender el problema o modelo en cuestión.
  3. Una herramienta que podemos programar para realizar cálculos repetitivos.

Todos estos puntos son importantes y deben formar parte de la enseñanza.

Las aproximaciones numéricas son una herramienta importantísima, ya que muchas expresiones no se pueden evaluar en forma “cerrada”, y aún así expresiones como $\log(\pi)$ son sólo útiles si tenemos una idea aproximada de su valor. Pero en a) nos referimos a cálculos tanto numéricos como simbólicos: las posibilidades de trabajar simbólicamente con expresiones automatizan tareas tediosas y poco creativas, como simplificar expresiones complicadas, obtener derivadas o integrales en forma cerrada, eliminando errores debido a “me olvidé del signo menos en esta parte”.

No es novedad que las tablas de funciones trigonométricas y logaritmos, o la regla de cálculo, han quedado obsoletas. Debemos concentrarnos en enseñar para qué sirve obtener el seno de un ángulo, el logaritmo de un número o resolver una ecuación cuadrática o polinómica en general.

Por supuesto, no es deseable que para extraer la raíz cuadrada de 9 un alumno deba apelar a la calculadora, y, aunque sea repetitivo y poco creativo, es conveniente que los alumnos memoricen las tablas de multiplicación. De la misma forma, los alumnos deben estar familiarizados con la fórmula para resolver la ecuación cuadrática. Pero también deben saber que la ecuación cuadrática puede resolverse rápidamente, y con menos posibilidades de error, mediante una calculadora o computadora. Para pensar: ¿cuántos de ustedes se acuerdan de la “fórmula” para resolver ecuaciones polinómicas de grado 3 ó 4? ¿saben que esas fórmulas están incorporadas en los paquetes de álgebra simbólica, por lo que la computadora puede darnos las raíces de una ecuación de grado 4 cuyos coeficientes son letras?

La parte b) es importante en el estudio de funciones, y en general curvas y superficies. Distintos tipos de gráficos permiten visualizar una o más tablas simultáneamente y gráficos de líneas, de “tarta” o acumulativos aparecen constantemente en periódicos y revistas. Con los gráficos tenemos la posibilidad de ver en perspectiva una superficie y al lado las correspondientes curvas de nivel. Los gráficos también ayudan a entender y obtener aproximaciones de puntos destacables de las funciones, como raíces, máximos y mínimos, puntos de inflexión o intersecciones de curvas. Estos elementos combinados con las facilidades mencionadas en el punto a) abren todo un campo de posibilidades (por ejemplo el estudio de máximos y mínimos) para el cual no es necesario conocer derivadas. Ajuste de tablas o interpolación mediante funciones son mucho más fáciles de entender si se dispone de gráficos. En el estudio de estadística no sólo se “ve” la recta de regresión o coeficiente de correlación, sino que con la ayuda de gráficos son más fáciles de entender conceptos elementales como media, cuartiles o varianza de una muestra.

El punto c) es el único que requiere una participación más creativa con la computadora. Aún cuando difícilmente programemos algoritmos originales o nuestros programas superen en eficiencia o confiabilidad a los disponibles comercialmente, es importante conocer algunos de los algoritmos más sencillos y ser capaces de programarlos: búsqueda binaria, algoritmo de Euclides, la criba de Eratóstenes, métodos iterativos de aproximación sencillos, algunos algoritmos para grafos o flujos en redes, algoritmos geométricos, lo que por una parta da mayor conocimiento de cada tema y por otra parte ilustra lo difícil que es programar algoritmos eficientes y confiables.

Hasta aquí el texto (adaptado) de los “Memorandum”, que considero una buena base para la reflexión y discusión. Dejando un poco de lado la cuestión filosófica, no abundaremos sobre los conceptos presentados y en cambio pasamos a hacer una breve mención de lo que la computadora nos ofrece como herramienta.

Cuando hablamos de computadora, generalmente pensamos en sólo la parte física, el “aparato” o “hardware”, pero sabemos bien que sin el “software”, la computadora es inútil. Antes que la discusión del “hardware” (qué marca, cuántos megas, si pantalla color), parece más adecuado concentrarse en el software, que es en definitiva el medio mediante el cual nos relacionamos con la computadora.

Desde el punto de vista de las matemáticas, y más específicamente de su enseñanza, no nos interesan los procesadores de texto ni las bases de datos, ¿qué otro software hay disponible?

Primeramente tenemos los lenguajes de programación. Hay cientos de lenguajes, algunos de los más conocidos son los ya mencionados LOGO y PASCAL, y también BASIC, C, C++, COBOL, FORTRAN, LISP, PROLOG, etc. Yo ni siquiera conozco el nombre de muchos de ellos. ¿Por qué hay tantos lenguajes?, ¿es necesario estudiarlos?, ¿cuáles sirven? La diversidad de lenguajes proviene fundamentalmente de dos razones: el uso para el cual fueron pensados y los equipos (hardware) disponibles cuando se crearon los lenguajes. A nosotros nos interesan aquí dos tipos de lenguajes: los denominados “de procedimientos” o “imperativos” como PASCAL, BASIC, C, FORTRAN, y los del tipo “de reglas”, como el LISP, y muy tangencialmente, los del tipo “de objetos” como el C++. Generalmente en las escuelas se enseñan, como ya dijimos, LOGO y PASCAL, y quizás BASIC.

En segundo lugar tenemos las denominadas “planillas de cálculo” (LOTUS, EXCEL, QUATTRO, etc.), que tienen lenguajes de programación propios, así como posibilidades gráficas. No hay que desdeñarlos como medio de enseñanza ya que son muy poderosos, incluyendo algunos de ellos búsqueda de raíces y rutinas de optimización y estadística.

Tenemos además los paquetes integrados de cálculo numérico, cálculo simbólico y posibilidades gráficas como los ya mencionados DERIVE, MACSYMA, MAPLE, etc.

No podemos dejar de mencionar software que es intermedio entre los lenguajes de programación y los paquetes integrados con álgebra simbólica, como GAUSS, MATHCAD y MATLAB. Estos paquetes son muy usados a nivel profesional, ya que tienen muchas de las ventajas de los lenguajes clásicos, produciendo códigos que son relativamente rápidos (pseudo-compilados), tienen muchas facilidades gráficas, y las nuevas versiones van introduciendo elementos de cálculo simbólico.

Por supuesto, hay muchísimo más software, en general destinado a cuestiones específicas como estadística, modelización, sistemas dinámicos, optimización, etc., además de los paquetes de rutinas (muchas de ellas escritas en FORTRAN) para cuestiones de álgebra lineal, ecuaciones diferenciales, etc.

Estudiar todo este software es definitivamente imposible, y necesariamente tenemos que hacer algunas elecciones. Nuestra decisión se simplifica con los paquetes como MACSYMA, MAPLE, etc., ya que, como veremos, podemos programar con ellos como podríamos hacerlo en BASIC o PASCAL, tenemos la posibilidad de pensar en forma “matricial” (más concretamente como listas o listas de listas) como con las planillas de cálculo o MATLAB, podemos usarlos casi como calculadoras, emitiendo comandos para obtener resultados inmediatos, y no debemos subestimar la gran capacidad que tienen para realizar gráficos. Para estas notas hemos elegido el software Mathematica.

Es difícil hacer una elección perfecta, por varias razones:

  1. No hay software completo. No existe un software que integre todas las posibilidades. Por ejemplo Mathematica no es muy adecuado para cuestiones de geometría euclídea en dos o tres dimensiones.
  2. No hay software perfecto. Todo software complejo (y Mathematica lo es) por una parte necesita de mucho estudio para conocerlo a fondo, y por otra, tiene “bugs”, es decir, a veces da respuestas que no son las que esperamos o son simplemente incorrectas.
  3. Más fundamentalmente: hardware y software van evolucionando constantemente y no podemos saber con certeza (ni siquiera sospechar) qué es lo que habrá disponible de aquí a cinco o diez años. Esta evolución se ve reflejada en la enseñanza, en particular de las matemáticas. Muchos de ustedes habrán aprendido BASIC, o los más maduros, FORTRAN, lenguajes que pocas personas recomendarían hoy para la enseñanza en matemáticas.
  4. Conectado con los puntos anteriores, y como mencionábamos anteriormente, todo el proceso de introducción de las computadoras en la enseñanza está en discusión y no podemos adjudicarnos el ser dueños de la verdad. Esto vale tanto para los temas a enseñar (el qué y el para qué) como para la forma de enseñarlos (el cómo).

Pero tampoco podemos esconder la cabeza como el avestruz e ignorar que las computadoras están aquí para quedarse. En la medida que nos permite nuestra capacidad, es nuestra obligación conocer las posibilidades actuales y, a los docentes, preparar a nuestros alumnos acordemente.

En estas breves notas, a pesar de ser introductorias, veremos demasiadas cosas de Mathematica. Pero no nos dejemos apabullar y tratemos de entender, sino a Mathematica, cuáles son las herramientas que nos ofrece, y qué cambios en la enseñanza pueden venir como consecuencia (que ha sido uno de mis propósitos al presentarles estas notas).

Y acá cerramos el círculo con el que empezamos: volvamos a la “filosofía”, ya que la elección de la última parte de los contenidos merece algunos comentarios.

Casi todos los algoritmos que veremos están incorporados ya como primitivas en Mathematica, lo que nos lleva, recordando el uso de la calculadora y la extracción de la raíz cuadrada, a la cuestión de la utilidad de aprender estos algoritmos.

Es más, aún cuando la computadora los tenga implementados como primitivas, creo que el egresado típico del secundario jamás va a usar en su vida diaria alguno de estos algoritmos.

¿Entonces?

Debemos tener cuidado. Llevado al extremo este argumento, nos plantearíamos la importancia de enseñar números primos en la escuela basados únicamente en su utilidad.

Aquí estoy trazando la línea, mi fina, débil y subjetiva línea de hoy, que separa el aprender algoritmos con el fin de resolver problemas rutinarios de aprender algoritmos por su interés, ya sea práctico o teórico o formativo, o porque son una parte de nuestra cultura que debemos conocer, o simplemente por su “elegancia”.

¿Qué vamos a enseñar? Ese es nuestro desafío, dejar de enseñar cosas tediosas, repetitivas, exclusivamente técnicas, que a unos pocos interesa, y pensar que debemos enseñar en cambio los aspectos conceptuales de las matemáticas, hacer que los alumnos piensen, creen, entiendan fenómenos, aprendan a aplicar matemáticas, y sobre todo... ¡no dejar esto en una charla de café! Tenemos que hacer el esfuerzo, nosotros mismos, de entender más los conceptos, los por qués y cómos, y viendo qué cosas están muertas o por morir y cuáles están naciendo (y cuáles de ellas son sólo “una cara bonita”). Tenemos que ser capaces de darle más importancia a las matemáticas que a la herramienta de turno (llámese matemática moderna o computadora). Sólo mejorándonos como profesionales podremos mejorar la calidad de la enseñanza.

Agradecimientos

Estas notas son una reelaboración de varios cursos organizados por la Olimpíada Matemática Argentina (OMA), uno de ellos dictado en las Escuelas ORT durante el primer semestre de 1993. Mi agradecimiento a la OMA, a las Escuelas ORT y a los participantes de los cursos por su interés.

Por otra parte, estas notas fueron hechas gracias a la generosa disposición de la OMA, cuyas autoridades me han facilitado tanto hardware como software para elaborarlas y redactarlas.

Una mención especial para mi familia, que constantemente me ha apoyado en la realización de estas notas.