para Ciencias e Ingenierías Horas : 36 horas 2. Presentación Esta presentación no busca simplemente presentar un curso. Estamos lanzando una plataforma de transformación técnica, un puente entre el conocimiento académico tradicional y las demandas concretas del siglo XXI. Un puente que conecta teoría con implementación, matemáticas con código, y pensamiento abstracto con soluciones reales. El título del presente curso es claro: Programación en Python para Ciencias e Ingenierías. Pero lo que encierra este título va mucho más allá de la sintaxis de un lenguaje de programación. Se trata de dotar a una nueva generación de científicos, ingenieros y analistas de un conjunto robusto de herramientas computacionales que les permita modelar, simular, optimizar, visualizar y tomar decisiones basadas en datos y modelos, con el rigor propio de las ciencias exactas y la agilidad propia de la era digital. Y todo esto se plasma en 12 sesiones intensivas de 3 horas cada una —un total de 36 horas de formación rigurosa, práctica y profundamente interdisciplinaria— que ustedes pueden ver detalladas en el contenido del presente curso. Pero antes de desglosar el contenido técnico, formulemos algunas preguntas : • ¿Cuántas veces han resuelto una ecuación diferencial parcial en clase... pero nunca la han simulado numéricamente? • ¿Han derivado mínimos cuadrados usando álgebra lineal... pero no saben cómo implementarlo desde cero en código? • ¿Conocen las series de Taylor... pero no han usado su aproximación para evaluar funciones trascendentales en un sistema embebido? Si esta realidad les suena familiar, entonces este curso es para ustedes. Porque hoy vivimos en un mundo donde la ciencia ya no se hace solo con lápiz y papel, sino con servidores en la nube, GPUs acelerando cálculos, pipelines automatizados y modelos predictivos que anticipan fenómenos físicos, biológicos o sociales. Y en ese nuevo paradigma, Python ha emergido como el estándar global del stack científico-tecnológico. Desde laboratorios del CERN hasta centros de investigación de Google DeepMind, desde startups de energía renovable en Chile hasta equipos de modelado epidemiológico en Brasil, Python es el hilo conductor que une teoría, experimentación y aplicación. No es una moda. Es una infraestructura cognitiva moderna. Y sin embargo, en muchas universidades de nuestro país —a pesar del talento innegable de sus estudiantes— existe una brecha crítica entre la formación teórica y las competencias prácticas en programación científica. Muchos egresados dominan el cálculo pero no saben cómo vectorizar operaciones con NumPy. Entienden la eliminación de Gauss-Jordan pero nunca la han implementado en un entorno controlado con Git. Conocen la transformada de Fourier pero no han usado scipy.fft para analizar señales reales. Esa brecha no es culpa del estudiante. Es una falla estructural del sistema educativo, que aún prioriza la memorización sobre la implementación, la teoría pura sobre la reproducibilidad computacional. Este curso busca cerrar esa brecha. No es un tutorial básico de Python. No es una introducción genérica a la programación. Este es un entrenamiento técnico de élite, diseñado con el rigor de un posgrado en ciencia de datos o
Está dirigido a quienes no quieren solo entender el mundo, sino programarlo. 3. Objetivo general del curso El objetivo general de este curso es formar profesionales técnicos altamente competentes en el uso del lenguaje de programación Python como herramienta fundamental para la resolución de problemas científicos y de ingeniería mediante métodos computacionales rigurosos, reproducibles y escalables. A través de un enfoque práctico, interdisciplinario y basado en estándares de la industria y la investigación moderna, el curso busca que los participantes integren conocimientos avanzados de matemática aplicada, álgebra lineal, cálculo numérico, análisis de datos y visualización científica con habilidades de programación estructurada y buenas prácticas de desarrollo de software. Al finalizar el curso, los estudiantes serán capaces de diseñar, implementar, validar y comunicar soluciones computacionales a problemas complejos típicos de las ciencias exactas, ingenierías y disciplinas afines, utilizando el ecosistema científico de Python (incluyendo Git, NumPy, SciPy, Matplotlib y otras bibliotecas clave) con un nivel de dominio técnico comparable al requerido en entornos académicos de posgrado, centros de investigación científica y equipos de ingeniería en empresas tecnológicas líderes. 4. Objetivos específicos del curso • Dominar el control de versiones con Git para entornos científicos y técnicos • Trabajar eficientemente con repositorios locales y remotos en entornos colaborativos • Utilizar NumPy como núcleo del cómputo científico en Python • Resolver sistemas de ecuaciones lineales mediante métodos directos e iterativos • Visualizar resultados científicos con calidad profesional usando Matplotlib • Formular y resolver problemas de regresión lineal mediante mínimos cuadrados • Aproximar funciones analíticas mediante series de Taylor y evaluar errores numéricos • Aplicar técnicas de optimización matemática con el módulo SciPy • Implementar técnicas de diferenciación numérica para derivadas ordinarias y parciales • Calcular integrales definidas mediante métodos numéricos robustos • Simular sistemas dinámicos mediante la solución numérica de ecuaciones diferenciales ordinarias (EDOs) • Analizar señales y fenómenos periódicos mediante la transformada de Fourier Objetivo Transversal: Integración de competencias técnicas y científicas • Integrar conocimientos de matemática aplicada, física y modelado con habilidades de programación científica. • Desarrollar una mentalidad de computational thinking: descomposición de problemas, abstracción, automatización y validación. • Fomentar la reproducibilidad científica mediante el uso combinado de Jupyter Notebooks, Git y buenas prácticas de documentación. • Preparar a los participantes para continuar aprendiendo autónomamente en áreas avanzadas como machine learning, inteligencia artificial, simulación Monte Carlo, métodos espectrales y cómputo paralelo. 5. Resultados de aprendizaje
de los problemas que se encuentran en áreas aplicadas • Utiliza pragmáticamente las técnicas enseñadas en clase para sus propias necesidades. 6. Metodología El desarrollo de las sesiones se efectuará mediante exposiciones del profesor, las mismas que se manejan en forma dinámica e interactiva con los alumnos, relacionando cada uno de los conceptos teóricos con casos prácticos. Asimismo, se aplicarán casos de estudio durante el desarrollo del curso con la finalidad de que los participantes resuelvan y presenten soluciones de acuerdo al esquema metodológico asignado por el profesor del curso. 7. Contenido por Clases : # DE HORAS CONTENIDO 3hrs. Introducción al Versionamiento de Software • Introducción a Git como herramienta de control de versiones. • Conceptos clave: repositorios, commits, branches, merges. • Creación de un repositorio local. • Realización del primer commit. • Verificación del historial de commits. 3hrs Trabajando con Repositorios • Creación, clonación y manejo de repositorios locales y remotos. • Comandos básicos: • Creación y manejo de branches • Creación de múltiples branches. • Realización de commits en diferentes branches. • Fusionar branches 3hrs. Introducción a numpy • Arrays de Numpy • Indexación de arrays numpy • Funciones y submódulos de Numpy • Lectura de archivos en numpy 3hrs Álgebra Lineal y Sistemas de Ecuaciones Lineales • Transformaciones lineales • Soluciones a Sistemas de ecuaciones lineales : ◦ Eliminación de Gauss ◦ Eliminación de Gauss-Jordan ◦ Descomposición LU ◦ Método Iterativo de Gauss-Seidel
Gráficos Básicos con Pyplot • Personalización Avanzada • Gráficos Avanzados : Subplots y Múltiples Gráficos 3hrs Regresión por mínimos cuadrados • Formulación del problema • Derivación usando álgebra lineal y cálculo multivariado 3hrs Series de Taylor • Expresando funciones usando series de taylor • Aproximaciones usando series de taylor • Discusión acerca de los errores por aproximación 3hrs El módulo scipy • Técnicas de Optimización Matemática y aplicaciones 3hrs Técnicas de Diferenciación Numérica 3hrs. Técnicas de Integración Numérica 3hrs Ecuaciones diferenciales ordinarias • Formulación del problema de valor inicial • Reducción de orden • Método de Euler 3hrs. La transformada de Fourier • DFT • FFT Prerrequisitos : 1. Conocimientos básicos sobre programación en Python 8. Bibliografía 1) Higham, N. J., & Mary, T. (2022). Mixed precision algorithms in numerical linear algebra. Acta Numerica, 31, 347-414. 2) Gill, P. E., Murray, W., & Wright, M. H. (2021). Numerical linear algebra and optimization. Society for Industrial and Applied Mathematics. 3) Trefethen, L. N., & Bau, D. (2022). Numerical linear algebra. Society for Industrial and Applied Mathematics. 4) Loehr, N. A. (2024). Advanced linear algebra. Chapman and Hall/CRC. 5) Gezerlis, A. (2023). Numerical methods in physics with Python (Vol. 1). Cambridge, UK: Cambridge University Press.
Society. 7) Pinsky, M. A. (2023). Introduction to Fourier analysis and wavelets (Vol. 102). American Mathematical Society. 8) Akujuobi, C. M. (2022). Wavelets and wavelet transform systems and their applications. Berlin/Heidelberg, Germany: Springer International Publishing.