Python avanzado para Tratamiento de Datos e Inteligencia Artificial (IV ed.)
Modalidad de celebración:
Plataforma MoodleCloud (La dirección del curso contactará con ustedes por correo electrónico con la debida antelación para facilitarles la forma de conexión, así como las directrices que consideren necesarias para el correcto seguimiento del curso.)
Duración:
15 h síncronas (de 16:30 a 19:00 horas) + 15 h asíncronas (en total 30 h online) y 45 h de trabajo autónomo del alumno. Horas totales 75.
Dirección:
Pedro González Rodelas (Prof. de la Univ. Granada)
Coordinación:
Fco. Miguel García Olmedo (Prof. de la Univ. Granada)
Posibilidad de reconocimiento de créditos:
Nota: La información sobre el reconocimiento de créditos, puede consultarse en el siguiente enlace: reconocimiento de créditos
Este curso será reconocido en los siguientes Grados de la Universidad de Granada (hasta el momento):
3 créditos ECTS OPTATIVOS en la Facultad de Ciencias del Deporte en el Grado en Ciencias de la Actividad Física y del Deporte
2 créditos ECTS OPTATIVOS en la Facultad de Comunicación y Documentación en el Grado en Comunicación audiovisual
1 créditos ECTS OPTATIVOS en la Facultad de Comunicación y Documentación en el Grado en Información y Documentación
3 créditos ECTS OPTATIVOS en la ETS de Ingeniería de Caminos, Canales y Puertos en el Grado en Ingeniería Civil
3 créditos ECTS OPTATIVOS en la ETS de Ingeniería de Edificación en el Grado en Edificación
1,5 créditos ECTS Optativos en la Facultad de Ciencias en los Grados:
Doble Grado en Física y Matemáticas
Grado en Biología
Grado en Bioquímica
Grado en Biotecnología
Grado en Ciencias Ambientales
Grado en Estadística
Grado en Física
Grado en Geología
Grado en Electrónica Industrial
Grado en Ingeniería Química
Grado en Matemáticas
Grado en Óptica y Optometría
Grado en Química
No cabe la menor duda de que hoy en día la mecanización de tareas repetitivas y tediosas, así como el tratamiento y procesamiento intensivo de datos es uno de los hitos fundamentales de la sociedad de la información y de la era del Big Data.
Por otra parte, la continua evolución del mercado y la rápida convergencia entre la información y el conocimiento hace que tanto las empresas como los organismos de investigación busquen nuevos mecanismos tecnológicos para generar un valor diferencial de desarrollo, fomentando el uso de nuevas tecnologías de la información para mejorar la eficiencia operativa de la investigación, calidad de productos y/o servicios personalizados que transformen el comportamiento de los usuarios, generando a su vez nuevos modelos de negocio.
Nosotros, los profesores participantes en esta iniciativa, tenemos una experiencia de más de 20 años usando lenguajes de programación y software de todo tipo, tanto libre como de tipo propietario; y podemos afirmar que cada uno de ellos posee sus ventajas e inconvenientes, pudiéndose adaptar mejor uno u otro a distintas tareas concretas.
No obstante, dentro del software libre, uno de los lenguajes que está teniendo de manera continuada una subida espectacular en cuanto a popularidad a nivel mundial, a la vez que ha tenido una mejora sustancial, con la inclusión y actualización de potentes y versátiles nuevos módulos de cálculo simbólico (SymPy), numérico (NumPy, Scipy), gráfico (Matplotlib, Seaborn, Bokeh), de tratamiento y ciencia de datos (Pandas, Openpyxl), Machine & Deep Learning (TensorFlow, PyTorch, scikit-learn, Pybrain, PyML), e Inteligencia Artificial en general (AIMA, pyDatalog, SimpleAI, EasyAI, etc.) 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, como por ejemplo IPython (interface interactivo de fácil uso, que gracias a Jupyter Notebook permite una versión HTML similar a los notebooks de Mathematica o Mapple) o Spyder (entorno integrado para cálculo científico parecido al de Matlab u Octave).
Por otro lado existen versiones completas de desarrollo, integrando Python como soporte de cálculo, pero con editores avanzados de texto para la programación y la depuración de código, ventanas de gráficos y datos, etc. La mayoría de estas plataformas integradas están disponibles para los distintos sistemas operativos Linux, MacOS X y Windows. Entre ellas cabría destacar Enthought Python Distribution (EPD), PyCharm y Anaconda CE (de Continuum Analytics).
Aparte de todo esto, se dispone ya de una gran cantidad de ejemplos, así como material de apoyo: manuales, libros, blogs y páginas web desarrollados por numerosos científicos y profesores de todo el mundo, siendo tan ingente dicho material que a veces resulta complicado realizar una selección del mismo para poder empezar.
Y de ahí surge esta iniciativa de formación para todo el que estuviera interesado en aprender a usar estas potentes herramientas para su uso personal a nivel de investigación y desarrollo.
El curso servirá pues para hacer más fácil y llevadera tanto la inmersión inicial en la Ciencia de Datos y la Inteligencia Artificial en general, como para el uso avanzado de muchos de los entresijos y detalles más técnicos de este potente y completo lenguaje de programación cuando se aplica para la mecanización de tareas informáticas rutinarias, como la generación automática de informes, gestión de ficheros y equipos, webscraping, etc. Así pues estará orientado tanto a los estudiantes de carreras científico-técnicas y de ingeniería que quieran aprender estas técnicas, como para los doctorandos e investigadores, a los que pueda resultar útil en su investigación.
No obstante, en esta situación totalmente excepcional provocada por la actual pandemia de la COVID-19, que amenaza con la posibilidad de nuevos rebrotes a nivel general, y especialmente en el ambiente universitario, hemos optado por reconfigurar esta nueva edición del curso de manera que se pueda seguir y cursar de manera totalmente online, reduciendo al mínimo las horas síncronas, o posiblemente presenciales, a una mera orientación previa de cada sesión o alguna que otra tutoría grupal, que se podría realizar presencialmente sólo en caso de que fuese solicitada por un grupo suficientemente numeroso de alumnos y las condiciones sanitarias del momento y la disponibilidad del aula apropiada en un centro de la UGR lo permita.
a) El alumno sabrá/comprenderá:
• La importancia y peculiaridades concretas de este potente lenguaje de programación de cara a la posible mecanización de tareas informáticas de todo tipo.
• Las diferencias fundamentales entre las distintas formas de programar con Python: tanto en su forma procedural básica, de tipo funcional, así como en su versión más avanzada (orientada a objetos).
• El diálogo y significado de los errores básicos en el proceso de compilación.
• Las técnicas más importantes de webscraping, o de extracción automática o semi-automática de información desde Internet.
• Alguna de las posibilidades fundamentales que también posee este lenguaje para implementar y poner en funcionamiento diferentes estrategias de aprendizaje automático (Machine Learning), profundo (Deep Learning) o de Inteligencia Artificial (I.A.), en general
b) El alumno será capaz de:
• Descargar, instalar e interactuar con varios de los módulos de Python especialmente desarrollados para las tareas y técnicas incluidas en el programa del curso.
• Mecanizar muchas de las tareas informáticas repetitivas y algo tediosas que normalmente tiene que realizar en su quehacer diario.
• Buscar, descargar y revisar ficheros de todo tipo e información relevante para su trabajo o proyectos personales que esté disponible en Internet.
• Organizar con sus datos de manera flexible y versátil, mediante el uso de Pandas y las herramientas para interactuar con ficheros Excel, CSV, etc.
• Realizar sus primeros programas con Python relacionados con el aprendizaje automático/profundo o la Inteligencia Artificial en general
La evaluación se llevará a cabo basándose en:
• La asistencia/conexión, que será obligatoria en no menos del 75% de las sesiones presenciales/síncronas.
• La evolución de la persona inscrita, comprobada a través de la realización de cortas actividades y ejercicios sencillos planteados sobre las explicaciones dadas o los videos grabados y materiales proporcionados en la plataforma online elegida..
• 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 para la docencia elegida.
Cualificación personal o empleos a los que da acceso:
Curso capacitador para la programación avanzada en lenguaje Python, Webscraping, Ciencia de Datos y Deep Learning.
Viernes, 4 de marzo de 2022 (online de manera síncrona y/o presencial)
16:30-19:00 | Presentación/Resumen sobre: Uso avanzado de los entornos de desarrollo (IDEs) más empleados: Jupyter notebook, Spyder, terminal de consola etc. Distintas vías de instalación de módulos y extensiones (tanto via pip como conda). Uso de entornos virtuales (Virtualenv, pyenv, venv, …). Pedro González Rodelas |
Desde el 4 al 11 de marzo de 2022 (online de manera asíncrona)
Título del material y vídeos desarrollados: Programación avanzada con Python: tanto de tipo procedural, como funcional y orientada a objetos. Tratamiento de excepciones. Depuración y optimización de código. Evaluación del rendimiento Francisco M. García Olmedo |
Viernes, 11 de marzo de 2022 (online de manera síncrona y/o presencial)
16:30-19:00 | Presentación/Resumen sobre: Búsqueda de patrones con expresiones regulares y sustitución de cadenas de caracteres. Ejemplos prácticos Francisco M. García Olmedo |
Desde el 11 al 18 de marzo de 2022 (online de manera asíncrona)
Título del material y vídeos desarrollados: Mecanización de tareas informáticas comunes: gestión automática de descarga, manipulación y lectura/escritura de ficheros. consultas web, etc Francisco M. García Olmedo |
Viernes, 18 de marzo de 2022 (online de manera síncrona y/o presencial)
16:30-19:00 | Presentación/Resumen sobre: Introducción al Web Scraping. Uso de BeautifulSoup para acceso web a ficheros HTML, XML, JSON, etc. Sergio Alonso Burgos |
Desde el 18 al 25 de marzo de 2022 (online de manera asíncrona)
Título del material y vídeos desarrollados: Herramientas avanzadas de Web Scraping y análisis de páginas dinámicas (Javascript) con Selenium Sergio Alonso Burgos |
Viernes, 25 de marzo de 2022 (online de manera síncrona y/o presencial)
16:30-19:00 | Presentación/Resumen sobre: Uso avanzado de Pandas para el tratamiento estadístico de datos con Python. Uso de Openpyxl para la interacción con ficheros Excel, CSV, etc. Combinando código R con iPython Pedro González Rodelas |
Desde el 25 de marzo al 1 de abril de 2022 (online de manera asíncrona)
Título del material y vídeos desarrollados: Representaciones gráficas avanzadas (librerías Matplotlib, SeaBorn) y visualización interactiva de datos (uso de bokeh, datos geolocalizados, etc.). Pedro González Rodelas |
Viernes, 1 de abril de 2022 (online de manera síncrona y/o presencial)
16:30-19:00 | Presentación/Resumen sobre: Introducción al uso del módulo scikit-learn para diferentes técnicas de Machine Learning como clasificación, regresión, clustering, etc Miguel García Silvente |
Desde el 1 al 8 de abril de 2022 (online de manera asíncrona)
Título del material y vídeos desarrollados: Big data, deep learning y redes neuronales convolucionales. Ejemplos de Kaggle. TensorFlow Miguel García Silvente |
Viernes, 8 de abril de 2022 (online de manera síncrona y/o presencial)
16:30-19:00 | Presentación/Resumen sobre: Otras aplicaciones de Python en I.A.: Procesamiento de imágenes digitales y visión artificial Miguel García Silvente |
Desde el 8 abril de 2022 (online de manera asíncrona)
Título del material y vídeos desarrollados: Otras aplicaciones de Python en I.A.: procesamiento de Lenguaje Natural, etc Miguel García Silvente |