Categorías
cursos optimización Python

Curso de programación matemática con Pyomo

Con el objetivo de resolver problemas de optimización en ingeniería con aplicación tanto a nivel académico como industrial, se presenta el uso de Pyomo, la alternativa gratuita a GAMS y AMPL desarrollada en Python.
Pyomo permite resolver una amplia gama de problemas de optimización (LP, QP, NP, MILP, MINLP, MISP, etc.), y es capaz de comunicarse con los principales solvers comerciales, gratuitos y/o libres de optimización.
Los métodos de resolución de este tipo de problemas, especialmente cuando existen variables discretas, no se encuentra muy extendidos, a pesar de su enorme potencial. Por ello, en este taller, se hará un breve repaso de los conceptos básicos de la optimización.
Igualmente, habrá una pequeña introducción al lenguaje Python, pensada especialmente para los estudiantes con un background en otro tipo de lenguajes de alto nivel enfocados al cálculo matemático, como puede ser MATLAB. El taller está orientado a estudiantes con conocimientos básicos de programación.

Duración: 6 horas

Coste: ¡Gratuito! (plazas limitadas)

¿Por qué es gratuito?

Este curso es posible gracias a la generosa financiación de la EPS y sus actividades del Mes Cultural.

Horario y aulas:

Temario:

  • Introducción / Repaso al ecosistema Python, Jupyter Notebook.
  • Introducción a Pyomo
  • Instalación de Pyomo y solvers
  • Componentes de Pyomo
  • Repaso a la programación matemática
  • Casos de estudio

Instructores:

Dr. Juan Javaloyes

Juan Javaloyes es Dr. Ingeniero Químico por la Universidad de Alicante. Actualmente forma parte del grupo de investigación Computer Optimization of Chemical Engineering Processes and Technologies (COnCEPT) de dicha universidad. Su trabajo se centra en la búsqueda de soluciones a problemas del ámbito de la ingeniería de procesos mediante el desarrollo y aplicación de modelos de programación matemática y el uso de simuladores de procesos químicos.
Ha trabajado en varios proyectos de investigación con empresas petroquímicas, y colabora con la asociación de ingenieros químicos CAChemE impartiendo cursos sobre simuladores de procesos químicos y lenguajes de programación como Python.

 

Daniel Vázquez Vázquez

Ingeniero Químico por la Universidad de Santiago de Compostela, Daniel Vázquez cursa el doctorado en la Universidad de Alicante y forma parte del grupo de investigación COnCEPT (Computer Optimization in Chemical Engineering Processes and Technologies). Su campo de investigación es la síntesis y optimización de procesos industriales utilizando simuladores de procesos químicos y herramientas de programación matemática. Ha trabajado anteriormente en métodos de reducción de objetivos para problemas de optimización multiobjetivo, así como en índices de seguridad para uso en la industria química. Ha sido instructor de un taller de Pyomo, en la Pycon 2018, así como de cursos de introducción a Python en el ámbito científico y de simuladores de procesos, como Aspen Plus.

Requisitos:

Ser estudiante de la UA o formar parte del colectivo PDI o PAS.
Este curso está especialmente orientado a los alumnos del máster en Ingeniería Química. También se recomienda para estudiantes de grado y máster con conocimientos básicos de:

  • Conocimientos de optimización. Haber cursado una asignatura de optimización de procesos que incluya conocimientos básicos sobre problemas de tipo LP, MIP, NLP y MINLP, y sobre el modelado de estos problemas (incluyendo variables binarias). Si no estás familiarizado a la resolución de problemas de optimización GAMS o AMPL, te recomendamos varios recursos online para aprender por tu cuentay/la o documentación de Pyomo.
  • Conocimientos básicos de programación (aunque se realizará un breve repaso del lenguaje Python).


Inscripción:

El plazo de solicitud de inscripción se abrirá el miércoles miércoles 12 de febrero a las 12:00 h siendo accesible desde esta página web. Las plazas son limitadas y se asignaran por riguroso orden de entrada. Se prevén bastantes inscripciones así que comprueba tu horario y si ya es seguro que puedes asistir, te recomendamos ponerte una alarma para apuntarte y evitar sorpresas 😉

 

Categorías
cursos optimización Python

Taller: Modelado y optimización de procesos utilizando software libre (Pyomo-Python) – 2019

Siguiendo el éxito de la anterior edición, y con el fin de continuar impartiendo el conocimiento sobre la resolución de problemas de optimización en ingeniería con aplicación tanto a nivel académico como industrial, se presenta el uso de Pyomo, la alternativa gratuita a GAMS y AMPL desarrollada en Python.
Pyomo permite resolver una amplia gama de problemas de optimización (LP, QP, NP, MILP, MINLP, MISP, etc.), y es capaz de comunicarse con los principales solvers comerciales, gratuitos y/o libres de optimización.
Los métodos de resolución de este tipo de problemas, especialmente cuando existen variables discretas, son a menudo desconocidos o relegados por falta de tiempo, recursos o ambas. Por ello, en este taller, se hará un breve repaso de los conceptos básicos de la optimización.
Igualmente, habrá una pequeña introducción al lenguaje Python, pensada especialmente para los estudiantes con un background en otro tipo de lenguajes de alto nivel enfocados al cálculo matemático, como puede ser MATLAB. El taller está orientado a estudiantes con conocimientos básicos de programación.

