Encabezado Facultad de Ciencias
Presentación

Física (plan 2002) 2023-1

Primer Semestre, Computación

Grupo 8099, 26 lugares. 26 alumnos.
Profesor Sergio Antonio Alcalá Corona lu mi 13 a 14:30 Aula 1 de Computación en Física
Ayudante Sergio Ángel Sánchez Chávez
 

Introducción a las herramientas del cómputo científico (Computación).

El objetivo principal de este curso es que aprendan mucho, pero sobre todo que lo disfruten.

Objetivos particulares del curso:

Este curso pretende ser una introducción a las herramientas de Cómputo Científico usadas actualmente, en particular para la física. De esta manera, se persigue que los estudiantes sean capaces de usar la terminal de Linux (bash), diseñar e implementar algoritmos para resolver problemas relacionados al hacer ciencia (en lenguaje Python o Julia), así como analizar y visualizar datos (generados por modelos o experimentales) de forma clara.

Así también, se presentará una breve introducción al sistema de escritura y edición de documentos científicos LaTeX, con el objetivo de que los estudiantes sean capaces de escribir documentos en un formato científico profesional así como reportes para prcticas de laboratorio, tareas, etc.

Descripción General del curso.

El curso funcionará como un taller teórico-práctico donde los estudiantes adquieran y apliquen los conocimientos del mismo. La herramienta principal serán los cuadernos (notebooks) de Jupyter así como la plataforma Jupyter Lab.

El lenguaje de programación principal que se abordará en el curso será Python, sin embargo también se expondrá la sintaxis y uso del lenguaje Julia. Durante el curso se desarrollarán actividades semanales (prácticas entregables), en las que se plantea resolver computacionalmente problemas de física básica, cálculo, álgebra y geometría. Lo anterior tiene el objetivo de desarrollar y entender los conceptos del temario. Dichas prácticas se desarrollarán mediante cuadernos de Jupyter.

Asimismo, se introducirá y usará gradualmente el lenguaje de edición de textos LaTeX, así como el lenguaje Markdown para los cuadernos de Jupyter. De esta manera, los documentos por escrito deberán ser entregados tanto en formato PDF, acompañados del archivo fuente LaTeX.

Dado lo anterior, un requerimiento necesario para el curso será poder instalar Python, LaTeX y Jupyter.

Las clases comenzarán el día 15 de agosto de 2022. La reinscripción a este grupo (para estudiantes que recursarán la materia) será posible conforme a los tiempos que determiné la coordinación de la licenciatura y la división de estudios profesionales de la Facultad.

Metodología del curso.

Las sesiones se efectuarán en el horario de la clase que se encuentra publicado en la pagina de la facultad:
Lunes y Miercoles de 13:00 a 14:30 hrs.

Dichas sesiones serán teórico-practicas, y semanalmente se desarrollará una práctica que consistirá en la solución de algunos ejercicios y está se iniciará en clase pero se terminarán fuera de ésta (a modo de tarea). En general, la entrega de dichas prácticas (resueltas) serán a la semana siguiente.

El curso se apoyara en algunas herramientas de Google (for education), bajo la suite de la Facultad de Ciencias (@ciencias.unam.mx). Por lo que será un requerimiento necesario para el curso contar con una cuenta de correo @ciencias.unam.mx o al menos tener una cuenta de correo de Google (Gmail).

Se creará un aula virtual en la plataforma Google Classroom, en la que se colocará el material de las clases y cualquier otra información relevante sobre el curso. Ahí, también se colocarán las actividades a entregar (tareas, practicas, etc.) y se usará dicha plataforma para resolver dudas sobre las mismas. El código de acceso (a Google Classroom) será proporcionado via correo electrónico. Para la logística y comunicarnos en el curso usaremos el correo electrónico y un canal de Telegram.

Así también se creará un repositorio de Github con los cuadernos de Jupyter que contendrán el código expuesto en la clase. Se tratará en lo posible que estos sean accesibles en linea y fuera del horario de clase.

Si algún estudiante inscrito no proporciona su correo electrónico, se le enviará la información al correo electrónico el proporcionado por Servicios Escolares de la Facultad. Asimismo, el profesor y el ayudante estarán disponibles en los canales de comunicación para proporcionar ayuda con dudas que puedan surgir.

Temario

