Python en ciencia e ingenieria: lecciones aprendidas
description
Transcript of Python en ciencia e ingenieria: lecciones aprendidas
cacheme.org
1
Computer-aided Chemical Engineering
Python científico para ingenieros:
lecciones aprendidas*
www.cacheme.org
(*) Título y diapositivas inspiradas en la charla de Greg Wilson:Software Carpentry: Lessons Learned - PyCon 2014https://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
MOTIVACIÓN
¿Por qué empezaste con Python?
6
cacheme.org¿Por qué empezaste con Python?
“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
cacheme.org¿Por qué empezaste con Python?
“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
cacheme.org¿Por qué empezaste con Python?
“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
cacheme.org¿Por qué empezaste con Python?
“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
cacheme.orgPrimeros pasos con Python…
…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
cacheme.orgPrimeros pasos con Python…
…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
cacheme.orgPrimeros pasos con Python…
…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
cacheme.orgPrimeros pasos con Python…
…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:
cacheme.orgFallos a evitar
“¡ESTO ES MUY FÁCIL! SÓLO TIENES
QUE…”
17
• Simplemente evítalo
cacheme.orgFallos a evitar
“ … “
• 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
cacheme.orgFallos a evitar
“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
cacheme.orgFallos a evitar
“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
cacheme.orgFallos a evitar
“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
cacheme.orgFallos a evitar
“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
cacheme.orgFallos a evitar
23
“¿UNA MUJER
PROGRAMANDO?”