.. -*- coding: utf-8 -*-

Software para esta clase
========================

.. index:: python, sage

Sage
::::

En esta clase, que versa sobre modelización con teoría de grafos y cadenas de
Markov, usaremos el software **Sage**, un programa de matemáticas de **software
libre** que combina el lenguaje de programación **python** con un buen número de
librerías de matemáticas y otras utilidades como un servidor web. 
Es gracias a esta última característica que podéis ejecutarlo desde un 
navegador, sin necesidad de instalar nada en vuestros ordenadores.

Como este software no se usa en otras asignaturas, podéis considerarlo opcional.
Ningún ejercicio obligatorio os requerirá usarlo, aunque probablemente lo
encontréis muy conveniente. Si al leer los apuntes queréis ignorar el código 
fuente que se muestra, podéis hacerlo, aunque os recomiendo que al menos lo 
leáis para haceros una idea de lo que hace y cómo. El lenguaje python es famoso
por ser especialmente fácil de leer, y las librerías que componen Sage son todas
de software libre, así que aunque nunca volváis a usar Sage, es muy probable 
que os volvais a encontrar con **graphviz**, **networkx** y otras librerías que
usaremos en esta clase, si alguna vez necesitáis trabajar con grafos.

Podéis hacer los ejercicios en Sage, en papel, o incluso en otro lenguaje de 
programación, pero en ese caso por favor habla con el profesor antes de hacerlo. 
En todos los ejercicios obligatorios, el ordenador puede ser de ayuda, pero no
es imprescindible.
Para el único ejercicio (opcional) que te pide explícitamente que escribas 
código, puedes usar incluso pseudo-código.

Servidor de Sage lestum
:::::::::::::::::::::::

Si no sólo queréis leer el código, sino además ejecutarlo vosotras, por ejemplo 
para probar variantes, podéis usar el servidor:

https://lestum.mat.uam.es

donde os he abierto cuentas a todas y podéis encontrar estas notas en versión
editable. Si no tienes cuenta, escribe a pablo.angulo arroba uam.es.
Una vez hayas hecho login, visita la sección *Published worksheets*, donde
encontrarás los apuntes de esta clase. 
Una vez abierto un archivo, tienes que hacer login y pinchar en *"edit a copy"* para poder editar una copia de la hoja publicada.

Si además queréis aprender a usar Sage, os recomiendo estos links:

 * `Ayuda de Sage <http://sagemath.org/help.html>`_
 * `Ayuda de Sage en vídeo (en inglés) <http://www.sagemath.org/help-video.html>`_
 * `Apuntes de *laboratorio de matemáticas* <http://web.uam.es/personal_pdi/ciencias/pangulo/doc/laboratorio/>`_
     + `Por ejemplo, para profundizar sobre grafos  <http://web.uam.es/personal_pdi/ciencias/pangulo/doc/laboratorio/b4s2.html>`_