1. ¿MATLAB? Yo uso Octave UPM
Israel Herraiz
Universidad Politécnica de Madrid
israel.herraiz@upm.es
Consigue esta presentación en
http://slideshare.net/herraiz/matlab-yo-uso-octave-upm
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 1/26
2. Contenidos
1 El problema
2 Posibles soluciones
3 Solución adoptada
4 Experiencias en la docencia
5 El futuro
6 Para llevar
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 2/26
3. 1 El problema
2 Posibles soluciones
3 Solución adoptada
4 Experiencias en la docencia
5 El futuro
6 Para llevar
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 3/26
4. Informática en Caminos
Contexto del problema
Asignatura de Programación y Métodos Numéricos para
estudiantes de primer curso de Ingeniería Civil
Hereda de asignaturas presentes en Ingeniería de Caminos desde los 60
Desde hace muchos años, MATLAB es el entorno de
programación para esta asignatura
Asignatura con cinco grupos de matrícula, hasta 100 alumnos por
grupo
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 4/26
5. Limitaciones para la docencia
La Universidad Politécnica de Madrid es titular de 150 licencias de
MATLAB
No se pueden conectar más de 150 puestos simultáneamente
No hay licencias para alumnos
Los laboratorios de la Escuela tienen puestos limitados y horarios con
poca compatibilidad con las clases
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 5/26
6. Limitaciones para la docencia
La Universidad Politécnica de Madrid es titular de 150 licencias de
MATLAB
No se pueden conectar más de 150 puestos simultáneamente
No hay licencias para alumnos
Los laboratorios de la Escuela tienen puestos limitados y horarios con
poca compatibilidad con las clases
Impacto docente claro
Riesgo de conflictos entre grupos de laboratorio de diferentes escuelas.
Los alumnos no compran la licencia de estudiantes, e intentan
conseguirla por otros medios.
Muchos alumnos no practican en su propio ordenador, debido a la
dificultad de acceso al software de la asignatura.
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 5/26
7. 1 El problema
2 Posibles soluciones
3 Solución adoptada
4 Experiencias en la docencia
5 El futuro
6 Para llevar
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 6/26
8. Requisitos de la solución
Más gente que en la guerra
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 7/26
9. Requisitos de la solución
Más gente que en la guerra
¿Podemos usar software libre?
Todos los grupos de matrícula reciben los mismos contenidos y
realizan las mismas pruebas de evaluación.
Algunos grupos de matrícula van a emplear siempre MATLAB.
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 7/26
10. Soluciones exploradas
Lenguajes no compatibles con MATLAB
Descartado por las necesidades de coordinación. Esto excluye Python,
Scilab, Julia, etc.
Lenguajes compatibles con MATLAB
Octave. Descartado en cursos anteriores por la falta de interfaz
gráfica.
FreeMat. Descartado por compatibilidad limitada con MATLAB.
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 8/26
11. Soluciones exploradas
Lenguajes no compatibles con MATLAB
Descartado por las necesidades de coordinación. Esto excluye Python,
Scilab, Julia, etc.
Lenguajes compatibles con MATLAB
Octave. Descartado en cursos anteriores por la falta de interfaz
gráfica.
FreeMat. Descartado por compatibilidad limitada con MATLAB.
Octave GUI
A finales de 2011 comenzó el desarrollo de una GUI para Octave.
Mejorada durante el Google Summer of Code 2012.
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 8/26
12. 1 El problema
2 Posibles soluciones
3 Solución adoptada
4 Experiencias en la docencia
5 El futuro
6 Para llevar
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 9/26
13. Intefaz gráfica con Octave
Octave en Mayo de 2012
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 10/26
14. Intefaz gráfica con Octave
Buena pinta, pero en la versión de mayo todavía...
Muchos detalles por pulir
Muy inestable
Ausencia de depurador
Difícil de compilar en Windows, muy Ubuntu-céntrico
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 11/26
15. Intefaz gráfica con Octave
Buena pinta, pero en la versión de mayo todavía...
Muchos detalles por pulir
Muy inestable
Ausencia de depurador
Difícil de compilar en Windows, muy Ubuntu-céntrico
Desarrollo propio
En mayo comienzo el desarrollo propio para solventar estos problemas.
Algunos parches se integran dentro del Octave “oficial”.
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 11/26
17. Octave UPM
Características de Octave UPM también presentes en Octave GUI
Editor con auto-completado de código
Terminal (mejorado en la versión Windows de Octave UPM)
Visor de variables (editable en Octave UPM)
Histórico de comandos
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 13/26
18. Octave UPM
Características de Octave UPM también presentes en Octave GUI
Editor con auto-completado de código
Terminal (mejorado en la versión Windows de Octave UPM)
Visor de variables (editable en Octave UPM)
Histórico de comandos
Características de Octave UPM no presentes en Octave GUI
Depurador (con selector de pila de variables)
Opciones de configuración para cada una de las herramientas (fuentes,
etc) y de gráficos
Opciones de configuración de compatibilidad con MATLAB
Auto-guardado de ficheros para recuperar en caso de crash
Muy estable (arregladas muchas condiciones de carrera del GUI)
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 13/26
19. ¿Dónde puedo obtenerlo?
Página principal
http://mat.caminos.upm.es/octave
Plataformas
Disponible para
Windows (instalador)
Paquetes para Ubuntu 12.04 y 12.10 (compatibles con Debian Testing)
ArchLinux (en el Arch User Repository)
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 14/26
20. ¿Por qué debería obtenerlo?
Si buscas un programa libre como alternativa a MATLAB, pero que no
requiera cambiar ni una línea de tu código MATLAB, que sea
fácilmente instalable en Windows, y que esté también disponible para
otros sistemas, esto es lo que buscas.
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 15/26
21. ¿Por qué debería obtenerlo?
Si buscas un programa libre como alternativa a MATLAB, pero que no
requiera cambiar ni una línea de tu código MATLAB, que sea
fácilmente instalable en Windows, y que esté también disponible para
otros sistemas, esto es lo que buscas.
La característica principal es la compatibilidad con MATLAB. Se puede
usar como sustituto de MATLAB de manera transparente.
Cualquier fichero fuente M o binario MAT se puede cargar directamente en
Octave UPM.
Cualquier fichero MAT guardado con Octave UPM se puede cargar
directamente en MATLAB.
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 15/26
22. 1 El problema
2 Posibles soluciones
3 Solución adoptada
4 Experiencias en la docencia
5 El futuro
6 Para llevar
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 16/26
23. Docencia en la Escuela de Caminos
Asignaturas en las que se usa MATLAB
Informática (1er curso)
Ecuaciones Diferenciales (2º curso)
Mecánica Computacional (3er curso)
Experiencias hasta ahora
200 alumnos en la asignatura Informática, mientras otros >200 usaban
MATLAB, en la misma asignatura, con el mismo temario, usando el mismo
código de ejemplo y las mismas soluciones a los ejercicios.
Inigualable banco de pruebas.
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 17/26
24. Lecciones aprendidas
Los usuarios de Octave UPM suelen usar más sus portátiles que los de
MATLAB.
El desarrollo multi-plataforma es problemático, incluso entre diferentes
versiones de Windows.
La compatibilidad de Octave con MATLAB es muy alta, aunque
existen diferencias a tener en cuenta.
Muchos usuarios demandan una versión para Mac OS X.
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 18/26
25. ¿Pero de verdad es compatible?
Diferencias encontradas
Detalles completos en
http://mat.caminos.upm.es/octave/compatibilidad.html
Diferencias entre operaciones con enteros y single
Broadcasting automático en suma de matrices y vectores
Diferencias en códigos de formato con sprintf
Diferencias en fplot
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 19/26
26. ¿Pero de verdad es compatible?
Diferencias encontradas
Detalles completos en
http://mat.caminos.upm.es/octave/compatibilidad.html
Diferencias entre operaciones con enteros y single
Broadcasting automático en suma de matrices y vectores
Diferencias en códigos de formato con sprintf
Diferencias en fplot
Qué no se puede hacer
Programación orientada a objetos usando classdef
Desarrollar GUIs con los comandos de MATLAB
Usar las toolboxes “oficiales” de MATLAB (pero tienes muchos
paquetes disponibles en Octave).
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 19/26
27. Qué sí se puede hacer
Reutiliza tu código MATLAB sin cambiar una coma
Programación imperativa usando for, if, while, funciones, etc.
Gráficos.
Importación y exportación de datos (ficheros de texto, ficheros MAT).
Estructuras de datos, matrices, etc.
Tratamiento de imágenes.
En general, cualquier cosa, excepto lo comando en la transparencia
anterior.
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 20/26
28. Ritmo del proyecto
2000 descargas de la versión Windows desde Mayo de 2012.
21252 SLOC heredadas de Octave, 6139 SLOC de nuevas
funcionalidades (22 %)
244 commits y 8 releases desde mayo de 2012.
>7700 resultados de búsqueda en Google (query “Octave UPM”).
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 21/26
29. 1 El problema
2 Posibles soluciones
3 Solución adoptada
4 Experiencias en la docencia
5 El futuro
6 Para llevar
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 22/26
30. El proyecto de software libre
Relaciones con la comunidad de Octave
Integrar las funcionalidades de Octave UPM en Octave.
Si todo va bien, eliminar la necesidad de tener un proyecto paralelo.
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 23/26
31. El proyecto de software libre
Relaciones con la comunidad de Octave
Integrar las funcionalidades de Octave UPM en Octave.
Si todo va bien, eliminar la necesidad de tener un proyecto paralelo.
Pero si la integración no es posible...
Atraer a más desarrolladores y usuarios. Si quieres participar, entra en
http://mat.caminos.upm.es/octave
https://forja.rediris.es/projects/octaveupm/
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 23/26
32. Cosas que quedan por hacer
Instrumentar el entorno de programación, para recoger estadísticas de
cómo se usa el programa
Posible proyecto de innovación en la docencia de programación para
estudiantes de Ingeniería
Incorporar un gestor de paquetes, para instalar y desinstalar paquetes
a golpe de ratón
Interfaz gráfica para el perfilador de Octave
Analizador estático de código MATLAB/Octave, e integración con el
entorno
Paquete de instalación para Mac OS X
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 24/26
33. 1 El problema
2 Posibles soluciones
3 Solución adoptada
4 Experiencias en la docencia
5 El futuro
6 Para llevar
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 25/26
34. Para llevar
Qué Por qué
Octave UPM es una versión MATLAB es ubicuo en la
personalizada de Octave, docencia de la programación en
altamente compatible con Ingenierías. Pero la mayoría de
MATLAB. Disponible para alumnos no pueden usar el
Windows y GNU/Linux. software en sus ordenadores
personales.
Dónde
Encuentra todos los detalles sobre Octave UPM y enlaces para la descarga
en http://mat.caminos.upm.es/octave
Israel Herraiz, UPM ¿MATLAB? Yo uso Octave UPM 26/26