Duración: 6 horas

Coste: ¡Gratuito! (plazas limitadas)

¿Por qué es gratuito?

Este curso es posible gracias a la generosa financiación de la EPS y sus actividades del Mes Cultural.

Horario y aulas:

  • Miércoles 27 de febrero:
    16:00-19:00 h L028i, edificio EPS IV.
    https://www.sigua.ua.es/index.html?id=0039PB052
  • Jueves 28 de febrero:
    16:00-19:00 h en L027i , edificio EPS IV.
    https://www.sigua.ua.es/index.html?id=0039PB012

Temario:

  • Introducción / Repaso al ecosistema Python, Jupyter Notebook.
  • Introducción a Pyomo
  • Instalación de Pyomo y solvers
  • Componentes de Pyomo
  • Repaso a la programación matemática
  • Casos de estudio

Instructores:

Dr. Juan Javaloyes

Juan Javaloyes es Dr. Ingeniero Químico por la Universidad de Alicante. Actualmente forma parte del grupo de investigación Computer Optimization of Chemical Engineering Processes and Technologies (COnCEPT) de dicha universidad. Su trabajo se centra en la búsqueda de soluciones a problemas del ámbito de la ingeniería de procesos mediante el desarrollo y aplicación de modelos de programación matemática y el uso de simuladores de procesos químicos.
Ha trabajado en varios proyectos de investigación con empresas petroquímicas, y colabora con la asociación de ingenieros químicos CAChemE impartiendo cursos sobre simuladores de procesos químicos y lenguajes de programación como Python.

Daniel Vázquez Vázquez

Daniel Vázquez es Ingeniero Químico por la Universidad de Santiago de Compostela. Actualmente cursa el doctorado en la Universidad de Alicante y forma parte del grupo de investigación COnCEPT (Computer Optimization in Chemical Engineering Processes and Technologies). Su campo de investigación es la síntesis y optimización de procesos industriales utilizando simuladores de procesos químicos y herramientas de programación matemática.

Ha trabajado anteriormente en métodos de reducción de objetivos para problemas de optimización multiobjetivo, así como en índices de seguridad para uso en la industria química. Ha sido instructor de un taller de Pyomo, en la Pycon 2018, así como de cursos de introducción a Python en el ámbito científico y de simuladores de procesos, como Aspen Plus.

Requisitos:

Ser estudiante de la UA o formar parte del colectivo PDI o PAS.
Este curso está orientado a los alumnos del máster en Ingeniería Química que están cursando la asignatura “MÉTODOS COMPUTACIONALES EN INGENIERÍA QUÍMICA”. También se recomienda para estudiantes de grado y máster con conocimientos básicos de:

• Conocimientos de optimización. Haber cursado una asignatura de optimización de procesos que incluya conocimientos básicos sobre problemas de tipo LP, MIP, NLP y MINLP, y sobre el modelado de estos problemas (incluyendo variables binarias). Si no estás familiarizado a la resolución de problemas de optimización GAMS o AMPL, te recomendamos varios recursos online para aprender por tu cuenta y/la o documentación de Pyomo.
• Conocimientos básicos de programación (aunque se realizará un breve repaso del lenguaje Python).

Categorías
Python tutorial

Cómo enseñar Python en el colegio o instituto para clases de matemáticas o informática

Una profesora nos ha preguntado información de material docente para enseñar a programar en el colegio o instituto. Esta pregunta nos encanta y dado que en EEUU y otros países se está apostando mucho por ello, vamos a recopilar un listado de las opciones más interesantes de menor a mayor complejidad.

¿Por qué enseñar a programar?

Por lo tanto, para comenzar desde cero recomendamos code.org y Blocky. Este último nos gusta porque que te enseña el código de tu programa en Python que resuelve un laberinto:
python-videojuego
¿Puedes resolver este laberinto programando con bloques? (¡ojo que no es tan sencillo!)

Aprender a programar Python jugando

Existen varias webs con videojuegos online muy sofisticados para aprender Python muy interesantes tanto para alumnos como docentes, por ejemplo:

[box type=»note»]Recuerda: En esta entrada de CAChemE ya hablamos de libros, algunos con licencia permisiva, para enseñar programación con Python a cualquier interesado (sin importar la edad). ¡No te la pierdas!

En esta línea, aquí unos serie de libros de Python para crear aplicaciones o videjuegos personalizados:

Aunque hay que reconocer, que una de las plataformas más llamativas, pese a no ser Python, es la de appinventor.
app-inventor-programacion
Crea tus propias aplicaciones móviles para Android

 Python para física o matemáticas:

Si los alumnos van a utilizar Python en sus asignaturas de física o matemáticas, hay que dar un un vistazo al canal de youtube de Jose Luis Tabara Carbajo.

Instalación:

