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.
Se relizarán dos proyectos que se evaluarán de forma COMPLETAMENTE INDIVIDUAL, pero distribuidos en grupos de discusión y apoyo, si usted lo desea. Esto dará un sentido de comunidad para generar dialéctica y solución a pequeños problemas que los instructores no podamos resolver de inmediato.
El primero de estos proyectos tendrá un enfoque estríctamente física y será diseñado para permitir el estudio profundo de los fundamentos del lenguaje Julia. Por otro lado, el segundo permitirá elegir diversidad de tópicos en base a las respuestas de este formulario, en donde conoceremos los intereses y campos de profesión de cada uno de ustedes y poder brindarles proyectos afines a lo que aman.
11 al 26 de enero El curso se impartirá los días lunes, martes, jueves y viernes
6:00 pm - 8:00 pm en GMT -6 (Sujeto a cambio dentro del horario vespertino) Nota: Incluso en caso de no poder estar a la hora de la cátedra, ésta estará grabada a disponibilidad de todos los matriculados.
Se utilizará Discord como plataforma de anuncios, discusión de tópicos, preguntas instantáneas y comunicación general. Además, esto proveerá un espacio de interacción entre integrantes del grupo. Se utilizará YouTube para presentación de las cátedras y exposiciones.
- 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.
- Proyecto del área Física-matemática
- Proyecto de tópicos varios vistos en la segunda semana, dependientes de los intereses de los partícipes. --- Tópico especial (días 25/26) elegido por los integrantes de los grupos con proyectos mejor puntuados.
Para obtener el certificado del curso deberá cumplir con los siguientes requisitos:
- 80 % de asistencia a las clases.
- Presentación de las tareas o proyectos.