Aspectos importantes. Antes de comenzar...
1. ¿Qué es PyGgb?
Muchos esperábamos una herramienta que nos permitiera programar construcciones geométricas en Python de forma sencilla. Los desarrolladores de GeoGebra se encargaron de ello. El tan esperado matrimonio entre Python y GeoGebra se ha hecho realidad.
PyGgb es una aplicación web que combina el poder de Python y GeoGebra. Es una plataforma que permite a los usuarios escribir código en Python y obtener resultados visuales mediante GeoGebra, un software de matemáticas dinámicas. PyGgb no está diseñado para enseñar GeoGebra, sino para usarlo como un motor gráfico que ayuda a visualizar los resultados de Python.
- Objetivos principales:
- Crear un entorno para la enseñanza de programación en Python utilizando GeoGebra como motor visual.
- No se requiere tener conocimientos avanzados de GeoGebra para su uso.
- A los usuarios se les anima a "hacerlo a la manera de Python", sin depender de los menús de GeoGebra, profundizando en la construcción y la comprensión de los algoritmos.
2. Desarrollo de PyGgb
Esta vez, los desarrolladores de GeoGebra se encargaron de ello. El esperado matrimonio entre Python y GeoGebra ya es una realidad y, aunque en versión beta, nos promete cosas muy buenas.
El proyecto PyGgb está en continuo desarrollo y cuenta con la colaboración de la comunidad a través de plataformas como GitHub y Reddit. Los usuarios pueden reportar errores, sugerir mejoras y contribuir al código.
- Enlaces de interés:
- GitHub: https://github.com/geogebra/pyggb
- Reddit: https://www.reddit.com/r/pyggb
3. Interfaz de usuario
La interfaz de PyGgb permite a los usuarios escribir código en Python y ver los resultados inmediatamente en la vista gráfica de GeoGebra.
PyGgb no es más que un IDE (Integrated Development Environment) de Python que integra una librería de Python que permite interactuar con los comandos y objetos de GeoGebra.
La interfaz es minimalista y sencilla: a la izquierda, una ventana de programación (editor Python) y a la derecha, la interfaz gráfica (GeoGebra). Debajo de ella, la consola que podrá mostrar resultados no gráficos, pero que no le permite ingresar instrucciones.
Estas ventanas no son redimensionables, lo que es una pena: en una pantalla grande, nos gustaría ampliar la ventana gráfica. Es dinámico, pero no tiene menú (no es posible, por ejemplo, ocultar los ejes o la cuadrícula con un solo clic) y no es posible hacer clic con el botón derecho en los objetos (simplemente puede seleccionarlos para moverlos). Solo tenemos 3 botones: acercar, alejar y volver a la vista inicial (origen centrado en la ventana).
Es fácil entender que se trata sobre todo de programar, no (o poco) de interactuar manualmente con los objetos.
- Estructura de la ventana: Está dividida en tres secciones clave:
- Editor de código: Aquí es donde se escribe el código Python, que luego se ejecuta para visualizar las salidas matemáticas.
- Vista gráfica de GeoGebra: Muestra los gráficos y representaciones visuales basados en las funciones matemáticas programadas.
- Salida por consola: Debajo de la vista gráfica, PyGgb también incluye una consola que muestra el resultado de la ejecución del código Python.
4. Posibilidades didácticas
PyGgb tiene un alto potencial para ser utilizado en entornos educativos, ya que permite a los profesores enseñar conceptos matemáticos complejos mediante la combinación de la programación en Python y la visualización gráfica con GeoGebra. Los estudiantes pueden beneficiarse de la representación visual de las matemáticas y de la retroalimentación inmediata.
- Ejemplos de uso en el aula:
- Resolver ecuaciones algebraicas y visualizar las soluciones.
- Graficar funciones y analizar sus propiedades (derivadas, intersecciones, etc.).
- Modelar problemas matemáticos aplicados y ver las soluciones en tiempo real.
- (...)
5. ¿Qué es Python y por qué ha sido el elegido para PyGgb?
En la actual era de la Inteligencia Artificial (IA) y el procesamiento masivo de datos (BigData), la elección del lenguaje de programación con el que vas a programar tus algoritmos o con el que vas a aprender a programar es una decisión estratégica que puede marcar la diferencia entre el éxito y el estancamiento.
En este escenario, Python se destaca como el líder indiscutible, superando a otros lenguajes en virtud de sus características únicas y su capacidad para abordar los desafíos más complejos que se van abriendo día a día con la aparición de nuevas tecnologías, y algoritmos más complejos.
¿Python es un lenguaje nuevo?
Aunque pueda sorprender a algunos, Python no es un recién llegado al mundo de la programación. Su desarrollo comenzó a finales de los 80, y la primera versión, Python 0.9.0, se lanzó en 1991. A lo largo de las décadas, este lenguaje ha evolucionado constantemente, adaptándose a las cambiantes necesidades de la tecnología.
A pesar de su historia extensa, Python mantiene una frescura y relevancia notables debido a sus actualizaciones regulares, a una comunidad activa y a su continua adopción en campos pioneros como la Inteligencia Artificial y el Big Data.
¿Por qué Python lidera como lenguaje preferido para la IA?
Python ha emergido como el lenguaje insignia en el ámbito de la Inteligencia Artificial (IA), y esta prominencia se sustenta en sus características distintivas que lo diferencian de otros, y han hecho que sea la base para nuevos lenguajes específicos para IA, como el Lenguaje Mojo que es un superconjunto de Python.
Figura: Lenguajes de programación más populares en la encuesta hecha por Anaconda
El equipo de la popular herramienta de Machine Learning Anaconda, hizo una encuesta global a sus usuarios sobre los lenguajes de programación que utilizaban, y por supuesto, Python salió como el más popular.
Python es el lenguaje principal utilizado en PyGgb, y se selecciona por todo lo expuesto, destacando su facilidad de uso y flexibilidad. Las funciones matemáticas programadas en Python se visualizan de inmediato utilizando GeoGebra, lo que ofrece una poderosa combinación para enseñar conceptos tanto de programación como de matemáticas.
- Claridad del código: La legibilidad de la sintaxis de Python permite una rápida implementación de algoritmos complejos, convirtiéndolo en la elección ideal para el desarrollo ágil en múltiples campos, entre ellos la IA.
- Ecosistema: Su ecosistema de librerías especializadas brinda a los desarrolladores herramientas poderosas.
- Flexibilidad: La versatilidad de Python es evidente en su capacidad para adaptarse a una variedad de enfoques, desde el procesamiento de lenguaje natural hasta la visión por computadora.