Nosotros recomendamos instalar miniconda y Python 3 ya que es multiplataforma y gratuito.
Si van a hacer algo científico, lo mejor instalarse la versión completa de Python llamada Anaconda:
Como editor de código, puedes usar notepad++, atom o sublime. Te recomiendo darle un vistazo a Python Tutor que es lo cómo enseñan Python en universidades americanas:
Como IDE científco Jupyter Notebook es lo que utilizamos nosotros. Dale un vistazo a la demo de Nature u otros materials donde explican conceptos complicados con código de forma similar a PHET.
Y voy a parar aquí porque si tus alumnos y alumnas aprenden todo esto nos dejas sin trabajo en la Universidad 😉

 

 

Categorías
cursos Python

Curso de introducción al análisis y modelado de datos con Python (pandas y scikit-learn)

La mejor forma de aprender a programar es haciendo algo útil, por lo que esta introducción a Python se centrará alrededor de una tarea común: solucionar problemas de análisis y modelado de datos comunes en el entorno académico e industrial. Python dispone de dos librerías principales para ello, pandas y scikit-learn. La primera, pandas, permite el manejo eficiente y sistemático de datos con formato de tabla. La segunda, scikit-learn, reúne los principales algoritmos de Machine Learning (aprendizaje automático) bajo una misma interfaz. Ambas librerías disponen de licencia totalmente libre y gratuita, incluso para empresas. No sorprende, por tanto, que empresas del calibre de Google o Microsoft no solo usen si no que financien dichos proyectos.

xkcd-python

¿Qué vamos a dar?

En esta ocasión haremos una breve introducción a Python siguiendo parte materiales de AeroPython. En contreto, cubriremos:

  • Los conceptos y manejo de pandas, analizando datos de diferentes archivos y representandólo en gráficas
  • Fundamentos del ajuste de datos a modelos de aprendizaje automático mediante scikit-learn

Duración: 6 horas

Coste: ¡Gratuito! (plazas limitadas)

Horario y aulas:

Jueves 22 y viernes 23 de febrero de 15:30 a 18:30 h en el edificio Politécnica (Laboratorio L24, ver mapa)

Requisitos:

  • Conocimientos de programación. Conocimientos básicos de cualquier lenguaje de programación (MATLAB, Python, Java, C/C++ o similares)
  • Visualización previa del curso online de Python. Si bien Python es uno de los lenguajes más fáciles de aprender, no cubriremos toda la sintaxis y posibilidades del lenguaje en esta ocasión. Todas sus funcionalidades y librerías serán referenciadas a este material online durante el curso.
  • Poder asistir a la totalidad del curso
  • Ser estudiante de la UA o formar parte del colectivo PDI o PAS.

Inscripción:

El plazo de solicitud de inscripción se abrirá el sábado 17 de febrero a las 12:00 h siendo accesible desde esta página web. Las plazas son limitadas y se asignaran por riguroso orden de entrada. Se prevén bastantes inscripciones así que comprueba tu horario y si ya es seguro que puedes asistir, te recomendamos ponerte una alarma para apuntarte y evitar sorpresas ;).

  • Debido a la alta demanda y las plazas limitadas, se confirmará la inscripción vía email. Te recomendamos que estés pendiente de nuestras redes sociales (Twitter, Facebook) para recibir la información más inmediata. Para cualquier duda que tengáis podéis usar las mismas, los comentarios, nuestro formulario de contacto o preguntarnos en la universidad.

¿Por qué Python y no MATLAB/GNU Octave, R, etc.?

Utilizaremos Python porque:

  1. Es libre, gratuito, bien documentado y se puede ejecutar en cualquier ordenador (Windows, MacOS o Linux).
  2. Tiene una gran (y creciente) base de usuarios de diversos campos.
  3. La experiencia demuestra que Python es más fácil de aprender que cualquier otro lenguaje.

En este taller trabajaremos con Jupyter Notebook (IPython) aunque podrá ser seguido desde cualquier ordenador con Python 3 instalado. Además de Python, haremos uso de librerías especializadas como NumPy y matplotlib para procesar y representar datos de forma más eficiente. Recomendamos instalar Anaconda con Python 3 en los ordenadores.

¿Por qué es gratuito?

Este curso es posible gracias a la generosa financiación de la EPS y sus actividades del Mes Cultural.

¿Qué tiene de diferente este taller frente a otros?

Este taller permitirá a los estudiantes de la EPS de la Universidad de Alicante sean capaces de manejar herramientas fundamentales para el análisis y modelado de datos con los que se enfrentarán en su vida profesional.

Aprende más sobre Python

El ecosistema Python es muy amplio y se encuentra plena evolución, si quieres saber más puedes ver nuestro curso online y el blog de Pybonacci:logo-python-ingenieros

Categorías
Python

Mi primera PyConES: reflexión sobre un lenguaje de programación y su comunidad

Me encuentro en el tren de vuelta, de Cáceres a Madrid. No había estado nunca allí y la razón que me llevó a esta ciudad no fue otra que la PyConES 2017, un evento y un lenguaje prácticamente nuevos para mi.

