Software Libre para enseñar o aprender Matemática...

37
Software Libre para enseñar o aprender Matemática Porqué y Cómo Pablo De Nápoli [email protected]

Transcript of Software Libre para enseñar o aprender Matemática...

Page 1: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Software Libre para enseñar oaprender Matemática

Porqué y CómoPablo De Ná[email protected]

Page 2: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Introducción• En esta charla, presentaremos algunos de los

pogramas que sonsoftware libre, que puedenutilizarse para docencia e investigación enmatemática.

• Discutiremos también cúales son las ventajas deutilizar software libre para la docencia y lainvestigación en matemática.

Page 3: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

¿Por qué ? : ¿Qué ventajas tieneutilizar software libre?

Page 4: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

¿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.

Page 5: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

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”.

Page 6: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

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)

Page 7: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

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.

Page 8: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

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.

Page 9: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

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.”

Page 10: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

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.

Page 11: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

¿Cómo?: ¿Qué alternativas libresexisten?

Page 12: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

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.

Page 13: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Sistemas de ÁlgebraComputacional

Page 14: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Á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.

• Algunos son para aplicaciones específicas:

Pari/Gp (teoría de números), Gap (teoría degrupos), Singular y Macaulay2 (para geometríaalgebraica).

Page 15: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

wxMaxima

wxMaxima: ejemplos de diferenciación e integración

Page 16: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

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.

Page 17: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Axiom

Axiom funcionado bajo KDE

Page 18: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

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.

Page 19: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

SAGE

SageNotebook funcionando con Mozilla Firefox

Page 20: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

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)

Page 21: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

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).

Page 22: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

¿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.

Page 23: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Programas Orientados alCálculo Numérico

Page 24: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Cálculo Numérico• Otra categoría de programas que podemos

mencionar son los orientados alcálculo numéricoy las aplicaciones a la ingeniería.

• Clones de Matlab:• GNU Octave• FreeMat• Scilab (No es software completamente libre

porque su licencia no permite redistribuirversiones modificadas con fines comerciales).

• Euler (No es realmente un clon de Matlabpero la idea es similar)

Page 25: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

FreeMat

FreeMat mostrando algunas operaciones con Matrices

Page 26: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Otras alternativas• El paqueteScipy(integrado enSAGE) provee

funcionalidades para cálculo numérico (similaresa las de Matlab), pero enPython.

• GNU R : Un programa para estadística. (similaral S)

Page 27: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Programas para escribirmatemática

Page 28: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Kile

Es un entorno de desarrollo integrado (IDE) paraescribir en LATEX.

Page 29: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Lyx

“Lyx: en tu pantalla se ve como cualquier procesadorde texto, en el papel como ningún otro”

Page 30: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Graficadores

Page 31: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

GraficadoresExisten programas específicamente destinados agraficar funciones y datos, como por ejemplo:

• Gnuplot (¡que no es parte del proyecto GNU!)• Labplot• Paraview• Scigraphica, Qtiplot, Grace, . . .

Page 32: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Labplot

Labplot es un graficador de funciones y datospara KDE.

Page 33: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Distribuciones específicas deGNU/Linux

Page 34: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Quantian

Quantian es una distribución de GNU/Linuxespecífica para computación científica.

Page 35: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Características de Quantian• Es una distribución en Live-CD/ Live-DVD

derivada de Knoppix.• Incluye casi todos los programas mencionados en

esta charla.• Tiene soporte para procesamiento paralelo

(OpenMosix).

Page 36: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

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

Page 37: Software Libre para enseñar o aprender Matemática …mate.dm.uba.ar/~pdenapo/charla-sl-matematica/charla-sl-matematica.… · Introducción • En esta charla, presentaremos algunos

Licencia de Este DocumentoCopyright 2007-8 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).