/Julia_Workshop_JFE

Repositorio de proyectos realizados durante el Workshop de Julia

Primary LanguageJuliaMIT LicenseMIT

Project-oriented workshop in Julia computing: Introductory module

DESCRIPCIÓN GENERAL

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.

DINÁMICAS DEL CURSO

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.

FECHA DE REALIZACIÓN DEL CURSO

11 al 26 de enero El curso se impartirá los días lunes, martes, jueves y viernes

HORA

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.

PLATAFORMAS

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.

TÓPICOS/BOSQUEJO DE SÍLABO

Primera semana

  • 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.

Segunda semana

  • 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)

Tercera semana

  • DÍA 9 Y 10 (LUNES Y MARTES): Decididos por los partícipes en base a sus perfiles e intereses.

PROYECTOS

  1. Proyecto del área Física-matemática
  2. 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.

REQUISITOS PARA OBTENER CERTIFICADO

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.