Apenas había comenzado a aprender Python con un proyecto donde utilizaba una Raspberry Pi (o raspi). Lo primero que pensé del lenguaje (viniendo de programar con C# y Fortran) fue: “¡el código se escribe solo!”. En unas pocas horas ahí estaba yo monitorizando y controlando equipos (de forma muy sencilla) con raspi.

Oí hablar de la PyConES en el grupo de Telegram de CAChemE, pero en la web las entradas llevaban semanas ya agotadas. Sin embargo, tres días antes de comenzar el evento, recibí una llamada de CAChemE con motivo de un sorteo que había realizado la empresa Kaleidos: ¡Me ofrecía una entrada a la PyConES 2017! Una noticia totalmente inesperada. ¡Muchas gracias Kaleidos por la entrada, y muchas gracias a CAChemE por los trámites!

Ahí estaba yo, camino a Cáceres, sin saber muy bien lo que me iba a encontrar. Nunca había asistido a una PyConES. Llegué al hotel y de ahí rápidamente al evento para no perderme el primer taller, Parallel and Non-Parallel Stuff, con Pablo Galindo, sobre multithreading y multiprocessing. Ésta fue mi primera, y una de mis favoritas de la PyConES. Me quedo con: ‘Miedo y respeto a los hilos’ y el concepto de que el GIL (global interpreter lock) no se puede quitar (de momento) de forma general, solamente para una aplicación.

Al día siguiente comenzaba el maratón. Me gustó mucho la charla de Naomi Ceder, haciendo hincapié en la importancia de la comunidad, la diversidad, e inclusión. Una charla llena de emoción. Admiro su valentía por compartir con todos su experiencia personal, un ejemplo a seguir para continuar creciendo como comunidad.

Otra de mis charlas favoritas fue la famosa de las Metaclases: exactamente qué y (sobre todo) por qué, por Pablo Galindo y Víctor Terrón. Me quedó claro que ‘una clase es a una metaclase como una instancia es a una clase’. Pero lo mejor fue la manera de impartir la charla: la energía, la ilusión y el poder de transmisión de Pablo y Víctor.

Y por supuesto, sin que quepa duda, me encantó la Keynote final de Juan Luis Cano, presidente de Python España: Código abierto. Mucho camino por delante. Gran orador, invita a la reflexión. Un speech motivador, con fuerza, con sentido. Busquemos oportunidades en nuestro entorno, donde el código abierto puede marcar la diferencia, puede solucionar problemas. Busquemos oportunidades para hacer de este mundo un mundo mejor.

Y esto fue todo… ¿todo? Realmente no.

Es difícil resumir mi experiencia en unos pocos párrafos. Disfruté de esta conferencia como nadie sabe. Me fascinó el ambiente, la comunidad, la motivación de cada persona allí presente. Disfruté aprendiendo, no solo de las ponencias, sino de lo que se hablaba en los pasillos y las esquinas. Esta conferencia me trasladó unos años atrás, me recordó a mi experiencia en MIT donde, por los pasillos, se habla de cómo cambiar el mundo a través de la ciencia y tecnología. Un nexo de unión que, de forma remota, me ha llevado hasta la PyConES 2017.

¡Nos vemos en Málaga en la PyConES 2018!

Categorías
Python tutorial

Python científico en paralelo (cursos y tutoriales rápidos para principiantes)

Python es de facto el lenguaje de programación más popular del momento. Pero, ¿cómo realizar tareas sencillas en paralelo y sin apenas esfuerzo?

Lo creas o no, esto es es posible y lo mejor es que sólo existen tres palabras claves que necesitas conocer: numba, map y submit

numba

No nos engañemos, programar en paralelo va a añadir inevitablemente mayor complejidad al código y pronto aprenderás que existe algo llamado Heisenbugs.

Por lo tanto y en primer lugar, si lo que queremos es acelerar el código, con numba conseguiremos dos ordenes de magnitud de mejora simplemente añadiendo ´@jit´ a una función.

Pero, si sigues leyendo esto es porque quieres programar en paralelo, sin apenas esfuerzo y ya tienes:

  1. perfilado tú código para ver dónde se encuentran los cuellos de botella
  2. pensado en la complejidad de tus algoritmos y/o utilizado la herramienta adecuada de la forma adecuada (ej. consejos de NumPy y pandas).
  3. testeado la función en secuencial

Entonces… ¡buenas noticias! Con la nueva versión de numba también podemos paralelizar las funciones compiladas al vuelo:

map & submit

Cualquier librería para trabajar en paralelo tendrá implementadas estás dos funciones:

  • map: Si tienes una operación que debe repetirse n veces de forma indpendiente y en paralelo

  • submit: Si la tarea a repetir depende de alguna condición y no ves claro cómo usar map

Ambas operaciones pueden llevarse a cabo trabajando con dos técnicas muy diferentes:

  • multithreading: compartimos datos en memoria y trabajamos de forma independiente sobre ellos (ej. leer archivos de una lista de nombres).
  • multiprocessingnuestros datos de entrada pueden cambiar durante la operación por lo que necesitamos hacer una copia de cada uno de ellos y distribuirlo de forma independiente.

Por defecto, el intérprete de Python bloquea las variables globales y, por tanto, si queremos trabajar sobre ellas necesitamos copiar datos de un lado a otro (lo que conlleva un tiempo extra y obliga a usar multiprocessing). Esto se le conoce como GIL y es un tema de gran controversia.

Entonces, ¿por dónde empiezo y qué herramienta es la mejor?

Nosotros recomendamos seguir estos tres tutoriales de la conferencia SciPy 2017.

Parallel Data Analysis in Python

  • Para aprender los fundamentos y varias opciones que existen dentro de Python.

Parallelizing Scientific Python with Dask

  • Si trabajas con NumPy/pandas y quieres paralelizar o trabajar con archivos que no caben en memoria

Numba: Tell Those C++ Bullies to Get Lost (2017)

  • Si inevitablemente tienes muchos bucles for y NumPy no es suficiente

Conclusiones (TL;DR)

Si de verdad necesitas trabajar en paralelo, usa Dask (ver diapositivas).

Categorías
cursos Python

Workshop de programación con Python para ingenieros – 2017

La mejor forma de aprender a programar es haciendo algo útil, por lo que esta introducción a Python se centrará alrededor de una tarea común: el análisis de datos. En este taller práctico se hará un breve repaso a los conceptos básicos de programación con el fin de automatizar procesos cubriendo la sintaxis de Python (junto a NumPy y matplotlib).

xkcd-python

¿Qué vamos a dar?

En esta ocasión haremos una breve introducción a Python siguiendo los materiales de Software-Carpentry. Por lo tanto, cubriremos:

  • Los conceptos de programación generales analizando datos de diferentes archivos
  • La sintaxis de Python 3 (haciendo uso de variables, bucles, condicionales y funciones)

Duración: 6 horas

Coste: ¡Gratuito! (plazas limitadas)

Horario y aulas:

Jueves y viernes 10 de febrero de 16:00 a 19:00 h en el edificio Politécnica IV (Laboratorio S13i y 27i, respectivamente)

Requisitos:

  • Conocimientos de programación. Conocimientos básicos de cualquier lenguaje de programación (MATLAB o similares)
  • Visualización previa del curso online de Python. Si bien Python es uno de los lenguajes más fáciles de aprender, no cubriremos toda la sintaxis y posibilidades del lenguaje en esta ocasión. Todas sus funcionalidades y librerías serán referenciadas a este material online durante el curso.
  • Poder asistir a la totalidad del curso
  • Ser estudiante de la UA o formar parte del colectivo PDI o PAS.

Inscripción:

El plazo de solicitud de inscripción se abrirá el miércoles 1 de febrero a las 16:00 h siendo accesible desde esta página web. Las plazas son limitadas y se asignaran por riguroso orden de entrada. Se prevén bastantes inscripciones así que comprueba tu horario y si ya es seguro que puedes asistir, te recomendamos ponerte una alarma para apuntarte y evitar sorpresas ;). Tal y como habíamos avisado, el nº de plazas se agotó rápidamente. Puedes apuntarte a la lista de espera por si algún alumno no puede asistir.

  • Debido a la alta demanda y las plazas limitas, se confirmará la inscripción vía email. Te recomendamos que estés pendiente de nuestras redes sociales (Twitter, Facebook) para recibir la información más inmediata. Para cualquier duda que tengáis podéis usar las mismas, los comentarios, nuestro formulario de contacto o preguntarnos por los pasillos de la facultad.

