software libre para enseñar o aprender matemática porqué y

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

Upload: others

Post on 27-Oct-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Software Libre para enseñar oaprender Matemática

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

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.

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

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

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

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.

Graficadores de Funciones y Datos

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

Labplot

Labplot es un graficador de funciones y datospara KDE.

Qtiplot

Qtiplot es un graficador de funciones y datosmuy parecido al Origin.

Programas Orientados alCálculo Numérico

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.

QtOctave

QtOctave mostrando algunas operaciones conMatrices

FreeMat

FreeMat mostrando algunas operaciones con Matrices

GNU R

GNU R: Un programa para estadística. (similar al S)

Otra alternativa: SciPy

El paqueteScipyprovee funcionalidades para cálculonumérico (similares a las de Matlab), pero enPython.

Sistemas de ÁlgebraComputacional

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

wxMaxima

wxMaxima: ejemplos de diferenciación e integración

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.

Axiom

Axiom funcionado bajo KDE

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.

SAGE

SageNotebook funcionando con Mozilla Firefox

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.

Programas para escribirmatemática

Kile

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

Lyx

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

Distribuciones específicas deGNU/Linux

Quantian

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

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