Cargando Eventos

Python avanzado para Tratamiento de Datos e Inteligencia Artificial (I ed.)

Código: 20GR36 Online
17/04/2020 al 29/05/2020

Lugar celebración:
Granada (Facultad de Ciencias)

Dirección:
Pedro González Rodelas (Prof. de la Univ. Granada)

Coordinación:
Fco. Miguel García Olmedo (Prof. de la Univ. Granada)

Reconocimiento de créditos ECTS OPTATIVOS en los Grados (hasta el momento)
1 crédito ECTS OPTATIVO en la Facultad de Comunicación y Documentación para el Grado en Información y Documentación
2 créditos ECTS OPTATIVOS en la Facultad de Comunicación y Documentación para el Grado en Comunicación Audiovisual
0,5 créditos ECTS OPTATIVOS en la E.T.S. de Arquitectura para el Grado en Arquitectura
3 créditos ECTS OPTATIVOS en la Facultad de Ciencias Económicas y Empresariales para todos los Grados adscritos
3 créditos ECTS OPTATIVOS en la ETS de Ingeniería de Caminos, Canales y Puertos para todos los Grados adscritos
2 créditos ECTS OPTATIVOS en la Facultad de Ciencias para el Grado en Biología
2 créditos ECTS OPTATIVOS en la Facultad de Ciencias para el Grado en Biotecnología
2 créditos ECTS OPTATIVOS en la Facultad de Ciencias para el Grado en Ciencias Ambientales
2 créditos ECTS OPTATIVOS en la Facultad de Ciencias para el Grado en Estadística
2 créditos ECTS OPTATIVOS en la Facultad de Ciencias para el Grado en Física
2 créditos ECTS OPTATIVOS en la Facultad de Ciencias para el Grado en Geología
2 créditos ECTS OPTATIVOS en la Facultad de Ciencias para el Grado en Ingeniería Electrónica Industrial
2 créditos ECTS OPTATIVOS en la Facultad de Ciencias para el Grado en Ingeniería Química
2 créditos ECTS OPTATIVOS en la Facultad de Ciencias para el Grado en Matemáticas
2 créditos ECTS OPTATIVOS en la Facultad de Ciencias para el Grado en Óptica y Optometría
2 créditos ECTS OPTATIVOS en la Facultad de Ciencias para el Grado en Química
2 créditos ECTS OPTATIVOS en la Facultad de Ciencias para el Doble Grado en Física y Matemáticas

Este curso podrá ser convalidado por créditos de libre configuración en las titulaciones a extinguir

Introducción:

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 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 Tratamiento 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.

Competencias de los alumnos:

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.

Método de evaluación:

La evaluación se llevará a cabo basándose en:
• La asistencia, que será obligatoria en no menos del 75% de las sesiones presenciales.
• La evolución del alumno comprobada en las sesiones presenciales mediante ejercicios sencillos planteados sobre las explicaciones.
• 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 y presentada en tiempo y forma a través de la plataforma para la docencia elegida.

Viernes, 17 de abril de 2020

16:15-17:45 Uso avanzado de los entornos de desarrollo (IDEs) más empleados: Jupyter notebook, Spyder, 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
18:00-21:30 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, 24 de abril de 2020

16:15-18:45 Búsqueda de patrones con expresiones regulares y sustitución de cadenas de caracteres. Ejemplos prácticos.
Francisco M. García Olmedo
19:00-21:30 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, 8 de mayo de 2020

16:15-18:45 Introducción al Web Scraping. Uso de BeautifulSoup para acceso web a ficheros HTML, XML, JSON, etc.
Sergio Alonso Burgos
19:00-21:30 Herramientas avanzadas de Web Scraping y análisis de páginas dinámicas (Javascript) con Selenium.
Sergio Alonso Burgos

Viernes, 15 de mayo de 2020

16:15-18:45 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
19:00-21:30 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, 22 de mayo de 2020

16:15-18:45 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
19:00-21:30 Big data, deep learning y redes neuronales convolucionales. Ejemplos de Kaggle. TensorFlow.
Miguel García Silvente

Viernes, 29 de mayo de 2020

16:15-18:45 Otras aplicaciones de Python en I.A.: Procesamiento de imágenes digitales y visión artificial.
Miguel García Silvente
19:00-21:30 Otras aplicaciones de Python en I.A.: procesamiento de Lenguaje Natural, etc.
Miguel García Silvente