¿Por qué Python y no MATLAB/GNU Octave, R, etc.?

Utilizaremos Python porque:

  1. Es libre, gratuito, bien documentado y se puede ejecutar en cualquier ordenador (Windows, MacOS o Linux).
  2. Tiene una gran (y creciente) base de usuarios de diversos campos.
  3. La experiencia demuestra que Python es más fácil de aprender que cualquier otro lenguaje.

En este taller trabajaremos con Jupyter Notebook (IPython) aunque podrá ser seguido desde cualquier ordenador con Python 3 instalado. Además de Python, haremos uso de librerías especializadas como NumPy y matplotlib para procesar y representar datos de forma más eficiente. Recomendamos instalar Anaconda con Python 3 en los ordenadores.

¿Por qué es gratuito?

Este curso es posible gracias a la generosa financiación de la EPS y sus actividades del Mes Cultural.

¿Qué tiene de diferente este taller frente a otros?

Software Carpentry ha llevado a cabo cientos de eventos para miles de científicos en los últimos dos años y medio. El material actual refleja la última iteración de un proceso en curso para perfeccionar las lecciones.

No dudes en apuntarte a este taller basado en las lecciones de Software Carpentry si te gustaría:

  • Mejorar entre un 10-20% tu productividad
  • Hacer frente a nuevos problemas
  • Hacer cosas antiguas más rápido
  • No ver como algo raro una mejora de 10x
  • Prepararte para el Big Data, la nube, HPC, Open Science…

¿Software-Carpentry?

Software Carpentry es una organización formada por voluntarios/as cuyo objetivo es mejorar la productividad y fiabilidad al trabajar con datos mediate habilidades básicas en el campo de la informática. Los talleres de Software Carpentry son breves pero intensos cubriendo normalmente:

Software-Carpentry.org ayuda a investigadores/as de todo el mundo a llevar a cabo más trabajo en menos tiempo y con el «menor dolor posible».

Aprende más sobre Python

El ecosistema Python es muy amplio y se encuentra plena evolución, si quieres saber más puedes ver nuestro curso online y el blog de Pybonacci:logo-python-ingenieros

Categorías
cursos Python

