domingo, 3 de agosto de 2008

SAGE en nuestra Universidad

Desde hace un tiempo a esta parte, la Universidad en la que estudio y trabajo, brinda a los estudiantes de la carrera de Ingeniería en informática (y hasta hace un tiempo, también a la gente de Ingeniería eléctrica) un notebook para poder trabajar y hacer la carrera con dicho apoyo. Para otro post dejo los beneficios que ello trae y las razones "éticas" o sociales que llevaron a la Universidad a tomar tal medida. Sin embargo el enfoque de este post, es la adaptación de los cursos a sacar el máximo provecho de cada una de las máquinas. Como podrán apreciar, tiene una importancia incalculable para las materias de informática puras, como ser programación, ingeniería de software, arquitectura, etc. Sin embargo para las materias de matemática resultaba un poco complicado el uso del computador en el aula. Es por esa razón que se decidió incorporar como parte del curso de Cálculo Infinitesimal II el uso de software especificamente matemático. Allí el peso de Eduardo y Walter fue muy importante. Cambiaron el enfoque de enseñar la matemática, la manera de aprenderla y la manera de pensarla. Se adapataron a los cambios. El mundo no era el mismo que hace 20 años y ellos lo vieron y adaptaron los cursos para hacerlos actuales. Esa misma búsqueda de la adaptación hizo que se pasara esencialmente por tres programas: en primera instancia Matlab, que una vez caducada la licencia fue casi imposible volver a contratar otra; y finalmente Máxima y Octave para cálculo simbólico y  numérico respectivamente. Cuando cursé Cálculo II esos eran los software que nos acompañaron durante todo un semestre. Aprendimos a programar en Octave (Matlab en realidad, dado que hacíamos uso de que octave interpretara matlab), aprendimos todas y cada una de las sentencias que eran necesarias para utilizar el xMaxima. Por mediados del semestre apareció el wxMaxima (GUI un poco mas amigable que la simple línea de comandos :-( ).

Desde el otro lado, cuando comencé a dar las clases de software matemático en Cálculo II, el primer semestre se notaba ya la necesidad de un cambio y hablamos de eso con Walter. Algo mas estable, algo que nos permitiera romper un poco mas de barreras, que pudieramos hace las cosas todavía más flexibles, y que lo que no estuviera en el programa pudieramos incluírlo como un paquete o módulo aparte (Si bien Maxima lo permite la programación en LISP no es demasiado sencilla para alumnos que recién están en el segundo semestre de la carrera). Para el próximo semestre estaba decidido el cambio de Software. Faltaba encontrarlo. Un mes antes del comienzo de clases (y en una noche de insomnio, como dice Walter que lo encontró) dimos con SAGE. La falta de tiempo y la manera que nos atrapó llevó a que estudiaramos SAGE profundamente. Y en un mes estaba logrado. Sabíamos qué se podía hacer y que no, con qué materiales contabamos para enseñar a los alumnos y qué cosas faltaban dado que se trataba de un software relativamente nuevo. Estuvimos prontos para comenzar las clases dictando SAGE.

La aceptación que tuvo de parte de los alumnos fue muy buena. Para aquellos que tomaban el curso por primera vez resultaba una herramienta potente y que les facilitaba algunas cosas del curso. Para aquellos que habían tomado el curso con Octave y Maxima tampoco había mayores problemas. SAGE cuenta con interfaces para Maxima, Octave, Matlab, Mathematica, Maple, entre otros. Debían simplemente hacer uso de las interfaces y utilizar los comandos de los programas correspondientes.

SAGE (Software for Algebra and Geometry Experimentation) es open source, detalle no menor. William Stein, su creador, dice que tener software matemático y no saber como se llega al resultado es como dar el resultado del teorema sin ver la demostración. De esta manera el caracter "open source" se convirtió en uno de los pilares del proyecto que comenzó en la Universidad de Harvard donde dictaba clases. Tiempo después la Universidad de Washington lo llevó (con todo su equipo) para poder redondear el proyecto. Está basado en Python y pueden agregarse módulos programados en este lenguaje e incorporarlo al motor sin mayores problemas.

En futuros posts mostraré como usarlo y los comandos mas útiles. Por ahora quienes quieran probarlo pueden bajarlo desde http://www.sagemath.org o probarlo desde alguno de los servidores destinados para el uso a través de la Web.

No hay comentarios:

Publicar un comentario