El temario oficial de la materia lo pueden encontrar en aqui. Sin embargo, la presente es una propuesta acorde a las necesidades de cómputo científico actuales. La exposición de dicho temario, no será lineal dado que todas las herramientas que veremos se complementan entre si. Así también el temario, podría tener algunas variaciones durante el transcurso del semestre.

1. Herramientas y entornos contemporáneas para el Cómputo Científico.

1.1 Jupyter

  • El ambiente JupyterLab
  • Jupyter notebooks (cuadernos de código).
1.2 Github
  • ¿Qué es Github y cómo se usa?
  • Abriendo una cuenta de Github
  • Respaldando mi código (git add, git commit, git push)
1.3 Introducción a la escritura de textos en LaTeX
  • Instalando Latex
  • Escribiendo un reporte en Latex
  • Markdown para cuadernos de Jupyter
  • Guardar un reporte en PDF y otros formatos.

2. Sistema Operativo Linux

  • Historia, Filosofía y estructura de Linux
  • Primeros Comandos básicos
  • Manejo de archivos y redireccionamiento de la salida
  • Atributos, Permisos, Procesos y Compresión.
  • Multiusuario y Red
  • BASH Scripts.

3. Programación (con Python y Julia)

3.1 Introducción a la Programación.
  • Algoritmos y Representación de Problemas
  • Paradigmas básicos de Programación
  • Estructura de básica de un programa

3.2 El lenguaje de programación Python (Julia)
  • Ventajas y desventajas de Python ( y Julia) sobre otros lenguajes de programación.
  • Interprete de Comandos Python (y Julia)
  • Manejo de tipos de variables tipos de datos.
  • Estructuras de datos básicas (listas, arreglos, matrices, pilas, etc.)
  • Estructuras de control básicas (for, if, while).
  • Manejo de entrada y salida
 de datos.
  • Funciones y subrutinas

  • Scripts y programación en Phyton (y Julia)
3.2 Introducción a la Modelación computacional de Sistemas Físicos
  • Cómputo científico con las bibliotecas Numpy, Pylab, y Scipy
  • Álgebra lineal y aplicación a sistemas físicos.
  • Modelando de sistemas de la mecánica clásica
  • Graficas usando Matplolib

4. Introducción a la Ciencia de Datos (si el tiempo lo permite)

  • Descarga y análisis de datos
  • La biblioteca panadas de Python
  • Uso de Pandas Dataframes
  • Visualización datos usando Matplolib

HORARIO:

Lunes y Miercoles de 13:00 a 14:30, comenzando el día 15 de agosto.

Primera sesión

La primera sesión en línea del curso se llevará a cabo el día lunes 15 de agosto a las 13:00 hrs.
En dicha sesión se abordarán aspectos sobre la forma de trabajo, detalles técnicos, generalidades y la forma de evaluación del curso, así también, se resolverán dudas sobre dichos puntos.

EVALUACIÓN

• Actividades (prácticas): 40%
• Examenes (prácticas): 20%
• Proyecto final: 40%
• Participación 10%
El proyecto final se presentará en la primera o segunda vuelta de exámenes. La idea es que dicho proyecto integre todo el conocimiento adquirido en el curso. Este consistirá en:
  • Un reporte escrito en LaTeX que contenga la teoría y el planteamiento del problema.
  • Un cuaderno de Jupyter que contenga el código del proyecto.
  • Una exposición ante el grupo.
El proyecto a realizar deberá quedar definido a más tardar 4 semanas antes de la ultima clase. Con el objetivo de que haya suficiente tiempo de trabajarlo. Se exploraran ideas y opciones para estos proyectos, pero este puede ser la resolución de un problema físico o matemático concreto, usando herramientas computacionales.

CONTACTO

Este es el enlace al Google Clasroom del curso:

https://classroom.google.com/c/NTI2NDY4MDc1Mjc2?cjc=zahwjiw

Cualquier duda y/o comentario, por favor no duden en escribirnos a los siguientes correos:

Sergio Alcalá: sergio.alcala@ciencias.unam.mx
Sergio Sanchéz: sergio_sanchez@ciencias.unam.mx

o a través del canal de comunicación de Telegram, que se establecerá para comunicación rápida y mensajes importantes del curso.
Este es el enlace: https://t.me/+lBSR3Ux0E8ozMTQz

Pueden ingresar a Telegram descargando la aplicación en su celular o desde una computadora, ya sea ingresando a web.telegram.org o descargando la aplicación de escritorio disponible en https://desktop.telegram.org/

 


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.