Depto. de Física, Fac. de Ciencias 4o. piso, Cubículo #3
e-mail: ata.kraemer@ciencias.unam.mx
telegram: @Ata0k
twitter: @Ata_Kraemer
Introduccion a la programación en Julia
Suma, división, funciones comunes (como sin y cos), etc.
Notación y operaciones de arreglos y matrices
Ciclos, for, while, if, etc
Creación de funciones propias
Gráficas e imágenes
Estructuras y objetos
Paqueterías útiles
Cálculo
Diferenciales numéricas
Derivadas simbólicas
Diferenciación Automática
Derivadas en varias dimensiones
Integrales 1D
Integrales de volumen
Integrales de linea
Interpolaciones y extrapolaciones
Álgebra
Mapeos (método babilónico para calcular la raiz cuadrada y otros mapeos)
Fuerza bruta (algoritmos ingenuos)
Método de Biseción
Método de Newton-Rapson
Intervalos
Ecuaciones Diferenciales
Algoritmo de Euler
Algoritmo de Euler en varias variables
Runge-Kutta
Algoritmos de pasos adaptativos
Otros algoritmos relevantes
Ejemplos
Métodos de Monte Carlo
Variables aleatorias (Caminantes aleatorios), distribuciones, funciones, etc.
Integración con Monte Carlo
Solución (probabilística) de ecuaciones en derivadas parciales
Algoritmo de Metrópolis (Fluido de esferas duras, Ising y Axelrot)
Ecuaciones en derivadas parciales
Diferencias finitas (ecuación de difusión y de calor)
Técnicas avanzadas (sólo teóricamente)
Temas extra:
Manejo de bases de datos
Paquetería CSV
Paquetería DataFrames
Representación de bases de datos como una imagen
Ejemplos de Covid y Crimen en México
Creación de Bots de Telegram
Creación de un bot
Introducción de meta-programación
Interacción usuario-Bot (envío y recepción de text, imagenes, documentos, videos, etc...)
Programas interactivos
Obserbables
Widgets
Acomodo de botones
Ejemplo
¿Hay algún prerequisito?
Sí, es necesario haber aprobado el curso de ecuaciones diferenciales, los cálculos, algebra para físicos (o superior), álgebra lineal, variable compleja y geometría analítica. También es muy recomendable haber llevado el curso de Termodinámica y el de Mecánica Analítica, aunque estos últimos no son indispensables.
Es necesario tener una computadora personal. No se puede trabajar desde tabletas, ni desde el celular.
Previo a inscribirse deben instalar Julia (lo pueden descargar de: https://julialang.org/). Si no lo logran instalar, este curso no es para ustedes.
¿Cómo serán las clases?
Habrá un classroom, que es la plataforma general para el curso. Ahí subiré tareas, videos, etc.
Las clases serán todas en video. Subiré aproximadamente 33h de clase, tanto de la teoría, como de ejemplos.
Además con cada tanda de videos habrá el notebook que utilicé para los videos y subiré una o dos tareas.
También habrá algunas sesiones sincrónicas donde programemos en conjunto. Es por lo tanto importante que reserven el tiempo del curso.
Subiré 4 notebooks con propuestas de prácticas a lo largo del semestre. Tendrás que realizar una de las prácticas, que se parece a las tareas, pero el tiempo de cómputo suele ser bastante más largo (o sea, su computadora estará trabajando más, ustedes no). De la práctica que elijas deberás subir un reporte (yo les pasaré la plantilla de Latex para hacerlo).
Finalmente habrá un grupo de Telegram si quieren preguntar cosas (que verán en general todos sus compañeros). Pueden escribir a cualquier hora y día, pero no esperen una respuesta tan pronta. Si alguno de los demás del grupo tiene una buena respuesta, puede contestar (se toma en cuenta en su calificación final la ayuda que ustedes mismos se den). Es importante que te unas al grupo de Telegram, porque realmente es donde más rápido fluye la información, aunque todos los anuncios importantes estarán en el classroom.
Calificación
La calificación se basará en tareas, una práctica y un proyecto final.
10 tareas en total + 1 práctica (con reporte) + 1 proyecto final (con exposición)
Pueden (y deben) hacer equipos de 2 personas para resolver las tareas y la práctica. Los proyectos finales pueden ser en equipos más grandes, pero se espera en ese caso un mucho mejor proyecto.
Sobre las tareas, cada problema se califica con 0, 0.5 o 1. En general los problemas implican hacer código. Si su código no corre, tienen automáticamente 0. Si corre, se revisa lo que arroja. Si el resultado está bien, se revisa el código, si es comprensible (siguen buenas prácticas de programación) tienen 1, si no tienen 0.5. Si en cambio, el resultado que arroja su código es erroneo, tienen 0.5 si siguieron buenas prácticas de programación, tienen 0 si no.
Sobre las buenas prácticas de programación subiré un documento al classroom donde están marcadas cuales son. La mayoría son muy objetivas, excepto quizá lo que se refiere a nombrar variables y funciones, pero creo que irá quedando claro a lo largo de los videos.
Si no hay motivos reales para poner NP (la pandemia otra vez nos afecta mucho, otro temblor, otro paro de meses, etc...) no pondré NP. Por supuesto, seré comprensivo, pero tendrán que justificar bien si quieren NP.
No se inscriban si no tienen toda la intensión de trabajar intensamente en este curso. Aprenderán mucho, pero no será fácil.
Hecho en México, todos los derechos reservados 2011-2016. Esta
página puede ser reproducida con fines no lucrativos,
siempre y cuando no se mutile, se cite la fuente completa y
su dirección electrónica. De otra forma requiere permiso
previo por escrito de la
Institución.
Sitio web administrado por la Coordinación de los Servicios
de Cómputo de la Facultad de Ciencias. ¿Dudas?,
¿comentarios?. Escribenos.
Aviso de privacidad.