Python para Cálculo Científico y Técnico (XII ed.)
Lugar celebración
Universidad de Granada (Plataforma MoodleCloud).
Dirección
Pedro González Rodelas, Prof. Titular de Universidad
Coordinación
Francisco Miguel García Olmedo, Prof. Titular de Universidad
Duración
15 horas presenciales y/o síncronas online (de 16:30 a 19:00), más 15 horas asíncronas y 45 horas de trabajo autónomo del alumno
Introducción
No cabe la menor duda de que en muchas áreas de carácter científico-técnico la adecuada elección del software y/o lenguaje de programación empleado es determinante, de cara a la potencia, facilidad de uso, y acceso libre por parte de todos los usuarios en sus propios dispositivos.
No obstante, dentro del software libre, uno de los que últimamente ha tenido una mejora sustancial, con la inclusión de potentes y versátiles nuevos módulos de cálculo simbólico (SymPy), numérico/científico (NumPy, Scipy) y gráfico (PyPlot y Matplotlib) ha sido sin duda Python; y de ahí su vertiginosa evolución y expansión a nivel mundial, no sólo en el ámbito académico, sino también en el científico e industrial. De hecho, basta con echar un vistazo a las numerosas propuestas, tanto de comunidades de desarrolladores, como de empresas privadas surgidas a raíz de la versión de base inicial de Python; cabría destacar por ejemplo IPython (interface interactivo de fácil uso, que gracias al proyecto más general Jupyter Notebook permite una versión HTML similar a los notebooks de Mathematica o Maple) o Spyder (entorno integrado para cálculo científico parecido al de Matlab u Octave).
Por todo ello, creemos que este potente software de cálculo científico se encuentra en su máximo apogeo y con un nivel de madurez y versatilidad extraordinario, como para poder iniciar su exitosa incursión en el mundo científico-técnico español, tanto universitario como empresarial, y más concretamente en la Universidad de Granada.
El curso servirá pues para hacer más fácil y llevadera tanto la inmersión inicial, como el uso avanzado de muchos de los entresijos y detalles más técnicos de este potente y completo lenguaje de programación. Así pues estará orientado tanto a los estudiantes de carreras científico-técnicas y de ingeniería que quieran aprenderlo, como para los doctorandos e investigadores, a los que pueda resultar útil en su investigación.
Competencias del alumnado
a) El alumnado sabrá/comprenderá
- Las peculiaridades y diferencias fundamentales entre las distintas formas de programar: tanto en su forma procedural básica, o bien de tipo funcional, así como en su versión más avanzada (orientada a objetos).
- Las distintas estructuras de datos que se pueden usar en Python.
- El diálogo y significado de los errores básicos en el proceso de interpretación/compilación.
b) El alumnado será capaz de
- Descargar, instalar e interactuar con varias versiones y distribuciones de desarrollo con el lenguaje Python más extendidas de las disponibles actualmente.
- Buscar y revisar información relevante acerca de los distintos paquetes y funcionalidades del software.
- Realizar sus primeros programas con Python, así como interactuar con distintos entornos de programación, como Spyder e iPython (via Jupyter).
- Reconocer y usar algunos de los distintos paquetes externos que complementan la distribución básica de Python (NumPy, SciPy, SymPy, Pandas, matplotlib, etc.), así como su modo de instalación y aplicaciones fundamentales.
- Solucionar los errores surgidos en tiempo de interpretación/compilación.
Método de evaluación
- (10%) La asistencia/conexión a las sesiones, que será obligatoria en no menos del 75% de las sesiones presenciales/síncronas, que será controlada y monitorizada, tanto por el director como por el coordinador del curso, estando ambos disponibles en todo momento para atender dudas y poder solucionar cualquier problema que surja, tanto durante las sesiones síncronas como durante todo el resto del tiempo, hasta la completa finalización del curso También estará activo todo ese tiempo un grupo de Telegram, abierto exprofeso para tener una comunicación aún más ágil y rápida entre todos los participantes.
- (40%) La evolución continua de la persona inscrita, comprobada a través de la realización de cortas actividades, cuestionarios y ejercicios sencillos planteados sobre las explicaciones dadas, o los videos grabados y materiales proporcionados en la plataforma online elegida.
- (50%) La evaluación rigurosa de al menos una práctica completa, de envergadura suficiente como para poder valorar la capacitación en la materia, que deberá ser realizada en las horas no presenciales/síncronas y presentada en tiempo y forma a través de la plataforma elegida para la docencia.
Cualificación personal o empleos a los que da acceso
Curso capacitador para la programación en lenguaje Python.
Idiomas utilizados
Español
Viernes, 11 de octubre de 2024
(online de manera síncrona y/o presencial)
16:30-19:00 | Presentación/Resumen sobre: Introducción e historia del lenguaje Python. Distintas vías de instalación del software (tanto via pip, conda, o bien con alguna de las distribuciones multiplataforma más extendidas). Uso de Virtualenv. D. Pedro González Rodelas |
Desde el 11 al 18 de octubre de 2024
(online de manera asíncrona)
Título del material y vídeos desarrollados: Tipos y estructuras de datos: enteros, reales, listas, tuplas, strings, conjuntos y diccionarios. D. Francisco M. García Olmedo |
Viernes, 18 de octubre de 2024
(online de manera síncrona y/o presencial)
16:30-19:00 | Presentación/Resumen sobre las particularidades de la programación con el lenguaje Python D. Francisco M. García Olmedo |
Desde el 18 al 25 de octubre de 2024
(online de manera asíncrona)
Título del material y vídeos desarrollados: Programación procedural y de tipo funcional con Python. Funciones y módulos. Recursividad. Tratamiento de excepciones. D. Francisco M. García Olmedo |
Viernes, 25 de octubre de 2024
(online de manera síncrona y/o presencial)
16:30-19:00 | Presentación/Resumen sobre: Introducción a la programación Orientada a Objetos; planteamiento general y conceptos básicos. D. Francisco M. García Olmedo |
Desde el 25 de octubre al 15 de noviembre de 2024
(online de manera asíncrona)
Título del material y vídeos desarrollados: Técnicas de programación Orientada a Objetos: uso de clases, ejemplos de herencia, polimorfismo y encapsulación con el lenguaje Python. D. Francisco M. García Olmedo |
Viernes, 15 de noviembre de 2024
(online de manera síncrona y/o presencial)
16:30-19:00 | Presentación/Resumen sobre: Cálculo Simbólico/aproximado y representaciones gráficas con Python. D. Pedro González Rodelas |
Desde el 15 al 22 de noviembre de 2024
(online de manera asíncrona)
Título del material y vídeos desarrollados: Librería SymPy y módulo decimal. Aplicaciones. Librería Matplotlib y entornos Pyplot/Pylab), uso de bokeh y/o Mayavi para representaciones especiales. D. Pedro González Rodelas |
Viernes, 22 de noviembre de 2024
(online de manera síncrona y/o presencial)
16:30-19:00 | Presentación/Resumen sobre: Métodos numérico/estadísticos y de tratamiento de datos con Python. D. Pedro González Rodelas |
Desde el 22 al 29 de noviembre de 2024
(online de manera asíncrona)
Título del material y vídeos desarrollados: Librerías NumPy y SciPy, Rutinas y módulos de Álgebra Lineal (linalg), resolución de ecuaciones no lineales (bisect, fsolve), integración numérica (integrate, quad), resolución de ecuaciones diferenciales (odeint), interpolación (interpolate), ajuste de curvas (polyfit), optimización (optimize), transformadas de Fourier (fft), etc. Introducción a la librería Pandas; funciones y paquetes estadísticos (stats); usando código R con iPython, clustering y tratamiento de series temporales, etc. D. Pedro González Rodelas |
Viernes, 29 de noviembre de 2024
(online de manera síncrona y/o presencial)
16:30-19:00 | Presentación/Resumen sobre: Introducción a la programación orientada a eventos con Python usando QT como entorno gráfico. D. Andrés M. Roldán Aranda |
Desde el 29 de noviembre de 2024 en adelante
(online de manera asíncrona)
Título del material y vídeos desarrollados: : Introducción a la creación de widgets (librería Tkinter) e interfaces gráficas (wxPython, JPython) y a la gestión web con Python (uso de Flask). Combinando código Python con C, C++ y Fortran, adaptación de códigos MATLAB/Octave. Otras herramientas especiales: interacción con el SO y scripting, introducción al tratamiento de expresiones regulares, uso de LaTeX y generación automática de informes con gráficas usando Python. Introducción al Web Scraping y a TensorFlow para Deep Learning. D. Pedro González Rodelas y D. Alejandro E. Martínez Castro |