Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Introducción• En esta charla, presentaremos algunos de los
pogramas que sonsoftware libre, que puedenutilizarse para docencia e investigación enmatemática, o en otras disciplinas científicas queapliquen la matemática.
• Discutiremos también cúales son las ventajas deutilizar software libre para la docencia y lainvestigación en matemática y en disciplinasconexas.
¿Qué es el Software Libre?Según la definición propuesta porRichard Stallmanun programa es software libre si el usuario tiene (deacuerdo a lalicenciadel programa) las siguienteslibertades o derechos:
0) La libertad deejecutar el programa, con cualquierpropósito.
1) La libertad deestudiar cómo funciona elprograma, y adaptarloa sus necesidades.
2) La libertad dedistribuir copias, con lo que puedeayudar a su vecino.
3) La libertad de mejorar el programa yhacerpúblicas las mejorasa los demás, de modo quetoda la comunidad se beneficie.
Una cuestión de Derechos• El software libre es unacuestión de derechos,
no una cuestión de tecnología.• Lo que decide si un programa es o no libre, es la
licenciabajo la cual el programa se distribuye.
Una licencia de software es uncontratoentre eltitular del copyright (derecho de copia) sobre unsoftware, y el usuario, que establece que cosas elusuario puede hacer con el programa (y cualesno).
• Software libre (free software)6= software gratuito(freeware).
“El software libre es una cuestión de libertad, node precio”.
Escapando al dilema moral. . .Una ventaja de usar software libre en la docencia, esque podemos distribuir copias del progrmalegalmentea los alumnos.
Esto permite que los alumnos puedan utilizar elprograma en sus casas.
La licencia del programa nos autoriza a hacerlo.
“Si usas un programa sin la libertad dedistribuir copias, pronto te enfrentarás a undilema moralcuando un amigo te diga: Eseprograma que tienes me sería útil. ¿Podríasdarme una copia?” (Richard Stallman)
Accediendo al conocimiento. . .Pero quizás la ventaja más importante de utilizarsoftware libre en la docencia o la investigaciónmatemática, es que permiteacceder al conocimientoque hay detrás del software.
Utilizando software libre, nuestros alumnos pueden,por ejemplo, ir y ver que algoritmo utiliza el programapara realizar determinado cálculo.
O incluso pueden tomar elcódigo fuenteen sus manosy mejorarlo, o adaptarlo para hacer algo diferente.
Enseñando valores. . .Si partimos del convencimiento de que la educaciónno tiene por objeto exclusivamente transmitir unaserie de conocimeintos técnicos o prácticos, sino quebusca fundamentalmentetransmitir valoressocialmente positivos, resulta claro que la utilizaciónde software libre puede contribuir a este propósito:
“Un programa que sea software libre puedeno ser técnicamente superior, pero siempreserá éticamente superior” (Richard Stallman)
• Compartir es bueno.• No al software “trucho”: debemos eseñar a
respetar la ley.
Una cita de Linus Torvalds“I think, fundamentally, open source does tend to bemore stable software. It’s the right way to do things. Icompare it toscience vs. witchcraft. In science, thewhole system builds on people looking at other peopleresults and building on top of them. In witchcraft,somebody had a small secret and guarded it but neverallowed others to really understand it and build on it.
Traditional software is like witchcraft. In history,witchcraft just died out. The same will happen insoftware. When problems get serious enough, youcan’t have one person or one company guarding theirsecrets. You have to have everybody share inknowledge.”
S. L. y Método Científico• Existe un estrecho paralelo entre la forma que el
software libre se desarolla y elmétodo científico.• En la ciencia es fundamental, la crítica de los
resultados por parte de otros científicos (revisiónpor parte de los pares); y su utilización por partede otros para obtener nuevos resultados.
• Exactamente lo mismo sucedeen el mundo delsoftware libre. Uno puede tomar el código de otroprogramador, examinarlo, mejorarlo, corregirlo, eincluso usarlo como base para desarrollar unnuevo programa.
• Las licencias de software libre permiten hacerestosin tener que pedir permisoal autor originaldel programa.
Alternativas Libres• En esta segunda parte de la charla presentaremos
una selección de los programas existentes, quetiene el propósito de convencerlos de que existenalternativas libresa otros programas privativosque quizás son más populares.
• Todos los programas que vamos a presentar, sepueden utilizar sobre el sistema operativoGNU/Linux, pero algunos de ellos funcionansobre otros sitemas operativos.
• El mundo del software libre esun mundo dealternativas. En general no suele existir un sóloprograma para una tarea, sino varias alternativaspara elegir.
GraficadoresExisten programas específicamente destinados agraficar funciones y datos, como por ejemplo:
• Gnuplot (¡que no es parte del proyecto GNU!)• Labplot• Qtiplot, Scidavis (clones del Origin)• Paraview• Grace
Cálculo Numérico• Otra categoría de programas que podemos
mencionar son los orientados alcálculo numéricoo matemática aplicada.
• Clones de Matlab:• GNU Octave (y su interface gráfica QtOctave)• FreeMat• Scilab, desarrollado por el INRIA.• Euler (No es realmente un clon de Matlab
pero la idea es similar)• GNU R: un programa para estadística.• SciPy: un paquete para cálculo numérico en
Python.
Otra alternativa: SciPy
El paqueteScipyprovee funcionalidades para cálculonumérico (similares a las de Matlab), pero enPython.
Álgebra Computacional• Los sistemas de álgebra computacionalson
programas capaces de realizaroperacionessimbólicascomo diferenciación, integración,factorización de polinomios, etc.
• Soportan aritmética de precisión arbitraria.
Por ejemplo: Axiom, Maxima, Sage, Yacas, etc.
• Dichos programas ofrecen altenativas libres aprogramas privativos como Mathematica oMaple.
• Algunos son para aplicaciones específicas:
Pari/Gp (teoría de números), Gap (teoría degrupos), Singular y Macaulay2 (para geometríaalgebraica).
características de Maxima• Es un sistema para lamanipulación de
expresiones simbólicas y numéricas, incluyendodiferenciación, integración, expansión en seriesde Taylor, transformadas de Laplace, ecuacionesdiferenciales ordinarias, sistemas de ecuacioneslineales, y vectores, matrices y tensores.
• Maxima es un descendiente de Macsyma, ellegendario sistema de álgebra computacionaldesarrollado a finales de 1960 en el MIT.
• Licencia:GNU GPL(versión 2).• Lenguaje de programación: Lisp.
Caracterísiticas de Axiom• Es un sistema de álgebra computacional, con
capacidades simbólicas.• Está en desarrollo desde 1973. Originalmente
Axiom fue desarrollado por investigadores deIBM bajo el nombre deScratchpad.
• Lenguajes de programación: Lisp, Spad, (Aldor).• Licencia:BSD modificada.• Posee unajerarquía de tipos de datosmuy
eleborada, que representa muy bien la manera depensar de los matemáticos (tiene “categorías”como anillo o grupo).
• Viene con abundante documentación.
Características de SAGE• Es un sistema de álgebra computacional escrito
enPython.• Provee unainterfase de alto nivelqueintegra a
otros programas y libreríaspre-existentes como:• Pari/GP, NTL, Nwrank (teoría de números)• GNU GSL, Scipython, Numpy (aplicaciones
numéricas)• Linbox (álgebra lineal numérica), Cvxopt
(optimización)• Gap (teoría de grupos)• Singular (álgebra comutativa y geometría
algebraica)• Maxima, Sympy (manipulaciones simbólicas)
Más sobre SAGE . . .• SAGEsignifica “Software for Algebra and
Geometry Experimentation”• El desarrollo de SAGE es liderado por William
Stein, de la Universidad de Washington.• Licencia:GNU GPL, versión 2.• El hecho de ser software libre hace que no sea
necesario reinventar la rueda cada vez, sino quese pueda aprovechar paquetes pre-existentes.
• SAGE puede utilizarse desde un navegador web(Mozilla Firefox) (SageNotebook).
¿y porqué utilizar Python?• Pythones un lenguaje de programación de muy
alto nivel, moderno y fácil de entender.• Es ampliamente utilizado para distintas
aplicaciones.• Pythones fácil de aprender. Lo recomiendo para
enseñar a programar.Entonces . . .
• El código de SAGE esfácil de entender ymodificar.
• No es necesario aprender un lenguaje específicopara utilizar SAGE.
• Pythones una herramienta eficaz para integrarotros paquetes y librerías pre-existentes.
Características de Quantian• Es una distribución en Live-CD/ Live-DVD
derivada de Knoppix.• Incluye muchos de los programas mencionados
en esta charla.• Tiene soporte para procesamiento paralelo
(OpenMosix).
Más referencias. . .Pueden encontrar enlaces a los programasmencionados en esta charla (y otros no mencionados)en mi página personal:
http://mate.dm.uba.ar/~pdenapo/mathsoft.html
Sobre la filosofía del movimiento de software libre, lareferencia obligada es el sitio del Proyecto GNU (FreeSoftware Foundation)http://www.gnu.org
Licencia de Este DocumentoCopyright 2007-9 Pablo Luis De NápoliSe garantiza el permiso para copiar, distribuir y/omodificar este documento bajo los términos de laLicencia de Documentación Libre GNU, versión 1.2(GNU Free Documentation License, Version 1.2 ) ocualquier otra versión posterior publicada por la FreeSoftware Foundation; este documento se presenta sinSecciones Invariables (no Invariant Sections), sinTextos de Tapa (no Front-Cover Texts) y sin Textos deContratapa (no Back-Cover Texts).