Dos primeras instancias de SAGE

Se llevaron a cabo las dos primeras instancias del grupo de SAGE-Python. Debo confesar que cuando pensamos en el grupo un máximo de 6 o 7 personas nos dejaba mas que conformes. Finalmente luego del posteo en el foro de la apertura del curso, mi casilla se llenó con 20 mails de personas interesadas. Cuando repasaba nombre a nombre, notaba que el interés era real. Que se trataba de los alumnos más aplicados y más comprometidos de la clase. Un par de reuniones con Leonardo (un fenómeno, de verdad!) bastaron para entendernos y saber que esperábamos del grupo. Deberíamos nivelar de alguna manera los conocimientos de algunos para poder lograr una base y construir encima. Se trata de alumnos de primer año, y quizás lo buscado tanto a nivel de programación como matemático excedía un poco sus conocimientos. Deberíamos cumplir con la comprensión del lenguaje en primera instancia, desconocido por la mayoría de ellos. Un nivel mas arriba, estaba el trabajar con algún servidor SVN (que finalmente echamos mano al google code, dado que en la universidad se nos complicaba instalar uno). La manera de trabajar con el programa era en general conocida por todos ya que habíamos apostado a eso en el curso de Cálculo II. Debo agradecer desde siempre a Leonardo por su gran apoyo y referente, a Santiago que cuando Leonardo estuvo enfermo se puso el equipo al hombro, preparó en un día los temas y llegó ese sábado temprano a contagiar a todos como nos tiene acostumbrado. Los chiquilines impactados por Santiago y cada vez mas entusiasmados. El curso sirvió como gran guía de los proyectos que cada uno tenía como obligatorios. Cada uno, en mayor o menor medida agregaban funcionalidad al software de manera que puedan ser usado por diversas materias en la carrera.
Valoro por sobremanera el interés y compromiso que mostraron desde siempre los muchachos que siempre preguntaban cuando teníamos jornada, cuando podíamos juntarnos, consultar, etc. No se que seguirá de todo esto, si serán todos, pocos o algunos, sin embargo para el comienzo que esperábamos tener, desde todo punto de vista lo superó.

(Este post quedó guardado en borradores por error! Debió haber sido publicado el 30/10/2008 )

Desarrollo de SAGE

Nuestra Universidad ha decidido finalmente aprobar el curso paralelo de SAGE. Se trata de un grupo para desarrollar en SAGE/Python e incluirle nuevas funcionalidades al producto tanto de utilidad para todos los usuarios así como la inclusión de funcionalidades que acompañen los cursos de matemática o programación de nuestra Universidad.

Cuando pensamos la propuesta de obligatorios de este semestre, hablando con Walter y Eduardo surgió la brillante idea (por parte de ellos, logicamente 🙂 ), de incluír funcionalidades que apoyara los cursos de lógica en aspectos de visualización de conjuntos, construcción de tablas de verdad, construcción de diagramas de Karnaugh, chequeo de fórmulas bien formadas, y demás. Un fin de semana después y 15 propuestas obligatorios diferentes, se planteó la idea de crear un grupo paralelo y extracurricular que se dedicara justamente a eso: Programar las funcionalidades que le faltan al programa y que serían de una buena utilidad para la carrera. Sumado a eso, una conversación via gmail con William Stein y el aval de nuestro decano Omar Paganini se institucionalizó y se pone en marcha el grupo.

Esperemos que se puedan avanzar en los temas que hacen falta para poder entre todos, colaborar a la mejora del proyecto (que es por naturaleza muy bueno) y cada uno de nosotros seguir aprendiendo un poco mas de todo lo que tocamos en el curso.

Un saludo grande a todos!

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.