cacheme.org 
1 
Python científico para ingenieros: 
lecciones aprendidas* 
Computer-aided Chemical Engineering 
www.cacheme.org 
(*) Título y diapositivas inspiradas en la charla de Greg Wilson: 
Software Carpentry: Lessons Learned - PyCon 2014 
https://www.youtube.com/watch?v=FtKO619O5g0
cacheme.org ¿CAChemE? 
• Asociación formada por ingenieros químicos 
(profesionales, docentes y estudiantes) que pretende 
estimular las posibilidades de software en la 
ingeniería de procesos. 
• Promueve las ventajas de las nuevas herramientas de 
software libre disponibles y fomenta su uso en la 
universidad e industria. 
• Especialización en simulación y programación 
matemática (optimización). 
2
cacheme.org ¿Quiénes somos? 
3
cacheme.org Actividades 
• Formación 
• Webinars 
• Desarrollo 
• ¡Podcast! 
4
cacheme.org 
5 
Esquema 
• ¿Por qué empezaste con Python? 
• Primeros pasos con Python: un 
camino difícil 
• Fallos a evitar 
• Resumen de 
experiencias por 
parte de alumnos 
que empezaron 
con Python
cacheme.org 
¿Por qué empezaste con Python? 
MOTIVACIÓN 
6
¿Por qué empezaste con Python? cacheme.org 
“Programar me gusta y me pareció 
algo interesante aprender algo 
nuevo” 
• Programar genera frustración, muchos científicos lo ven 
como un problema (no una solución a sus problemas). 
• Experiencias previas determinan mucho la predisposición 
del alumno. 
7
¿Por qué empezaste con Python? cacheme.org 
“WIDGETS DE IPYTHON NOTEBOOK 
ME LLAMARON LA ATENCIÓN (JUNTO A 
CÓMO “HACKEAR” EL MOODEL DE MI 
UNIVERSIDAD)” 
• Widgets de IPNB, sencillo de implementar y útil (mejoramos 
experiencia con ejercicios simples). También mostramos 
aplicaciones reales y complejas para verle la utilidad final 
que pueden darle. 
8
¿Por qué empezaste con Python? cacheme.org 
“ESTO NO LO PUEDO (O NO SÉ) 
HACERLO CON MATLAB” 
• Implica: Programación se enseña en métodos numéricos y 
requiere además una buena base matemática (genera 
frustración y requiere mucho esfuerzo). Pero además, el 
alumno no le ve utilidad más allá que su asignatura. 
9
¿Por qué empezaste con Python? cacheme.org 
“LIBRE Y GRATUITO… OK…” 
• Los estudiantes no se preocupan por un asunto tan crucial, 
fallo del sistema de educación (exámenes) que opta por 
herramientas comerciales habiendo equivalentes. Ejemplo: 
Octave UPM. 
• “Lo que aprendas con Python puedes usarlo en el trabajo de 
forma legítima tal y como hace…” 
10
cacheme.org 
Primeros pasos con Python… 
…un camino difícil 
• Contaminación de otros lenguajes: Muchos alumnos sólo 
conocen un “lenguaje” (mal aprendido) por lo que aprender 
una sintaxis (pese a ser Python) cuesta al principio y 
requiere tiempo. 
11
Primeros pasos con Python… cacheme.org 
…un camino difícil 
“NO TENGO TIEMPO” 
• Los lenguajes de programación quedan aislados a 
asignaturas de cálculo numérico, para el resto se usa Excel. 
12
Primeros pasos con Python… cacheme.org 
…un camino difícil 
“GOTO CELDA DE EXCEL” 
• Excel es difícil de revisar y conlleva a errores que se pueden 
evitar con Python. 
• Además, con Python podemos explicar más cosas. Por 
ejemplo, matemáticas (SymPy) y estadística (StatsModel). 
13
Primeros pasos con Python… cacheme.org 
…un camino difícil 
“NO ENTIENDO NADA” 
• Gran parte de los tutoriales e información de Python, dan 
por sabidas muchas cosas. La mayoría de alumnos no 
tienen base alguna de informática (“eh… ¿la terminal?”) . 
Además, mucho de este contenido básico está en inglés, lo 
que añade una complejidad (y requiere más tiempo). 
• Una buena base (necesaria) la recogen los compañeros de 
Software-Carpentry. 
14
Primeros pasos con Python… cacheme.org 
…un camino difícil 
“ME DA ERROR, ¿AHORA QUÉ?“ 
• La resolución de errores se basa en la experiencia, pero los 
mecanismos que seguimos por forma natural no se 
enseñan: 
• Comenzar por ejemplos similares y modificarlos 
• Aprender a leer los mensajes de error 
• Buscar en la documentación 
• Herramientas de debug 
¡No (solemos) prestamos atención a esto! 
15
cacheme.org 
Fallos a evitar 
https://www.youtube.com/watch?v=FtKO619O5g0 
http://software-carpentry.org/blog/2013/06/lessons-learned.html 
16 
Preguntamos a los asistentes y esto es lo que nos dijeron. El resultado 
fue similar a lo que Greg Wilson de Software-Carpentry resumió en su 
charla de la PyCon 2014:
Fallos a evitar cacheme.org 
“¡ESTO ES MUY FÁCIL! SÓLO TIENES 
QUE…” 
17 
• Simplemente evítalo 
Fallos a evitar cacheme.org 
“ … “ 
• Profesores expertos obvian conceptos “básicos” o conexión 
entre los mismos al darlo por hecho. 
• Mejor repasar conceptos clave y fomentar que parte de los 
instructores sean novatos. 
18
Fallos a evitar cacheme.org 
“FALTA DE FEEDBACK” 
• Identificas gente que se ha perdido con post-its de colores. 
• Si tienes un 50% de asistentes que no pueden seguirte, no 
sigas. ¿Solución? 
• Colaboración entre asistentes, los que han terminado que ayuden al 
compañero. 
• Preguntas test, donde cada respuesta errónea identifica un fallo de 
concepto común. 
19
Fallos a evitar cacheme.org 
“QUÉ (CÓDIGO) CÓMO (LÓGICA DEL 
PROCESO) POR QUÉ (MOTIVACIÓN)” 
• Busca ejemplos aplicados llamativos antes de ejercicios 
simples y aburridos. Explica primero cual es la motivación, 
después la lógica y por último el contenido. 
20
Fallos a evitar cacheme.org 
“WINDOWS, MATLAB… 
TODO_LO_QUE_NO_ES_LIBRE 
SUCKS!” 
• Evita despreciar herramientas de trabajo de tus 
compañeros, quizás sean lo único que conozcan. 
• Da valor a las tuyas. 
21
Fallos a evitar cacheme.org 
“DERRIBAR AL ADVERSARIO” 
• Tratamos de fomentar Python comparándolo con los puntos 
fuertes de herramientas comerciales (especializadas) que 
funcionan muy bien. Es mejor buscar las fronteras y 
fomentar aquello donde los rivales son más débiles (GUIs, 
IPython Notebook, control de versiones, filosofía open 
source, TDD…) 
22
23 
Fallos a evitar cacheme.org 
“¿UNA MUJER 
PROGRAMANDO?”
@CAChemEorg 
CAChemEorg 
CAChemE 
mail info@cacheme.org 
www.cacheme.org 
24

