4 Eventos en la primavera peruana
Contenido del curso
Antes de la Escuela y Conferencia de Primavera Peruano-Alemana sobre Computación Científica, se ofrecerá este curso de introducción a la computación científica implementada en el lenguaje de programación Python.
Durante el curso los asistentes conocerán el lenguaje de programación Python y las numerosas herramientas que ofrece para ayudar a los científicos en sus investigaciones. Python es actualmente uno de los lenguajes
más populares por ser de alto nivel fácil de usar, interpretado y su flexibilidad de interacción con otros lenguajes de alto rendimiento como C++ entre otros aspectos.
Primero se dará una introducción a la sintaxis, estructuras de datos, estructuras de control y creación de métodos en el lenguaje Python. Seguidamente, se presentará el módulo Numpy. Esta librería aporta herramientas
para operaciones vectoriales y matriciales además de otros procedimientos numéricos. Al mismo tiempo se mostrará el módulo scipy, centrando la atención en las diferentes soluciones computacionales que ambas bibliotecas brindan para
resolver ecuaciones diferenciales ordinarias, sistemas de ecuaciones lineales, integración numérica, así como métodos de optimización y otros procedimientos numéricos.
Por último, se presentará el módulo Matplotlib para la representación de figuras y gráficos científicos.
La dinámica del curso se basa en "aprender haciendo". Cada clase está preparada para tener pequeñas charlas, implementaciones demostrativas de Python y ejercicios de programación para los asistentes. Se asignará una pequeña tarea
a cada uno que deberá realizar por sí mismo y subirla al sitio web del curso. Cada tarea tiene como objetivo consolidar los conocimientos obtenidos durante el curso. A continuación, recibirán las sugerencias y correcciones
del profesor sobre cómo mejorar sus códigos.
Las demostraciones y sus implementaciones en Python se llevarán a cabo principalmente en la plataforma Google Colab. La misma permite escribir y ejecutar Python en el propio navegador sin
configuración adicional, acceso a recursos computacionales de forma gratuita y facilidad para compartir.
Inscripción
¡La inscripción para este curso ha quedado cerrada!
Acceso en línea
Las clases serán impartidas por medio de la plataforma de video-conferencia Zoom. Los accesos a esta plataforma ya están disponibles para los participantes registrados en cada uno de los eventos del calendario.
El código de acceso a la sala virtual ya ha sido enviado a todos los participantes a través de correo electrónico.
Programa
Las fechas de las clases se encuentran listadas en el siguiente calendario:
Usted puede descargar el calendario a través del siguiente enlace.
Materiales del curso
Clase #1: - Introducción a la programación en lenguaje Python
Clase #1: - Introducción a la programación en lenguaje Python
Detalles
En esta clase usted aprenderá las características lexicográficas, sintácticas y semánticas básicas del lenguaje Python
Enlaces importantes:
Usted podrá acceder a la clase publicada en Google Colab aquí
Discusión de los ejercicios de la clase:
Ejercicio #1:
Es bisiesto
Ejercicio #2:
Imprimir los primeros 10 números enteros
Ejercicio #3:
Patrón creciente
Ejercicio #4:
Suma de la serie numérica
Ejercicio #5:
Tabla de multiplicación del número n
Ejercicio #6:
Imprime la lista
Ejercicio #7:
Suma elementos de la lista
Ejercicio #8:
Suma y multiplica
Ejercicio #9:
Es Palíndromo
Ejercicio #10:
Es palíndromo recursivo
Ejercicio #11:
Es número primo
Ejercicio #12:
Secuencia de Fibonacci
Ejercicio #13:
Conjetura de Collatz
Ejercicio #14:
Revertir número
Ejercicio #15:
Contar ocurrencias de un número entero en una lista
Ejercicio #17:
Calculador de Pila
Tutoriales:
Manejo de .ipynb en Google Colab.
Montar una carpeta de Google Drive en Google Colab.
Forum interactivo:
Usted podrá acceder al forum al final de la clase a través del siguiente enlace:
Clase #2, #3: - Manejo de vectores y matrices en Python: Módulo Numpy
Clase #2: - Manejo de vectores y matrices en Python: Módulo Numpy
Detalles
Los vectores o arrays multidimensionales y matrices constituyen un pilar fundamental en el desarrollo de soluciones computacionales relacionadas con operaciones numéricas.
Cuando la información es representada en esta forma entonces se dice que está "vectorizada". Una de las grandes ventajas de la computación vectorial es que en gran medida
elimina la necesidad de usar ciclos explícitamente. O sea, las operaciones entre vectores son realizadas en un nivel más bajo de programación el cual suele ser mucho más eficiente.
Esto evita utilizar una de las grandes desventajas de un lenguaje interpretado como lo es Python: estructuras de control iterativas.
Enlaces importantes:
Usted podrá acceder a la clase publicada en Google Colab a través de los siguientes enlaces:
Discusión de los ejercicios de la clase:
Clase 2 Parte 2 Ejercicio 1
Evaluando una función en una rejilla.
Clase 2 Parte 2 Ejercicio 2
Simulando la ley de Darcy (2D)
Forum interactivo:
Usted podrá acceder a los forums al final de ambas clases a través de los siguientes enlaces:
Clase #4: - Álgebra lineal
Clase #4: - Álgebra lineal
Detalles
Existen formas disímiles de representar una matriz en Python. Los tipos de dato np.ndArray, np.Matrix y sympy.Matrix permiten hacerlo.
Utilizando estas clases se pueden realizar operaciones algebraicas simbólicas y numéricas de forma eficiente.
Enlaces importantes:
Usted podrá acceder a la clase publicada en Google Colab a través de los siguientes enlaces:
Forum interactivo:
Usted podrá acceder a los forums al final de ambas clases a través de los siguientes enlaces:
Clase #5: - Ecuaciones diferenciales ordinarias
Clase #5: - Ecuaciones diferenciales ordinarias
Detalles
Para la resolución de ecuaciones diferenciales ordinarias existe la función odeint que está implementada en el módulo scipy.integrate.
Esta constituye una interfaz simple que empaqueta las funciones de la biblioteca ODEPACK que se encuentra implementada en lenguaje FORTRAN.
Los métodos numéricos utilizados forman parte del paquete llamado LSODE.
Video Clase 5
(Será actualizado próximamente)
Enlaces importantes:
Usted podrá acceder a la clase publicada en Google Colab a través de los siguientes enlaces:
Forum interactivo:
Usted podrá acceder a los forums al final de ambas clases a través de los siguientes enlaces:
Proyectos evaluativos
Usted podrá evaluarse por medio de la resolución de alguno de los dos problemas presentados en los siguientes proyectos:
Fecha de entrega de proyectos
La entrega de los proyectos será hasta el día 31 de Julio de 2022 a las 11:59pm hora de PERÚ.
IMPORTANTE: La entrega de los proyectos NO es por medio de correo electrónico. Para ello se habilitará otro formulario para que coloque sus ficheros o indique la dirección de la hoja de cálculo de Google Colab donde desarrolló las soluciones.
Entrega de soluciones de proyectos
Usted podrá entregar la solución de su proyecto utilizando el formulario de entrega.
Constará con dos vías para el envío. La primera será comprimir todos los ficheros que conformen su solución en un único fichero .zip. En la segunda
variante usted podrá implementar su solución en Google Colab y compartirla directamente a través de la url del enlace. En el encabezado del formulario encontrará
usted más indicaciones de cómo realizar ambos procesos.
Ejemplos de proyectos resueltos
A continuación podrá usted encontrar ejemplos de soluciones para ambos proyectos:
Impartido por:
El curso fue impartido por
M.Sc. Dayron Chang Dominguez, investigador del
Instituto para el Análisis y la Numérica de la Universidad Otto-von-Guericke, Magdeburg Alemania.
Contacto
Para cualquier consulta que respecte al curso de Python no dude en contactar a Dayron Chang Dominguez.