Este taller introduce el lenguaje de programación Julia con un enfoque a realización de proyectos científicos e ingenieriles. atención a detalles de alto rendimiento.
Detalles del curso
El curso "Introducción a la programación aplicada en Julia", será un curso enfocado a proyectos cuyo desarrollo se dará en el lenguaje Julia. Éste es un lenguaje de propósito general creado por universidades líderes de academia e industria, enfocado fuertemente en el cómputo de alto rendimiento con aplicaciones en ciencias e ingenierías.
Se ha elegido Julia por el crecimiento rápido que ha tenido en el desarrollo de frontera de muchos campos y tener reunidas las características más deseadas de lenguajes populares:
- Dinámico (es decir, obtener retroalimentación del resultado de inmediato, como Python)
- Rápido, compitiendo con velocidades de C++ y Fortran
- De código abierto (a diferencia de C# y Mathematica)
- Especializado a limpieza de datos y modelaje estadístico (similar a R)
- Optimizado para cómputo científico (como MatLab/Octave)
- Capaz de realizar cómputo y modelaje científico (como Mathematica)
- Expresivo y poderoso con metaprogramación (similar a Ruby)
- Concurrencia y paralelismo como pilar del lenguaje.
Esto significa que todo un flujo de desarrollo de modelos y cálculos que previamente requerían aprender y utilizar múltiples lenguajes puede centralizarse en uno solo, con el beneficio añadido de tener una sintaxis y poder de expresión de un lenguaje de alto nivel, sin comprometer la velocidad.
Temario
- DÍA 1 (LUNES): Instalación del lenguaje y programas auxiliares, además de uso de Git/GitHub y especificaciones del primer proyecto
- DÍA 2 (MARTES): Diseño fundamental del lenguaje Julia, REPL, instalación de paquetes, tipos de datos primitivos y su jerarquía, funciones y sus propiedades (multiple dispatch, broadcasting, etc.)
- DÍA 3 (JUEVES): Bosquejo base del proyecto (para que los partícipes lo completen), estructuras de control, introducción a estructuras de datos
- DÍA 4 (VIERNES): Continuación de funciones, structs, mutabilidad, conversión y promoción.
- DÍA 5 (LUNES): Lectura y manipulación de archivos, dataframes, herramientas de gráficos, entrega del primer proyecto y anuncio del segundo.
- DÍA 6 (MARTES): Modelamiento de sistemas dinámicos con ecuaciones diferenciales (DifferentialEquations.jl), Álgebra lineal (LinearAlgebra.jl), Mediciones de experimentos (Measurements.jl)
- DÍA 7 (JUEVES): Bases de datos (JuliaDB.jl), manejo de puertos (SerialPorts.jl), HTTP requests (HTTP.jl)
- DÍA 8 (VIERNES): Cómputo de alto rendimiento, paralelización y concurrencia, expresiones y macros (metaprogramación)
- DÍA 9 Y 10 (LUNES Y MARTES): Decididos por los partícipes en base a sus perfiles e intereses.
Contacto
Contacto para información, consultas o comentarios relacionados con el curso o el proyecto Julia For Education aquí