Curso de introducción a la visión artificial con OpenCV y Python

La visión artificial o visión por computador es una disciplina científica que incluye métodos para adquirir, procesar, analizar y comprender las imágenes del mundo real con el fin de producir información numérica o simbólica para que puedan ser tratados por un computador. Esta comprensión se consigue gracias a distintos campos como la geometría, la estadística, la física y otras disciplinas. Hay muchas tecnologías que utilizan la visión por computador, entre las cuales están: reconocimiento de objetos, detección de eventos, reconstrucción de una escena (mapping) y restauración de imágenes.

Ejemplo de aplicación de Visión Artificial (contador mediante cámara infrarroja)

La visión artificial se incluye en varios planes de estudio de los distintos grados en ingeniería o másteres como el de robótica, pero, normalmente, se utiliza software propietario como MATLAB para ello. Este taller permitiría que los estudiantes conozcan herramientas informáticas libres y gratuitas específicas para la resolución de los problemas de visión artificial con los que se enfrentarán en su vida profesional.

grupo_faces

Duración: 6 horas

Coste: ¡Gratuito! (plazas limitadas)

Horario y aulas:

Del jueves 23 y viernes 24 de febrero de 15:00 a 18:00 h en el edificio Politécnica IV (Laboratorio 27i)

Temario

El workshop irá orientado a estudiantes con conocimientos de programación en un lenguaje de alto nivel (Python, MATLAB, R, C++, C, Java, etc.) y hará una introducción a las diferentes funcionalidades disponibles y su uso mediante la interfaz de Python de OpenCV (otros ejemplos interesantes se pueden encontrar en Scikit-Image).

  •  Introducción a OpenCV y su interfaz Python.
  •  Manejo de ficheros, cámaras e interfaces gráficas de usuario.
  •  Filtros y convolución de imágenes.
  •  Detección y extracción de características mediante algoritmos de aprendizaje automático.

Este workshop es un taller de introducción a OpenCV, por lo que si ya has trabajado con esta librería, probablemente no aprendas nada nuevo.

Instructor:

El taller será impartido por Rubén Crespo Cano, Ingeniero Informático y Máster en Ingeniería de Telecomunicación por la Universidad de Alicante, y estudiante del Doctorado en Informática por la Universidad de Alicante, donde trabaja en un proyecto destinado a reemplazar el rol de la retina humana mediante el desarrollo de una neuroprótesis cortical. Rubén también trabaja como Ingeniero de Software en una empresa privada de Alicante.

Requisitos:

  • Conocimientos de programación. Por falta de tiempo, no podremos de explicar conceptos básicos de programación (por ejemplo, qué es un bucle y un condicional, etc.) Con saber cualquier otro lenguaje de programación (MATLAB/GNU Octave o similares) es suficiente.
  • Visualización previa del curso online de Python. Si bien Python es uno de los lenguajes más fáciles de aprender, no cubriremos la sintaxis y posibilidades del lenguaje en esta ocasión (es un taller de OpenCV). La sintaxis y funcionalidades del lenguaje serán referenciadas a este material online durante el curso.
  • Poder asistir a la totalidad del curso.
  • Ser estudiante de la UA o formar parte del colectivo PDI o PAS.

Inscripción:

El plazo de solicitud de inscripción se abrirá el miércoles 15 de febrero a las 13:00 h siendo accesible desde esta página web. Las plazas son limitadas y se asignaran por riguroso orden de entrada. Se prevén bastantes inscripciones así que comprueba tu horario y si ya es seguro que puedes asistir, te recomendamos ponerte una alarma para apuntarte y evitar sorpresas 😉

    • Debido a la alta demanda y las plazas limitas, se confirmará la inscripción vía email. Te recomendamos que estés pendiente de esta entrada y nuestras redes sociales (Twitter, Facebook) para recibir la información más inmediata. Para cualquier duda que tengáis podéis usar los comentarios, nuestro formulario de contacto, preguntarnos por las redes sociales o el MundoReal

¿Por qué es gratuito?

Este curso es posible gracias a la generosa financiación de la EPS y sus actividades del Mes Cultural.

Categorías
CAChemE Python

Nuestro resumen de la PyConES 2016

Los pasados 7, 8 y 9 de octubre viajamos hasta Almería para participar en la PyConES 2016. Este año contábamos con cinco participaciones en la apretada agenda de este congreso nacional de Python en España: cuatro ponencias orales y una taller de iniciación.

Pycones-2016-CAChemE-AeroPython
Pythonistas, gente de CAChemE y AeroPython durante la PyConES 2016 en Almería

El viernes 7 tuvimos la primera participación, en la que Francisco Navarro y Benjamin Laken, instructores Software Carpentry, que junto a Zuria Bauer, llevaron a cabo el taller “Introducción a Python para principiantes (basado en Software Carpentry)”. En el taller se introdujeron los conceptos de programación generales, analizando datos de diferentes archivos, así como una introducción a la sintaxis de Python 3. Destacar otros talleres interesantes que hubieron, como por ejemplo: «Simplifica tu vida con sistemas complejos (y algoritmos genéticos)» por miembros de @AeroPython y «Sistemas distribuidos en Python» por Guillem Borrell.