Python en ciencia e ingenieria: lecciones aprendidas

  • 1.
    cacheme.org 1 Pythoncientífico para ingenieros: lecciones aprendidas* Computer-aided Chemical Engineering www.cacheme.org (*) Título y diapositivas inspiradas en la charla de Greg Wilson: Software Carpentry: Lessons Learned - PyCon 2014 https://www.youtube.com/watch?v=FtKO619O5g0
  • 2.
    cacheme.org ¿CAChemE? •Asociación formada por ingenieros químicos (profesionales, docentes y estudiantes) que pretende estimular las posibilidades de software en la ingeniería de procesos. • Promueve las ventajas de las nuevas herramientas de software libre disponibles y fomenta su uso en la universidad e industria. • Especialización en simulación y programación matemática (optimización). 2
  • 3.
  • 4.
    cacheme.org Actividades •Formación • Webinars • Desarrollo • ¡Podcast! 4
  • 5.
    cacheme.org 5 Esquema • ¿Por qué empezaste con Python? • Primeros pasos con Python: un camino difícil • Fallos a evitar • Resumen de experiencias por parte de alumnos que empezaron con Python
  • 6.
    cacheme.org ¿Por quéempezaste con Python? MOTIVACIÓN 6
  • 7.
    ¿Por qué empezastecon Python? cacheme.org “Programar me gusta y me pareció algo interesante aprender algo nuevo” • Programar genera frustración, muchos científicos lo ven como un problema (no una solución a sus problemas). • Experiencias previas determinan mucho la predisposición del alumno. 7
  • 8.
    ¿Por qué empezastecon Python? cacheme.org “WIDGETS DE IPYTHON NOTEBOOK ME LLAMARON LA ATENCIÓN (JUNTO A CÓMO “HACKEAR” EL MOODEL DE MI UNIVERSIDAD)” • Widgets de IPNB, sencillo de implementar y útil (mejoramos experiencia con ejercicios simples). También mostramos aplicaciones reales y complejas para verle la utilidad final que pueden darle. 8
  • 9.
    ¿Por qué empezastecon Python? cacheme.org “ESTO NO LO PUEDO (O NO SÉ) HACERLO CON MATLAB” • Implica: Programación se enseña en métodos numéricos y requiere además una buena base matemática (genera frustración y requiere mucho esfuerzo). Pero además, el alumno no le ve utilidad más allá que su asignatura. 9
  • 10.
    ¿Por qué empezastecon Python? cacheme.org “LIBRE Y GRATUITO… OK…” • Los estudiantes no se preocupan por un asunto tan crucial, fallo del sistema de educación (exámenes) que opta por herramientas comerciales habiendo equivalentes. Ejemplo: Octave UPM. • “Lo que aprendas con Python puedes usarlo en el trabajo de forma legítima tal y como hace…” 10
  • 11.
    cacheme.org Primeros pasoscon Python… …un camino difícil • Contaminación de otros lenguajes: Muchos alumnos sólo conocen un “lenguaje” (mal aprendido) por lo que aprender una sintaxis (pese a ser Python) cuesta al principio y requiere tiempo. 11
  • 12.
    Primeros pasos conPython… cacheme.org …un camino difícil “NO TENGO TIEMPO” • Los lenguajes de programación quedan aislados a asignaturas de cálculo numérico, para el resto se usa Excel. 12
  • 13.
    Primeros pasos conPython… cacheme.org …un camino difícil “GOTO CELDA DE EXCEL” • Excel es difícil de revisar y conlleva a errores que se pueden evitar con Python. • Además, con Python podemos explicar más cosas. Por ejemplo, matemáticas (SymPy) y estadística (StatsModel). 13
  • 14.
    Primeros pasos conPython… cacheme.org …un camino difícil “NO ENTIENDO NADA” • Gran parte de los tutoriales e información de Python, dan por sabidas muchas cosas. La mayoría de alumnos no tienen base alguna de informática (“eh… ¿la terminal?”) . Además, mucho de este contenido básico está en inglés, lo que añade una complejidad (y requiere más tiempo). • Una buena base (necesaria) la recogen los compañeros de Software-Carpentry. 14
  • 15.
    Primeros pasos conPython… cacheme.org …un camino difícil “ME DA ERROR, ¿AHORA QUÉ?“ • La resolución de errores se basa en la experiencia, pero los mecanismos que seguimos por forma natural no se enseñan: • Comenzar por ejemplos similares y modificarlos • Aprender a leer los mensajes de error • Buscar en la documentación • Herramientas de debug ¡No (solemos) prestamos atención a esto! 15
  • 16.
    cacheme.org Fallos aevitar https://www.youtube.com/watch?v=FtKO619O5g0 http://software-carpentry.org/blog/2013/06/lessons-learned.html 16 Preguntamos a los asistentes y esto es lo que nos dijeron. El resultado fue similar a lo que Greg Wilson de Software-Carpentry resumió en su charla de la PyCon 2014:
  • 17.
    Fallos a evitarcacheme.org “¡ESTO ES MUY FÁCIL! SÓLO TIENES QUE…” 17 • Simplemente evítalo 
  • 18.
    Fallos a evitarcacheme.org “ … “ • Profesores expertos obvian conceptos “básicos” o conexión entre los mismos al darlo por hecho. • Mejor repasar conceptos clave y fomentar que parte de los instructores sean novatos. 18
  • 19.
    Fallos a evitarcacheme.org “FALTA DE FEEDBACK” • Identificas gente que se ha perdido con post-its de colores. • Si tienes un 50% de asistentes que no pueden seguirte, no sigas. ¿Solución? • Colaboración entre asistentes, los que han terminado que ayuden al compañero. • Preguntas test, donde cada respuesta errónea identifica un fallo de concepto común. 19
  • 20.
    Fallos a evitarcacheme.org “QUÉ (CÓDIGO) CÓMO (LÓGICA DEL PROCESO) POR QUÉ (MOTIVACIÓN)” • Busca ejemplos aplicados llamativos antes de ejercicios simples y aburridos. Explica primero cual es la motivación, después la lógica y por último el contenido. 20
  • 21.
    Fallos a evitarcacheme.org “WINDOWS, MATLAB… TODO_LO_QUE_NO_ES_LIBRE SUCKS!” • Evita despreciar herramientas de trabajo de tus compañeros, quizás sean lo único que conozcan. • Da valor a las tuyas. 21
  • 22.
    Fallos a evitarcacheme.org “DERRIBAR AL ADVERSARIO” • Tratamos de fomentar Python comparándolo con los puntos fuertes de herramientas comerciales (especializadas) que funcionan muy bien. Es mejor buscar las fronteras y fomentar aquello donde los rivales son más débiles (GUIs, IPython Notebook, control de versiones, filosofía open source, TDD…) 22
  • 23.
    23 Fallos aevitar cacheme.org “¿UNA MUJER PROGRAMANDO?”
  • 24.
    @CAChemEorg CAChemEorg CAChemE mail info@cacheme.org www.cacheme.org 24

Notas del editor

  • #2 Todo correcto
  • #3 Todo correcto
  • #4 Añadir imagenes de Nacho, ruben y chicho y el venezolano (INTERNACIONAL!)
  • #5 Todo correcto
  • #6 Todo correcto