- Características de Python:
- Interpretado: El código se ejecuta línea por línea, lo que facilita la depuración y el aprendizaje.
- Legible: La sintaxis clara y limpia de Python lo hace ideal para principiantes.
6. Documentación
La documentación sobre PyGgb es escasa, aunque contamos con dos fuentes importantes en diferentes idiomas.
- Documentación disponible:
7. Salidas de PyGgb
La aplicación PyGgb permite obtener salidas visuales a través de GeoGebra que representan conceptos matemáticos complejos de forma gráfica. Estas salidas incluyen figuras y construcciones geométricas, gráficas de funciones, tangentes, derivadas, áreas bajo la curva y más.
- Tipos de salida:
- Funciones matemáticas.
- Construcciones y representaciones geométricas: visualización de puntos, rectas, polígonos...
8. La aportación de Python a GeoGebra
Conocer los comandos y funciones que permiten crear e interactuar con objetos gráficos es un primer paso importante, y volveremos sobre esto más adelante. Pero, por supuesto, lo más importante aquí, el poder de PyGgb, es poder usar el lenguaje Python para crear una construcción: bucles, condicionales, el uso de funciones... las posibilidades son infinitas.
Para empezar, es importante recordar que estamos en un entorno Python, funciones como sqrt(), floor() o randint() tendrán que ser llamadas en sus respectivas librerías antes de poder ser usadas.
He aquí un ejemplo de programa (obtención del triángulo de Sierpinski por el método del juego del caos) que puede utilizarse desde 4ºESO en adelante, aproximadamente.
Triángulo de Sierpinski. Juego del caos
# Inspiración: https://es.wikipedia.org/wiki/Juego_del_caos
# Importamos librerías
from random import randint
from time import sleep
# Vértices del triángulo: valores de sus coordinadas y puntos
xA,yA,xB,yB,xC,yC = -8,0,8,0,0,14
A = Point(xA,yA,size=4,color="red")
B = Point(xB,yB,size=4,color="red")
C = Point(xC,yC,size=4,color="red")
# Lógica
xM = randint(-8,8)
yM = randint(0,14)
def nuevopunto(x,y):
n=randint(1,3)
if n==1:
xnew = (xA+x)/2
ynew = (yA+y)/2
elif n==2:
xnew = (xB+x)/2
ynew = (yB+y)/2
else:
xnew = (xC+x)/2
ynew = (yC+y)/2
return (xnew,ynew)
# Definimos el número de puntos
for i in range(1000) :
xM,yM = nuevopunto(xM,yM)
M = Point(xM,yM,size=4,color="red")
sleep(0.02)
9. Familiarizándonos con la herramienta
Pronto te darás cuenta de lo fácil que es utilizar esta herramienta. Es perfectamente posible realizar esta construcción utilizando Python en un IDE estándar y la biblioteca Matplotlib, por ejemplo.
Pero, en este caso, el programa se vuelve rápidamente más complejo para los estudiantes que son nuevos en Python. PyGgb de momento no ha incorporado las múltiples pero a la par puede que engorrosas bibliotecas de visualización disponibles en Python para programadores avanzados,
PyGgb permite obviamente el uso de un gran número de librerías de Python. Las principales son:
Array, Bisect, Collections, Copy, Dateline, Functools, Image, Itertools, Math, Numbers, Platform, Sys, Random, RE, Signal, String, Textwrap, Time, Webbrowser.
,
Este libro GeoGebra, en español, de José Pérez, muestra muchos usos posibles para estas bibliotecas y sus funciones: https://www.geogebra.org/m/mvcy7r23
La dificultad de familiarizarse con lo que promete ser una gran herramienta para abordar la programación en secundaria desde un nuevo punto de vista es saber qué funciones o comandos vamos a poder utilizar.
- Empezando por lo más sencillo: ¿cómo se crea un punto?
9. Comandos más habituales. Comandos de Geogebra que funcionan
Revisando estos programas, puedes hacerte una idea de lo que es posible y crear un pequeño glosario de comandos. Eso es lo que yo hecho, lo que recomiendo, y lo que han hecho la mayoría de los compañeros que han comenzado a usar esta herraienta.
También he probado una serie de comandos de GeoGebra para ver si eran aceptados como funciones en PyGgb. Aquí están los resultados de estas pruebas que, aunque están lejos de ser exhaustivas, ahorrarán tiempo a cualquiera que quiera empezar. Para los propósitos de este artículo, sólo he probado los comandos que interactúan con la ventana gráfica (2D).
Para empezar, aquí hay algunos comandos de GeoGebra que los usuarios habituales del software estarán contentos de encontrar. Una vez más, el objetivo aquí no es darle una visión completa de las funciones disponibles de PyGgb, sino darle una visión general para que pueda empezar a usarlo. Estos comandos están en inglés y no entraré en detalles aquí sobre cómo usarlos.
El sitio web https://wiki.geogebra.org/en/Commands los enumera y explica todos (en su uso en GeoGebra: puede haber diferencias en PyGgb). Aquí tienes una lista de los principales comandos de GeoGebra que funcionan en PyGgb y que son útiles para tareas matemáticas y visualización:
- Comandos:
9. Cómo profundizar en PyGgb e integración en el aula
PyGgb es una herramienta muy versátil, y puedes aprovechar al máximo sus capacidades combinando lo mejor de Python y GeoGebra.
Aquí hay algunas recomendaciones para profundizar en su uso:
- Aprende GeoGebra a fondo.
- Explora más comandos de Python.
- Colabora y participa en la comunidad.
- Aplica PyGgb en proyectos educativos.
- Introducción a la programación.
- Lecciones interactivas de matemáticas.
- Proyectos colaborativos.