El sábado, la PyConES se inauguró con la keynote de Gema Parreño, que nos habló de TensorFlow (librería de Google para aprendizaje automático). Seguidamente, nuestros compañeros Juan Javaloyes y Francisco Navarro abrieron el track científico hablando sobre optimización estocástica con su ponencia “Aprendiendo magia negra con Python, optimización estocástica y simuladores”, dónde realizaron una introducción a la problemática en la optimización matemática, haciendo referencia a conceptos de optimización determinista, así como a los pros y contras que presentan los algoritmos estocásticos. También expusieron como implementaron el algoritmo PSO en Python y resolvieron ejemplos reales de la industria utilizando sus implementaciones y combinando la potencia de Python unido a otros simuladores, como ASPEN Hysys.

Juan Javaloyes y Fran Navarro durante su presentación

Más tarde, también en el Track científico, nuestra compañera Zuria Bauer introdujo los conceptos básicos de optimización matemática y los aplicó a la resolución del problema de la dieta con su ponencia “How to improve your diet and save money with Python” (GitHub). Este problema se caracteriza por ser lineal y poder resolverse de una manera poco compleja con programación matemática y utilizando Pyomo, biblioteca que permite la resolución de estos tipos de problemas utilizando Python. Además de ello, planteó la resolución de un problema de selección de ruta típico en ingeniería química, con la que se determinó la ruta óptima para la síntesis de diferentes productos.

Zuria Bauer durante su charla How to improve your diet with Python

En la misma línea de optimización matemática, Carlos Planelles y el que escribe, Daniel Domene, presentamos el problema de la mochila y del viajante de comercio, problemas básicos de optimización que son la base de multitud de problemas en la industria, con nuestra ponencia “Python y empresa: introducción a los problemas básicos de optimización matemática”.

 

Daniel Domene y Carlos Planelles

El primero de ellos aparece en momentos de toma de decisiones, por ejemplo para escoger las mejores opciones de una cartera de inversiones o en la selección de proyectos de I+D+i. El viajante de comercio surge como base en problemas de transporte comercial e incluso en la optimización de redes de intercambiadores de calor, presión o materia.

pycones-2016-caballeros-mesa-cuadrada
Pymiento project amenizando el congreso e imitando la escena de los Caballeros de la Mesa cuadrada de los Monty Python (de ahí viene el nombre de este lenguaje de programación)

El domingo, varias charlas espectaculares tuvieron lugar, destacamos la de Victor Terrón y Pablo Galindo nombrada “Los closures que emocionaron a Spielberg”.
Para cerrar el track científico, Carlos y yo hicimos un barrido a las posibilidades que presenta Python para resolver problemas matemáticos con nuestra charla “Haciendo matemáticas con Python”, en la que hablamos desde como realizar operaciones sencillas con operadores simples, hasta resolución de ecuaciones diferenciales ordinarias como la ecuación del calor o de ondas.

pycones-2016-python-pablo-galindo-victor-terron
Víctor y Pablo a punto de fusionarse para su charla

Por último, la esperada keynote de cierre por Manuel Kaufmann “Argentina en Python” donde nos hizo viajar y conocer su historia enseñando programación en los lugares más remotos de Latinoamérica –ovación en pie de toda la sala al terminar con un nudo en el estómago e incluso lágrimas, gracias @humitos por hacernos soñar en Almería.

pycones-2016-manuel-kaufmann-argentina-python
Manuel Kaufmann durante su Keynote
pycones-2016-argentina-espana-presidentes-asociacion-python
J. Cano y M. Kaufmann: presidentes de las asociaciones de Python España y Argentina

Estamos muy agradecidos por la gran oportunidad que tuvimos para aportar nuestro granito de arena a la transmisión del conocimiento libre en la que probablemente haya sido la mejor PyConES hasta la fecha (¡con más de 400 asistentes!)
De nuevo agradecer a la organización, patrocinadores, asociación Python España, y en especial a su presidente, Juan Luis Cano, que han hecho posible este evento. ¡Muchas gracias y nos vemos en Cáceres (PyConES 2017, sí la web no va aún)!!

Categorías
cursos Python tutorial

Taller de optimización (programación matemática) con Python y Pyomo

Tras los éxitos consecutivos de las dos ediciones del curso de introducción a Python para científicos e ingenieros llega el momento de dar el salto para plantear la resolución de problemas de optimización matemática con aplicación a nivel académico y/o industrial. En este taller práctico enseñaremos a utilizar Pyomo, la alternativa gratuita a GAMS y AMPL desarrollada en Python.

workshop python optimizacion pyomo

Un problema de optimización consiste, a grandes rasgos, en maximizar o minimizar una función real eligiendo sistemáticamente valores de entrada (tomados de un conjunto permitido) y calculando el valor de la función. Este problema se vuelve interesante cuando aparecen restricciones (lineales y no lineales) y variables enteras (para modelar la toma de decisiones discretas). Dos de los lenguajes de modelado comerciales más utilizados para resolver este tipo de problemas matemáticos son GAMS y AMPL. Pyomo (pyomo.org) proporciona una alternativa libre y gratuita a estos lenguajes de modelado algebraico haciendo uso de Python, un lenguaje de programación de alto nivel con todas las funciones con un rico conjunto bibliotecas científicas.

