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.
Sign in to Google to save your progress. Learn more
SONDEO DE CONOCIMIENTOS TÉCNICOS
PROPÓSITO: Entender el nivel base de conocimiento para organización de los grupos
¿Qué tanto considera que sabe de programación? (en cualquier lenguaje de programación) *
¿Qué tanto considera que sabe de matemática? *
¿Qué tanto considera que sabe de física? *
SONDEO DE CONOCIMIENTOS TECNOLÓGICOS
PROPÓSITO: Entender el nivel base de conocimiento para organización de los grupos
¿Sabe qué es git y github? *
¿Qué sistema operativo utiliza la mayoría del tiempo? *
NOTA IMPORTANTE: La comprensión de todo el material del curso es independiente del sistema operativo, no obstante, se impartirá completamente en Linux. Las explicaciones de procesos claves como la instalación del lenguaje y paquetes se darán para Windows y macOS, pero es recomendable que en la medida de lo posible se intente utilizar un sistema operativo Linux.
Marque todos los lenguajes de programación de los cuales MANEJA al menos lo BÁSICO: *
Required
SONDEO DE INTERESES GENERALES
PROPÓSITO: Entender el nivel base de conocimiento para organización de los grupos
Seleccione de la lista todos los tópicos/áreas en que ha trabajado o le llama la atención trabajar: *
Esto es con el propósito de identificar experiencia e intereses de los inscritos y personalizar los últimos proyectos, así como días bonus de cátedra hacia los tópicos más solicitados.
Required
OPCIONAL: Coméntenos un poco sobre el porqué de su elección anterior. ¿Combinaría dichas áreas en un sólo proyecto? ¿Cómo?
INSCRIPCIÓN FORMAL AL CURSO
Nombre COMPLETO (Éste irá en el certificado) *
Por favor verificar que su nombre este correctamente escrito. Ya que este será colocado en el certificado del curso.
Correo Electrónico *
Colocar el correo electrónico que mas utiliza. Este servirá para comunicar información previa a iniciar el curso y de los certificados.
Carrera Universitaria *
En caso de aún estarla cursando, contestar dicha carrera en curso. En caso de aún no haber entrado a la universidad, especificar último grado profesional/académico adquirido.
Nombre de la universidad en la que estudió *
Elija a la organización a la que pertenece (ya sea como miembro, estudiante, profesor, etc.) *
País de origen *
Edad: *
Submit
Clear form
Never submit passwords through Google Forms.
This content is neither created nor endorsed by Google. Report Abuse - Terms of Service - Privacy Policy