Este curso de 20 horas tiene el objetivo de comprender las ideas clave del estándar de punto flotante IEEE a través del lenguaje de programación Julia para su uso adecuado como profesionales de las Matemáticas Aplicadas y Computación.
Está contenido dentro del Programa de Actualización y Superación Docente (PASD) Cursos de Licenciatura 2025, DGAPA, y está planeado como un curso presencial, del 12 de enero de 2026 al 16 de enero de 2026, 09:00 a 13:00hrs, impartido en el laboratorio de cómputo A-421 donde previamente se tendrá instalado el lenguaje de programación Julia. Si un participante desea llevar su equipo personal, indicaremos cómo instalar el software (ver en las pestañas de abajo).
50% Participación en clase.
50% Notebook generado en el curso.
Los notebooks utilizados y resultantes se enviarán al profesor inscrito mediante correo electrónico: christian.rubio@acatlan.unam.mx
El programa PASD solicita al menos el 80% de asistencia, una calificación aprobatoria y posterior al curso realizar el llenado de dos encuestas dentro del la plataforma de inscripción.
Se usó Brisk para la elaboración de las presentaciones.
Introducción
i) Historia y evolución de computación numérica
ii) Los números reales
iii) Representación de números en una computadora
iv) Se introduce el lenguaje de programación Julia y Notebooks
Manejo del punto flotante
i) Representación IEEE en punto flotante
ii) Redondeo
iii) Operaciones de punto flotante
iv) Funciones, arreglos y Markdown en Julia
Excepciones y computación
i) Excepciones
ii) Microprocesadores
iii) Lenguajes de programación
iv) Graficación en Julia
Cancelación y condicionamiento
i) Punto flotante en Julia
ii) Cancelación
iii) Condicionamiento de problemas
iv) Datos en Julia
Estabilidad
i) Estabilidad de algoritmos
ii) Cómputo de alta precisión
iii) Computo de baja precisión
iv) Conclusiones
Bibliografía consultada (se puede acceder desde bidi.unam)
Overton, M. L. (2002). Cómputo Numérico con Aritmética de Punto Flotante IEEE. Ed. SIAM.
Overton, M. L. (2025). Numerical Computing with IEEE Floating Point Arithmetic (2 ed). Ed. SIAM.
Bibliografía sugerida
Carrillo, T., López, A., Martínez S. & Olguín M., (2016). Métodos Numéricos I. FES Acatlán, UNAM.
Burden, R. & Faires, J. (2011). Análisis Numérico. Cengage Learning.
Cormen, T. H., Leiserson, C. E., Rivest, R. L., Stein, C. Cambridge. (2009). Introduction to Algorithms (3 ed). Massachusetts London, England: The MIT Press.
· En este curso se hará uso del lenguaje de programación de Julia ya que es un lenguaje de programación de alto nivel que ofrece una facilidad comparable a Python, pero una potencia y velocidad comparable al lenguaje C. Julia es un lenguaje de programación dinámico creado por el Departamento de Ciencias de la Computación del MIT en el año 2009; desarrollado por Jeff Bezanson, Stefan Karpinski, Viral B. Shah y Alan Edelman, liberado gratuitamente en 2012.
Karpinski, uno se su creadores, comenta que Julia empodera a científicos de datos, físicos, comerciantes de finanzas cuantitativas y diseñadores de robots para resolver problemas sin tener que convertirse en programadores informáticos o contratar programadores informáticos para traducir sus funciones en código informático, ver [D’Cunha, 2017]. Para ver la eficiencia de Julia en un gráfico, ver [JuliaLang.org-Contributors, 2023].
Actualmente Julia está en constante crecimiento. Para dimensionar esto, se tiene como referentes a las grandes compañias como Amazon, Apple, Disney, Facebook, Ford, Google, Blackrock, IBM, Microsoft o NASA, las cuales están contratando significativamente a programadores de Julia, ver [D’Cunha, 2017]. De acuerdo con GitHub, en 2017, Julia esta en el top 10 de lenguajes con mayor desarrollo dentro de su plataforma [Claster, 2017].
· Por otro lado, el proyecto Jupyter es un software de código abierto, gratuito y libre. Uno de sus productos es Jupyter Notebook que es un entorno interactivo basado en la web para crear documentos. Contiene una lista ordenada de celdas de entrada/salida para contener código, texto (incluyendo LaTeX), matemáticas o gráficos. Soporta entornos de ejecución, llamados núcleos, en varios lenguajes, tales como Julia, R o Python. Sus archivos usan la extensión .ipynb.
La interfaz computacional de Jupyter Notebook es similar a la interfaz de notebook de otros programas como Mathematica, Maple o SageMath que se originó con Mathematica en la década de 1980, ver [Somers, 2018].
La guía de instalación la haremos pensando en los usuarios de Windows ya que es el más usado. Julia se puede instalar en las versiones de Windows 7 y posteriores. La instalación de Julia es sencilla de acuerdo a liga a través de la terminal con el comando:
curl -fsSL https://install.julialang.org | sh
Si todo va bien, ya podremos ejecutar Julia, el cual abrirá una terminal. Para complementar la instalación frecuentemente requerimos instalar paquetes, pero esto lo veremos en clase.
Videos
El ingenioso ingenio de la calculadora Video
Complemento a 9 Video
Computadora de canicas Video
Computadoras de bombillas Video
Futuro de las Computadoras Video
Computadoras Analógicas Video
Conversor a puntos flotantes sitio
Algoritmo rápido de la raíz cuadrada Video
El Universo es hostil con las computadoras Video
Cortaduras de Dedekind Video