Respecto a sus capacidades como lenguaje de modelado algebraico, Pyomo es compatible con una amplia gama de tipos de problemas de optimización tipo LP, QP, NP, MILP, MINLP, MISP entre otros y se comunica con los principales solvers comerciales, gratuitos y/o libres.

La resolución mediante métodos de optimización son a menudo desconocidos o bien delegados por falta de tiempo y/o recursos. Por este motivo, en este taller para estudiantes de la EPS de la Universidad de Alicante se realizará un breve repaso a conceptos de optimización y presentará Pyomo para la resolución de diferentes problemas tipo.

Duración: 6 horas

Coste: ¡Gratuito! (plazas limitadas)

Horario y aulas:

Del jueves 18 y viernes 19 de febrero de 16:00 a 19:00 h en el edificio Politécnica I (laboratorio L24)

Temario

  • Repaso al ecosistema Python, Jupyter Notebook e instalación de Pyomo
  • Introducción a Pyomo (ver vídeo)
  • Resolución de problemas de optimización con Pyomo tipo LP (ver vídeo)
  • Repaso a las posibilidades de Pyomo:

    A continuación, puedes ver las diapositivas de introducción a Pyomo que Daniel Domene y Carlos Planelles presentaron durante la PyConES 2015:

    Instructor:

    Juan Luis Cano - Python

    Juan Luis Cano es Ingeniero Aeronáutico por la Universidad Politécnica de Madrid y editor del blog de Pybonacci, referencia a nivel nacional en cuanto al uso de Python científico.
    Juan Luis repite como instructor y posee amplia experiencia docente tanto en empresas interesadas en adoptar Python como herramienta de trabajo como en su universidad de origen (UPM).

    CAChemE (@CAChemEorg) estará presente como organización y apoyo. El curso se ha diseñado para que sea totalmente práctico, con ejemplos extraídos de asignaturas de optimización comunes en carreras científicas y de ingeniería química.

    Requisitos:

    • Conocimientos de optimización. Haber cursado una asignatura de optimización de procesos que incluya conocimientos básicos sobre problemas de tipo LP, MIP, NLP y MINLP, y sobre el modelado de estos problemas (incluyendo variables binarias). Si no estás familiarizado a la resolución de problemas de optimización GAMS o AMPL, te recomendamos varios recursos online para aprender por tu cuenta y/la o documentación de Pyomo.
    • Conocimientos de programación. Por falta de tiempo, no podremos de explicar conceptos básicos de programación (por ejemplo, qué es un bucle y un condicional, etc.) Con saber cualquier otro lenguaje de programación MATLAB (o similares) es suficiente.
    • Visualización previa del curso online de Python. Si bien Python es uno de los lenguajes más fáciles de aprender, no cubriremos la sintaxis y posibilidades del lenguaje en esta ocasión (es un taller de Pyomo). Todas sus funcionalidades y librerías serán referenciadas a este material online durante el curso.
    • Poder asistir a la totalidad del curso
    • Ser estudiante de la UA o formar parte del colectivo PDI o PAS.

    Inscripción:

    El plazo de solicitud de inscripción se abrirá el miércoles 10 de febrero a las 16:00 h siendo accesible desde esta página web. Las plazas son limitadas y se asignaran por riguroso orden de entrada. Se prevén bastantes inscripciones así que comprueba tu horario y si ya es seguro que puedes asistir, te recomendamos ponerte una alarma para apuntarte y evitar sorpresas 😉

  • Debido a la alta demanda y las plazas limitas, se confirmará la inscripción vía email. Te recomendamos que estés pendiente de nuestras redes sociales (Twitter, Facebook) para recibir la información más inmediata. Para cualquier duda que tengáis podéis usar las mismas, los comentarios, nuestro formulario de contacto o preguntarnos por los pasillos de la facultad.Este curso es posible gracias a la generosa financiación de la EPS y sus actividades del Mes Cultural.

    ¿Cómo me lo instalo?

    Pese a que los ordenadores de las salas tendrán Anaconda con Python 3 instalado, es buena idea que traigas tu portátil para configurarlo en tu equipo. Recomendamos instalar Anaconda siguiendo estas instrucciones:

    Bonus – Charla de programación: ¡Sed Hackers!

    El viernes tendremos a Victor Terrón (Ingeniero de Google) que nos hablará de como convertirse en hackers

    • Viernes 18 de febrero a las 13:00 h en el Salon de Actos I de la EPS (leer más)

    Dirigida a estudiantes, esta charla tiene como objetivo ofrecer un enfoque distinto al habitual, mostrando el mundo de la programación accesible para todos. Todos conocemos las “Leyendas Urbanas” que existen sobre Hackers y la programación, a lo largo de la charla se lleva a cabo la comparativa de la realidad frente a la ficción. Dando también a conocer al oyente como puede comenzar a desenvolverse en este nuevo mundo. El acceso a esta charla no necesita de registro alguno.

    Aprende más sobre Python

    El ecosistema Python es muy amplio y se encuentra plena evolución, si quieres saber más puedes ver nuestro curso online y el blog de Pybonacci: