Encabezado Facultad de Ciencias
Presentación

Física (plan 2002) 2022-1

Séptimo Semestre, Física Computacional

Grupo 8274, 40 lugares. 27 alumnos.
Profesor Ricardo Atahualpa Solórzano Kraemer ma ju 15 a 18
Ayudante
 

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)

10 tareas = 60% Práctica = 10% Proyecto final = 30%

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.