Skip to content

mavillan/scientific_programming

Repository files navigation

Programación Científica en Python

Este repositorio contiene el material (apuntes, notebook y códigos) de la asignatura Programación Científica en Python, dictado en el Departamento de Informática de la UTFSM.

Requisitos de entrada

  • Manejo y conocimiento de los lenguages Python y C.
  • Conocimiento del paradigma de Orientación a objetos.
  • Manejo del algebra lineal.
  • Conocimiento básico de Sistemas Operativos y Sistemas Linux/Unix.
  • (Recomendable) Conocimiento básico de Ecuaciones Diferenciales.

Objetivos de la asignatura

  1. Comprender el funcionamiento interno de Python en cuanto al uso y manipulación de arreglo numéricos.
  2. Desarrollar código optimizado para la resolución de problemas científicos.
  3. Analizar y detectar secciones críticas del código (cuellos de botellas) por medio de profiling.
  4. Crear gráficos que permitan entender y visualizar fenómenos de distinto tipo.
  5. Crear soluciones eficientes a problemas científicos reales.
  6. Hacer interfaces en Python de bibliotecas en C (Wrapping).

Sesiones

  1. Introducción a Anaconda, GIT, Ipython y Jupyter Notebooks.
  2. Computación Numérica (1): Programación vectorizada, NumPy y NumExpr.
  3. Computación Numérica (2): NumPy y manipulación de arrays de gran tamaño.
  4. Visualización: Matplotlib + Ipython Widgets.
  5. Acelerando Python con Numba: y compilación en tiempo real (JIT).
  6. Acelerando Python con Cython: Escribiendo C en Python.
  7. Profiling de códigos y optimización.
  8. Aplicaciones: Resolviendo problemas numéricos.
  9. (*) Paralelización en Python: Threads y IPython.Parallel.
  10. (*) Modulos de C a Python: Wrapping.

Evaluación

El sistema de evaluación será del siguiente modo:

nota final = 0.2 * asistencia + 0.5 * actividades en clases + 0.3 * proyecto final

Observaciones:

  1. Las actividades en clases serán evaluadas en el rango de 0-3 del siguiente modo: 0: No entrega, 1: Entrega, 2: Entrega pero no funciona del todo bien y 3: Entrega y funciona todo correctamente. Las soluciones deben ser subidas a un repositorio github.
  2. Los temas de proyectos se presentarán después de la 5ta sesión. Los alumnos tienen la posibilidad de proponer sus propios temas. Los proyectos son individuales.

Referencias

El material presentado en este repositorio esta basado en conocimiento propio, información encontrada en internet (referenciada en los notebooks) y los siguientes textos:

About

Lectures of Scientific Programming in Python at UTFSM

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published